{"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-dd12d2d23e99872f", "name": "Possibly dead Python function: replace_with_filename", "shortDescription": {"text": "Possibly dead Python function: replace_with_filename"}, "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-d06a5c0365631b6b", "name": "Possibly dead Python function: replace_pattern4", "shortDescription": {"text": "Possibly dead Python function: replace_pattern4"}, "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-2092fcc0b1344967", "name": "Possibly dead Python function: do_GET", "shortDescription": {"text": "Possibly dead Python function: do_GET"}, "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-d7afe8a26d06a1c2", "name": "Possibly dead Python function: log_message", "shortDescription": {"text": "Possibly dead Python function: log_message"}, "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-c669bbb2180843ba", "name": "Possibly dead Python function: run_auto_push", "shortDescription": {"text": "Possibly dead Python function: run_auto_push"}, "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-21f0cf1d0da22b39", "name": "Stray `console.log` in TS/JS \u2014 workers/line-webhook/src/index.js:193", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 workers/line-webhook/src/index.js:193"}, "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-02502fb4542a653a", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint85_live_mobile_menu_smoke.js:196", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint85_live_mobile_menu_smoke.js:196"}, "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-ecf5aae61fc4abc6", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint159_post_deploy_publish_confirmation.js:74", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint159_post_deploy_publish_confirmation.js:74"}, "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-62cbaa6e4ef9c46f", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint185_line_group_image_pilot.js:169", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint185_line_group_image_pilot.js:169"}, "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-b588b872571cbdfb", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint146_ai_vision_pilot_workflow.js:71", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint146_ai_vision_pilot_workflow.js:71"}, "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-0488fc9236f337e7", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint148_ops_permission_cleanup.js:84", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint148_ops_permission_cleanup.js:84"}, "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-9e14117f0eb6b4bf", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint174_strict_protected_browser_runbook.js:64", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint174_strict_protected_browser_runbook.js:64"}, "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-416142f0f1161be0", "name": "Stray `console.log` in TS/JS \u2014 scripts/pwa_ui_write_contract.js:119", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/pwa_ui_write_contract.js:119"}, "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-75684268156eb22c", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint101_write_lifecycle_audit.js:167", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint101_write_lifecycle_audit.js:167"}, "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-25d9bc2d6f51abe9", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint144_owner_data_resolution.js:129", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint144_owner_data_resolution.js:129"}, "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-14b5cfdd4263aaaa", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint121_performance_accessibility_audit.js:106", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint121_performance_accessibility_audit.js:106"}, "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-acf6f778ad322625", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint107_controlled_data_cleanup_plan.js:209", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint107_controlled_data_cleanup_plan.js:209"}, "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-db3ff4d8ad88fa0b", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint106_production_data_quality_guard.js:222", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint106_production_data_quality_guard.js:222"}, "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-7ad7c406eb87bc48", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint177_ai_vision_real_sample_evidence.js:60", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint177_ai_vision_real_sample_evidence.js:60"}, "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-ad548e607b0e2c7d", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint166_protected_token_full_sweep_pack.js:38", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint166_protected_token_full_sweep_pack.js:38"}, "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-2478be990674070f", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint117_vision_line_operational_loop_audit.js:107", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint117_vision_line_operational_loop_audit.js:107"}, "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-a799222f3bff1145", "name": "Stray `console.log` in TS/JS \u2014 scripts/gas_syntax_guard.js:123", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/gas_syntax_guard.js:123"}, "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-f218c5757cd5f8a3", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint84_mobile_secondary_workflows_audit.js:193", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint84_mobile_secondary_workflows_audit.js:193"}, "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-32a01f43a5841426", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint123_live_visual_qa_guard.js:140", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint123_live_visual_qa_guard.js:140"}, "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-59511fa1d339ffb4", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint120_settings_admin_runtime_audit.js:130", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint120_settings_admin_runtime_audit.js:130"}, "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-111476bd9e1f8d11", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint138_backend_review_log_live_qa.js:107", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint138_backend_review_log_live_qa.js:107"}, "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-8419c799d6dc49c2", "name": "Stray `console.log` in TS/JS \u2014 scripts/pwa_line_room_smoke.js:65", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/pwa_line_room_smoke.js:65"}, "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-c4a5bd4af507ecec", "name": "Stray `console.log` in TS/JS \u2014 scripts/pwa_write_smoke.js:61", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/pwa_write_smoke.js:61"}, "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-346f2096c5e51016", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint172_line_room_notification_matrix_gate.js:44", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint172_line_room_notification_matrix_gate.js:44"}, "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-7d46a929b463f6e8", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint124_protected_visual_menu_qa.js:396", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint124_protected_visual_menu_qa.js:396"}, "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-5a01bdd7202c2229", "name": "Stray `console.log` in TS/JS \u2014 scripts/vision_e2e_smoke.js:48", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/vision_e2e_smoke.js:48"}, "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-1c45c0c23f4b1271", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint160_real_browser_clickthrough_contract.js:85", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint160_real_browser_clickthrough_contract.js:85"}, "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-72c41e77b1dce5a1", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint128_line_notification_toggle_live_qa.js:64", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint128_line_notification_toggle_live_qa.js:64"}, "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-371ca5a1bbe80a06", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint98_operator_workflow_audit.js:123", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint98_operator_workflow_audit.js:123"}, "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-7194c3bbb2ba5d16", "name": "Stray `console.log` in TS/JS \u2014 scripts/pwa_menu_journey_audit.js:175", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/pwa_menu_journey_audit.js:175"}, "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-274b063926e0aa53", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint137_backend_review_log_audit.js:110", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint137_backend_review_log_audit.js:110"}, "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-039e87a9c3c06d59", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint79_vision_line_flow_audit.js:273", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint79_vision_line_flow_audit.js:273"}, "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-db87a46e8d17b60a", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint131_line_real_send_readiness.js:104", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint131_line_real_send_readiness.js:104"}, "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-2dab1fdbd97f6de6", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint149_live_browser_visual_qa.js:108", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint149_live_browser_visual_qa.js:108"}, "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-243ded2c3b052e08", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint77_billing_e2e_audit.js:206", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint77_billing_e2e_audit.js:206"}, "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-d1befcf589524c5c", "name": "Stray `console.log` in TS/JS \u2014 scripts/pages_deploy_verify.js:100", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/pages_deploy_verify.js:100"}, "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-097c0e611ddb0d4d", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint75_jobs_billing_reports_audit.js:212", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint75_jobs_billing_reports_audit.js:212"}, "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-db91b67225d0d0e2", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint129_vision_line_suppression_live_qa.js:75", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint129_vision_line_suppression_live_qa.js:75"}, "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-d68e52a29c28855b", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint171_ai_vision_sample_evidence_contract.js:43", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint171_ai_vision_sample_evidence_contract.js:43"}, "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-cabd83d4a6284e85", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint154_post_deploy_pages_confirmation.js:75", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint154_post_deploy_pages_confirmation.js:75"}, "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-6cd08f473d600fc4", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint164_pages_publish_lock.js:31", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint164_pages_publish_lock.js:31"}, "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-95935495c6175a82", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint112_admin_repair_console_audit.js:134", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint112_admin_repair_console_audit.js:134"}, "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-9d83480e724c5b29", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint125_role_based_dashboard_widgets_audit.js:104", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint125_role_based_dashboard_widgets_audit.js:104"}, "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-e7b87286b5c9c453", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint192_mobile_dashboard_simplification_guard.js:92", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint192_mobile_dashboard_simplification_guard.js:92"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2e39f463089faadb", "name": "Stray `console.log` in TS/JS \u2014 scripts/gas_source_alignment.js:85", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/gas_source_alignment.js:85"}, "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-6bf25d623dea70c0", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint86_operator_ux_qa_checklist.js:265", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint86_operator_ux_qa_checklist.js:265"}, "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-28ddcb7da92cf22a", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint157_pc_dashboard_workflow_guard.js:80", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint157_pc_dashboard_workflow_guard.js:80"}, "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-e5d810e9b66d07b2", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint78_reports_e2e_audit.js:193", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint78_reports_e2e_audit.js:193"}, "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-7ab3937c124cfa4c", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint135_data_completeness_panel_audit.js:101", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint135_data_completeness_panel_audit.js:101"}, "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-20b05e8d83ac0223", "name": "Stray `console.log` in TS/JS \u2014 scripts/vision_runtime_smoke.js:169", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/vision_runtime_smoke.js:169"}, "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-86d2186564a1b1cd", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint175_ai_vision_sample_pilot_gate.js:83", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint175_ai_vision_sample_pilot_gate.js:83"}, "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-2d91ed7b112b4e59", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint191_ai_vision_inbox_render_smoke.js:124", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint191_ai_vision_inbox_render_smoke.js:124"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-662aefaeaa928223", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint122_dashboard_operator_analytics_audit.js:93", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint122_dashboard_operator_analytics_audit.js:93"}, "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-23f5bcdc9e062ec6", "name": "Stray `console.log` in TS/JS \u2014 scripts/system_integrity_audit.js:409", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/system_integrity_audit.js:409"}, "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-defcbf9225e2c13b", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint74_core_audit.js:454", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint74_core_audit.js:454"}, "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-3643ab74b12dc3d5", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint141_mobile_menu_deep_qa.js:71", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint141_mobile_menu_deep_qa.js:71"}, "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-fc6a47253360dfa7", "name": "Stray `console.log` in TS/JS \u2014 scripts/build_code_index.js:390", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build_code_index.js:390"}, "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-42732216acdfadd4", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint153_permission_fallback_closure.js:63", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint153_permission_fallback_closure.js:63"}, "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-d27f6124bf71ae7d", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint156_mobile_menu_e2e_guard.js:77", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint156_mobile_menu_e2e_guard.js:77"}, "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-15f08797ca815d3b", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint116_reports_drilldown_audit.js:88", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint116_reports_drilldown_audit.js:88"}, "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-d417d479a46dcd62", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint115_billing_resilience_audit.js:88", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint115_billing_resilience_audit.js:88"}, "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-ea41bdc6fb7c0ca4", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint155_owner_data_backfill_readiness.js:71", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint155_owner_data_backfill_readiness.js:71"}, "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-37d04a092766a474", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint158_ai_vision_line_room_control_guard.js:74", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint158_ai_vision_line_room_control_guard.js:74"}, "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-1decef93d0826164", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint133_support_admin_live_qa.js:157", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint133_support_admin_live_qa.js:157"}, "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-bc2a7233671978fc", "name": "Stray `console.log` in TS/JS \u2014 scripts/pwa_workflow_smoke.js:147", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/pwa_workflow_smoke.js:147"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f746b29f4e8f92fe", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint111_controlled_data_repair_execution.js:143", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint111_controlled_data_repair_execution.js:143"}, "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-6c0381a0b8414a25", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint127_vision_line_notification_controls_audit.js:135", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint127_vision_line_notification_controls_audit.js:135"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7437aa9bf4b57bae", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint190_ai_vision_review_inbox_guard.js:84", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint190_ai_vision_review_inbox_guard.js:84"}, "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-c52c3a794218ba5d", "name": "Stray `console.log` in TS/JS \u2014 scripts/pwa_functional_menu_audit.js:192", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/pwa_functional_menu_audit.js:192"}, "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-663f57fb32754c0f", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint126_ai_vision_role_readiness_audit.js:158", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint126_ai_vision_role_readiness_audit.js:158"}, "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-7cdb0ad0ce795257", "name": "Stray `console.log` in TS/JS \u2014 scripts/pwa_ui_surface_audit.js:149", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/pwa_ui_surface_audit.js:149"}, "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-1360223222243758", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint178_strict_live_acceptance_gate.js:67", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint178_strict_live_acceptance_gate.js:67"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6678457ad93d9146", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint134_data_completeness_review.js:435", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint134_data_completeness_review.js:435"}, "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-1658ebe25bdd9b8a", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint104_protected_browser_journey.js:546", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint104_protected_browser_journey.js:546"}, "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-e48450fad39a4905", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint80_production_journey_audit.js:197", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint80_production_journey_audit.js:197"}, "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-fd1ef4101b73e2a5", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint176_published_protected_acceptance.js:58", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint176_published_protected_acceptance.js:58"}, "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-26325247a763e7fc", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint114_jobs_workflow_polish_audit.js:101", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint114_jobs_workflow_polish_audit.js:101"}, "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-40742fbe9b5829ab", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint169_pages_fresh_release_gate.js:38", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint169_pages_fresh_release_gate.js:38"}, "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-049847e8a2ba7cce", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint105_record_detail_completeness.js:436", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint105_record_detail_completeness.js:436"}, "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-3714b51dabea26dd", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint82_mobile_quick_actions_audit.js:202", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint82_mobile_quick_actions_audit.js:202"}, "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-68e7c5f24d44fcff", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint145_mobile_ux_walkthrough.js:82", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint145_mobile_ux_walkthrough.js:82"}, "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-c7df42918aad6240", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint183_line_ai_vision_ingress_guard.js:81", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint183_line_ai_vision_ingress_guard.js:81"}, "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-03bb224ea92bce66", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint151_dashboard_ux_polish_audit.js:41", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint151_dashboard_ux_polish_audit.js:41"}, "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-c984eab7696604f6", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint109_data_repair_console_plan.js:121", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint109_data_repair_console_plan.js:121"}, "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-82d8ab2d8cf8b78e", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint179_ai_vision_real_sample_execution.js:79", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint179_ai_vision_real_sample_execution.js:79"}, "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-c279eb29ad69a6e5", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint100_operator_menu_audit.js:247", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint100_operator_menu_audit.js:247"}, "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-2a3c3d05877ee3df", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint99_live_readiness_audit.js:144", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint99_live_readiness_audit.js:144"}, "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-6e3ceb4cb328bd64", "name": "Stray `console.log` in TS/JS \u2014 scripts/vision_capability_audit.js:310", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/vision_capability_audit.js:310"}, "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-415f5f362f1a240f", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint161_protected_live_token_sweep.js:71", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint161_protected_live_token_sweep.js:71"}, "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-fa521302c7954ed0", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint167_owner_cleanup_execution_readiness.js:27", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint167_owner_cleanup_execution_readiness.js:27"}, "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-3159ee4b6acabe84", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint168_ai_vision_real_sample_runbook.js:32", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint168_ai_vision_real_sample_runbook.js:32"}, "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-43f6541a29255244", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint87_protected_live_qa_runbook.js:309", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint87_protected_live_qa_runbook.js:309"}, "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-0bbe0a710c3dba74", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint142_ai_vision_real_use_readiness.js:67", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint142_ai_vision_real_use_readiness.js:67"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9bd5acb1d8bd3f82", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint140_jobs_billing_reports_live_polish.js:77", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint140_jobs_billing_reports_live_polish.js:77"}, "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-16f5e79758cc161a", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint132_core_workflow_live_qa.js:158", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint132_core_workflow_live_qa.js:158"}, "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-9de144888e05fc8a", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint180_strict_protected_live_proof.js:68", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint180_strict_protected_live_proof.js:68"}, "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-b310c0575d85a0f4", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint163_ai_vision_real_sample_pilot.js:102", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint163_ai_vision_real_sample_pilot.js:102"}, "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-19f28f29c3387d5f", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint182_smoke_cleanup_execution.js:124", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint182_smoke_cleanup_execution.js:124"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a1e741e8c98d95d4", "name": "Stray `console.log` in TS/JS \u2014 scripts/pwa_static_guard.js:959", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/pwa_static_guard.js:959"}, "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-031ef693c1f6ceeb", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint189_line_reply_noise_guard.js:55", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint189_line_reply_noise_guard.js:55"}, "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-1f4455be8219a0ef", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint102_live_ux_menu_audit.js:253", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint102_live_ux_menu_audit.js:253"}, "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-cbde81eae5e7e041", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint103_visual_runtime_walkthrough.js:253", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint103_visual_runtime_walkthrough.js:253"}, "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-bc8c4550cb1d08d1", "name": "Stray `console.log` in TS/JS \u2014 scripts/pwa_api_smoke.js:67", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/pwa_api_smoke.js:67"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2305dfecad6587f6", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint150_data_cleanup_owner_workflow.js:79", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint150_data_cleanup_owner_workflow.js:79"}, "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-f65ea00ad7c69fc9", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint113_repair_console_live_qa.js:100", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint113_repair_console_live_qa.js:100"}, "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-4ad300646a110c3f", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint181_ai_vision_owner_sample_run.js:77", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint181_ai_vision_owner_sample_run.js:77"}, "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-5a09c66f2d3b1e5a", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint173_release_readiness_master_gate.js:58", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint173_release_readiness_master_gate.js:58"}, "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-f5a4efb56d165104", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint193_delete_camera_dashboard_guard.js:129", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint193_delete_camera_dashboard_guard.js:129"}, "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-667b8a613ea851c0", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint119_inventory_po_warranty_audit.js:140", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint119_inventory_po_warranty_audit.js:140"}, "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-7632f4290c932d1c", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint136_data_review_workflow_audit.js:103", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint136_data_review_workflow_audit.js:103"}, "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-5265ff4c54a46642", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint76_jobs_e2e_audit.js:194", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint76_jobs_e2e_audit.js:194"}, "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-418ef464b0ee7ed5", "name": "Stray `console.log` in TS/JS \u2014 scripts/pwa_smoke_cleanup_plan.js:124", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/pwa_smoke_cleanup_plan.js:124"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c25b7406ca994d40", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint165_browser_profile_clickthrough_pack.js:37", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint165_browser_profile_clickthrough_pack.js:37"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a86500fafe3e544c", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint83_mobile_core_workflows_audit.js:190", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint83_mobile_core_workflows_audit.js:190"}, "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-beb38a77ca84b3de", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint108_database_schema_registry_guard.js:198", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint108_database_schema_registry_guard.js:198"}, "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-b7e605c88f45cf2f", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint170_protected_browser_acceptance_gate.js:55", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint170_protected_browser_acceptance_gate.js:55"}, "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-f87c54f504fc826b", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint139_data_cleanup_triage.js:204", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint139_data_cleanup_triage.js:204"}, "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-ade9030c50d897a5", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint147_dashboard_decision_layer_audit.js:44", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint147_dashboard_decision_layer_audit.js:44"}, "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-d9f1d9aaae588967", "name": "Stray `console.log` in TS/JS \u2014 scripts/set_gas_secret.js:69", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/set_gas_secret.js:69"}, "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-dd8008d5c7a58773", "name": "Stray `console.log` in TS/JS \u2014 scripts/ci_readiness_check.js:103", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/ci_readiness_check.js:103"}, "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-5523c9d7184a951c", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint143_permission_ops_hardening.js:69", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint143_permission_ops_hardening.js:69"}, "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-dcac0ad0581916f6", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint188_line_bot_reply_toggle_guard.js:63", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint188_line_bot_reply_toggle_guard.js:63"}, "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-a6024a42024a9ba4", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint152_ai_vision_real_pilot_guard.js:84", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint152_ai_vision_real_pilot_guard.js:84"}, "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-4b9a50a1c5275528", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint187_line_room_intelligence_guard.js:57", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint187_line_room_intelligence_guard.js:57"}, "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-d1579921cb1d9f22", "name": "Stray `console.log` in TS/JS \u2014 scripts/sprint162_owner_data_cleanup_decision.js:71", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint162_owner_data_cleanup_decision.js:71"}, "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-141d6ac7e26e6161", "name": "Stray `console.log` in TS/JS \u2014 pwa/offline_db.js:335", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 pwa/offline_db.js:335"}, "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-1c3f0427d833fbd8", "name": "Stray `console.log` in TS/JS \u2014 pwa/api_client.js:251", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 pwa/api_client.js:251"}, "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-31b859550d93afd4", "name": "Icon-only button without accessible name \u2014 pwa/after_sales_enhanced.js:132", "shortDescription": {"text": "Icon-only button without accessible name \u2014 pwa/after_sales_enhanced.js:132"}, "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-7bae070f8b64d800", "name": "Icon-only button without accessible name \u2014 pwa/section_settings.js:14", "shortDescription": {"text": "Icon-only button without accessible name \u2014 pwa/section_settings.js:14"}, "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-eb46650bb5f9b35d", "name": "Icon-only button without accessible name \u2014 pwa/billing_slip_verify.js:63", "shortDescription": {"text": "Icon-only button without accessible name \u2014 pwa/billing_slip_verify.js:63"}, "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-5384f2350aa71f34", "name": "Stray `console.log` in TS/JS \u2014 pwa/section_attendance.js:8", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 pwa/section_attendance.js:8"}, "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-e843b1e488fdd85f", "name": "Stray `console.log` in TS/JS \u2014 pwa/offline_db_v2.js:94", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 pwa/offline_db_v2.js:94"}, "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-3a29bcaf4f3f4e41", "name": "Stray `console.log` in TS/JS \u2014 pwa/language_manager.js:201", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 pwa/language_manager.js:201"}, "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-391e18a809e82595", "name": "Stray `console.log` in TS/JS \u2014 pwa/section_backup.js:292", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 pwa/section_backup.js:292"}, "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-ee1ffe2113ceaeef", "name": "Stray `console.log` in TS/JS \u2014 pwa/sw.js:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 pwa/sw.js:40"}, "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-21f0961669351fc4", "name": "Stray `console.log` in TS/JS \u2014 pwa/section_warranty.js:52", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 pwa/section_warranty.js:52"}, "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-a646f106ff861b92", "name": "Stray `console.log` in TS/JS \u2014 pwa/execution_lock.js:24", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 pwa/execution_lock.js:24"}, "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-ea9d155824b8f74e", "name": "Icon-only button without accessible name \u2014 pwa/warranty_ui.js:495", "shortDescription": {"text": "Icon-only button without accessible name \u2014 pwa/warranty_ui.js:495"}, "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-836a76e77c433c2d", "name": "Stray `console.log` in TS/JS \u2014 pwa/pentest_frontend.js:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 pwa/pentest_frontend.js:17"}, "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-11cb22b66c782193", "name": "Icon-only button without accessible name \u2014 pwa/section_jobs.js:426", "shortDescription": {"text": "Icon-only button without accessible name \u2014 pwa/section_jobs.js:426"}, "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-c1737031ae7196f8", "name": "Stray `console.log` in TS/JS \u2014 pwa/api_test_framework.js:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 pwa/api_test_framework.js:17"}, "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-d4f754ed4671f4de", "name": "Stray `console.log` in TS/JS \u2014 pwa/app.js:519", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 pwa/app.js:519"}, "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-12ec9beff60adc81", "name": "Icon-only button without accessible name \u2014 pwa/section_inventory.js:262", "shortDescription": {"text": "Icon-only button without accessible name \u2014 pwa/section_inventory.js:262"}, "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-8a32a18c3b8f17d5", "name": "Stray `console.log` in TS/JS \u2014 pwa/telemetry_collector.js:187", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 pwa/telemetry_collector.js:187"}, "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-7b14e98df7837414", "name": "Stray `console.log` in TS/JS \u2014 pwa/push_notifications_v2.js:297", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 pwa/push_notifications_v2.js:297"}, "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-138ded7ed4e5d869", "name": "Stray `console.log` in TS/JS \u2014 pwa/pwa_install.js:39", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 pwa/pwa_install.js:39"}, "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-a357de4b555d83d0", "name": "Icon-only button without accessible name \u2014 pwa/section_crm.js:192", "shortDescription": {"text": "Icon-only button without accessible name \u2014 pwa/section_crm.js:192"}, "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-a81ebeb90f14ce21", "name": "Icon-only button without accessible name \u2014 pwa/billing_section.js:185", "shortDescription": {"text": "Icon-only button without accessible name \u2014 pwa/billing_section.js:185"}, "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-ce816df040785b48", "name": "Stray `console.log` in TS/JS \u2014 pwa/policy_engine.js:153", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 pwa/policy_engine.js:153"}, "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-8a3f08077b5ec602", "name": "Stray `console.log` in TS/JS \u2014 pwa/ai_executor_runtime.js:125", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 pwa/ai_executor_runtime.js:125"}, "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-d0ff668b6a8f84c8", "name": "Stray `console.log` in TS/JS \u2014 pwa/approval_guard.js:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 pwa/approval_guard.js:18"}, "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-6dc94bfa66871f58", "name": "Stray `console.log` in TS/JS \u2014 pwa/evidence_harness.js:19", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 pwa/evidence_harness.js:19"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-584288c297f07802", "name": "Stray `console.log` in TS/JS \u2014 pwa/dashboard_pc_test.js:4", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 pwa/dashboard_pc_test.js:4"}, "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-5b2be6b7e24bc619", "name": "Stray `console.log` in TS/JS \u2014 pwa/search.js:197", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 pwa/search.js:197"}, "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-dd1b3360b8e117bd", "name": "Stray `console.log` in TS/JS \u2014 pwa/mobile_shared.js:2", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 pwa/mobile_shared.js:2"}, "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-8274718007a611d2", "name": "Stray `console.log` in TS/JS \u2014 pwa/section_analytics.js:8", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 pwa/section_analytics.js:8"}, "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-14ce6e6aeda734c3", "name": "Stray `console.log` in TS/JS \u2014 pwa/section_performance.js:294", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 pwa/section_performance.js:294"}, "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-9ed01b3aa5e0e1d5", "name": "Stray `console.log` in TS/JS \u2014 pwa/auth.js:403", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 pwa/auth.js:403"}, "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-a45d75e5c0fdd0f2", "name": "Icon-only button without accessible name \u2014 pwa/pos.js:182", "shortDescription": {"text": "Icon-only button without accessible name \u2014 pwa/pos.js:182"}, "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-01487b07932be3fb", "name": "Stray `console.log` in TS/JS \u2014 pwa/dashboard_pc_core.js:216", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 pwa/dashboard_pc_core.js:216"}, "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-5d14e7eff7cb48f1", "name": "Stray `console.log` in TS/JS \u2014 pwa/section_reports.js:36", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 pwa/section_reports.js:36"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-414c1bb41eaa3782", "name": "TODO/FIXME marker in shipping code \u2014 pwa/js/system_graph_data.js:3", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 pwa/js/system_graph_data.js:3"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-862c3fdbc5869099", "name": "Stray `console.log` in TS/JS \u2014 pwa/js/system_graph_data.js:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 pwa/js/system_graph_data.js:17"}, "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-4f2d59341a8e99e0", "name": "Stray `console.log` in TS/JS \u2014 pwa/_backup_phase3/section_attendance.js:8", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 pwa/_backup_phase3/section_attendance.js:8"}, "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-99b8dc2e916d98be", "name": "Stray `console.log` in TS/JS \u2014 pwa/_backup_phase3/section_warranty.js:8", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 pwa/_backup_phase3/section_warranty.js:8"}, "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-6862d17744947c28", "name": "Stray `console.log` in TS/JS \u2014 pwa/_backup_phase3/section_analytics.js:8", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 pwa/_backup_phase3/section_analytics.js:8"}, "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-2b6877fb27f75521", "name": "Icon-only button without accessible name \u2014 delivery/pwa/after_sales_enhanced.js:132", "shortDescription": {"text": "Icon-only button without accessible name \u2014 delivery/pwa/after_sales_enhanced.js:132"}, "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-27f9def8a8680c88", "name": "Icon-only button without accessible name \u2014 delivery/pwa/billing_slip_verify.js:63", "shortDescription": {"text": "Icon-only button without accessible name \u2014 delivery/pwa/billing_slip_verify.js:63"}, "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-c13bfc8026bebd24", "name": "Privileged port 800 in use", "shortDescription": {"text": "Privileged port 800 in use"}, "fullDescription": {"text": "Port 800 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dfa7edb044676b9f", "name": "Privileged port 15 in use", "shortDescription": {"text": "Privileged port 15 in use"}, "fullDescription": {"text": "Port 15 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0a6c2507388dde80", "name": "Privileged port 50 in use", "shortDescription": {"text": "Privileged port 50 in use"}, "fullDescription": {"text": "Port 50 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ff74d777fe5489db", "name": "Privileged port 1000 in use", "shortDescription": {"text": "Privileged port 1000 in use"}, "fullDescription": {"text": "Port 1000 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0549187614663f10", "name": "Privileged port 40 in use", "shortDescription": {"text": "Privileged port 40 in use"}, "fullDescription": {"text": "Port 40 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a559382f840dfad6", "name": "Privileged port 600 in use", "shortDescription": {"text": "Privileged port 600 in use"}, "fullDescription": {"text": "Port 600 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b78ac6a28cc8de8b", "name": "Privileged port 20 in use", "shortDescription": {"text": "Privileged port 20 in use"}, "fullDescription": {"text": "Port 20 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7ea9b8122372933d", "name": "Privileged port 23 in use", "shortDescription": {"text": "Privileged port 23 in use"}, "fullDescription": {"text": "Port 23 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2f3e865f3a6ecd66", "name": "Privileged port 16 in use", "shortDescription": {"text": "Privileged port 16 in use"}, "fullDescription": {"text": "Port 16 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8107f6c3f8942e85", "name": "Insecure pattern 'direct_innerhtml_assignment' in JS_Part1.html:108", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in JS_Part1.html: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-9ce4f9686a34f01b", "name": "Insecure pattern 'direct_innerhtml_assignment' in dashboard_preview.html:1041", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in dashboard_preview.html:1041"}, "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-a31bb05fd3b6cc40", "name": "Insecure pattern 'direct_innerhtml_assignment' in PhotoGallery.html:190", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in PhotoGallery.html: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-56ccbf2a46aaa56a", "name": "Insecure pattern 'direct_innerhtml_assignment' in JobQRView.html:266", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in JobQRView.html:266"}, "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-13be3234ef13ff38", "name": "Insecure pattern 'direct_innerhtml_assignment' in JS_Part2.html:181", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in JS_Part2.html:181"}, "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-780a131530f130bc", "name": "Insecure pattern 'direct_innerhtml_assignment' in JS_Dashboard.html:76", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in JS_Dashboard.html: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-14c86bd33edc57b3", "name": "Insecure pattern 'node_child_process' in scripts/sprint174_strict_protected_browser_runbook.js:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/sprint174_strict_protected_browser_runbook.js:13"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-badeb388f596cd24", "name": "Insecure pattern 'node_child_process' in scripts/sprint166_protected_token_full_sweep_pack.js:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/sprint166_protected_token_full_sweep_pack.js:10"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fb786f85c82fe921", "name": "Insecure pattern 'node_child_process' in scripts/sprint172_line_room_notification_matrix_gate.js:12", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/sprint172_line_room_notification_matrix_gate.js:12"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-42c72ae8a41b496b", "name": "Insecure pattern 'subprocess_shell_true' in scripts/unified_deploy.py:21", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in scripts/unified_deploy.py:21"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8b93e4ba47598a0b", "name": "Insecure pattern 'node_child_process' in scripts/sprint164_pages_publish_lock.js:15", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/sprint164_pages_publish_lock.js:15"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-53bcf41d90f79291", "name": "Insecure pattern 'direct_innerhtml_assignment' in scripts/sprint191_ai_vision_inbox_render_smoke.js:22", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in scripts/sprint191_ai_vision_inbox_render_smoke.js:22"}, "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-57bcb9db8a18701a", "name": "Insecure pattern 'node_child_process' in scripts/sprint178_strict_live_acceptance_gate.js:16", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/sprint178_strict_live_acceptance_gate.js:16"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-867e704678b99c32", "name": "Insecure pattern 'direct_innerhtml_assignment' in scripts/sprint104_protected_browser_journey.js:158", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in scripts/sprint104_protected_browser_journey.js:158"}, "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-e507fcfa3fda8b8c", "name": "Insecure pattern 'subprocess_shell_true' in scripts/check_sync.py:168", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in scripts/check_sync.py:168"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-57850b2e475b824a", "name": "Insecure pattern 'node_child_process' in scripts/sprint176_published_protected_acceptance.js:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/sprint176_published_protected_acceptance.js:13"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e8bfe79e615d50d2", "name": "Insecure pattern 'node_child_process' in scripts/sprint169_pages_fresh_release_gate.js:12", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/sprint169_pages_fresh_release_gate.js:12"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a22eb56513fb402d", "name": "Insecure pattern 'node_child_process' in scripts/sprint167_owner_cleanup_execution_readiness.js:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/sprint167_owner_cleanup_execution_readiness.js:10"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6902da91b6efb7da", "name": "Insecure pattern 'node_child_process' in scripts/sprint180_strict_protected_live_proof.js:16", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/sprint180_strict_protected_live_proof.js:16"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-be5f95a9c19dda16", "name": "Insecure pattern 'direct_innerhtml_assignment' in scripts/sprint102_live_ux_menu_audit.js:139", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in scripts/sprint102_live_ux_menu_audit.js:139"}, "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-99f026f6c653ebf0", "name": "Insecure pattern 'direct_innerhtml_assignment' in scripts/sprint103_visual_runtime_walkthrough.js:144", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in scripts/sprint103_visual_runtime_walkthrough.js:144"}, "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-00295d6acb14e251", "name": "Insecure pattern 'subprocess_shell_true' in scripts/clasp_push.py:32", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in scripts/clasp_push.py:32"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-74f64c14d26e106c", "name": "Insecure pattern 'node_child_process' in scripts/sprint173_release_readiness_master_gate.js:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/sprint173_release_readiness_master_gate.js:13"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-330ec0076314c4a8", "name": "Insecure pattern 'node_child_process' in scripts/sprint165_browser_profile_clickthrough_pack.js:14", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/sprint165_browser_profile_clickthrough_pack.js:14"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-56cc33b2dd19cc98", "name": "Insecure pattern 'node_child_process' in scripts/sprint170_protected_browser_acceptance_gate.js:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/sprint170_protected_browser_acceptance_gate.js:13"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c4d9d9e22826e6f9", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/app_home.js:9", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/app_home.js:9"}, "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-0fb225498072e207", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_po.js:3", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_po.js:3"}, "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-1f9497ea7e920183", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/reports.js:7", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/reports.js:7"}, "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-bdfa4d44a59feebc", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/api_client.js:303", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/api_client.js:303"}, "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-cd8712aaa5789113", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/after_sales_enhanced.js:16", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/after_sales_enhanced.js: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-53c7c4d36ab6f707", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/billing_customer.js:51", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/billing_customer.js: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-526fe20f91b0e916", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/system_graph.html:538", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/system_graph.html:538"}, "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-96dd94b6fafcadc2", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_settings.js:29", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_settings.js:29"}, "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-97bb9f8fb1958157", "name": "Insecure pattern 'insert_adjacent_html' in pwa/section_settings.js:19", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in pwa/section_settings.js:19"}, "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-d0ce1f9723f599f7", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_line_center.js:169", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_line_center.js:169"}, "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-f97d925e6bc9c7da", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/crm_attendance.js:24", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/crm_attendance.js: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-d378a9d40c017b76", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/billing_slip_verify.js:31", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/billing_slip_verify.js:31"}, "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-bdc50600827934be", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/customer_portal.js:32", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/customer_portal.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-113c7a775a6a9c9d", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/app_jobs.js:51", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/app_jobs.js: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-10e068ffb79fe5b0", "name": "Insecure pattern 'insert_adjacent_html' in pwa/app_jobs.js:306", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in pwa/app_jobs.js:306"}, "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-17bee5a93683644d", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/advanced_reports.js:28", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/advanced_reports.js:28"}, "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-3aef8a0950c976e1", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/language_manager.js:392", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/language_manager.js:392"}, "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-3732a63ca3c3cb92", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/demo_dashboard.html:1173", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/demo_dashboard.html:1173"}, "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-51dadd04a2a90a9c", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_backup.js:17", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_backup.js: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-134fbcdaa9cce787", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/app_actions.js:71", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/app_actions.js:71"}, "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-e9b4072645881b74", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_warranty.js:42", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_warranty.js:42"}, "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-5f1b9b70e57a0121", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/warranty_section.js:16", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/warranty_section.js: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-cb273889c4357c40", "name": "Insecure pattern 'insert_adjacent_html' in pwa/warranty_section.js:291", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in pwa/warranty_section.js:291"}, "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-21063e9e9785edd6", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/tax_ui.js:172", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/tax_ui.js:172"}, "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-3c4b26da3ccbde2c", "name": "Insecure pattern 'insert_adjacent_html' in pwa/tax_ui.js:95", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in pwa/tax_ui.js:95"}, "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-9046b50c68743c84", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/monitoring_dashboard.html:774", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/monitoring_dashboard.html:774"}, "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-7dcd3452e387fd01", "name": "Insecure pattern 'eval_used' in pwa/execution_lock.js:284", "shortDescription": {"text": "Insecure pattern 'eval_used' in pwa/execution_lock.js:284"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4e8af53d82f2f6cc", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/warranty_ui.js:49", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/warranty_ui.js: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-958038a4cb57211f", "name": "Insecure pattern 'insert_adjacent_html' in pwa/warranty_ui.js:228", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in pwa/warranty_ui.js:228"}, "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-7451945e71b03420", "name": "Insecure pattern 'local_storage_auth_token' in pwa/pentest_frontend.js:217", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in pwa/pentest_frontend.js:217"}, "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-2af2d4b81da9785d", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/inventory_ui.js:232", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/inventory_ui.js:232"}, "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-9f6bbdeb0ae04575", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_jobs.js:164", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_jobs.js: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-f6be50935f89c214", "name": "Insecure pattern 'insert_adjacent_html' in pwa/section_jobs.js:101", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in pwa/section_jobs.js:101"}, "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-3014972e2473f85f", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/app.js:652", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/app.js:652"}, "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-6a9c708058b3f6b2", "name": "Insecure pattern 'insert_adjacent_html' in pwa/app.js:779", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in pwa/app.js:779"}, "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-09c8294f9063ff1d", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_inventory.js:19", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_inventory.js: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-24577b533390a0f5", "name": "Insecure pattern 'insert_adjacent_html' in pwa/section_inventory.js:301", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in pwa/section_inventory.js:301"}, "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-2cce479e8251c273", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/analytics.js:55", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/analytics.js:55"}, "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-4030135ba1bb7650", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/crm_ui.js:59", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/crm_ui.js: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-d0159697c883583c", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/auth_guard.js:327", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/auth_guard.js:327"}, "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-4105cd1b688ed85e", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/dashboard.js:13", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/dashboard.js: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-734f6e6100dceeb2", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/customer_portal.html:252", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/customer_portal.html: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-dcdc837299cdc8d8", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/notification_center.js:47", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/notification_center.js: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-f3b37b5c5f7a9f0a", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/push_notifications_v2.js:369", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/push_notifications_v2.js:369"}, "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-363476632c79a514", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/pwa_install.js:193", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/pwa_install.js:193"}, "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-bb2d8ff383ed6b4d", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/push_notifications.js:148", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/push_notifications.js: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-bb23f5c60d5feaea", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_crm.js:8", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_crm.js:8"}, "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-1cf514b141038359", "name": "Insecure pattern 'insert_adjacent_html' in pwa/section_crm.js:223", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in pwa/section_crm.js:223"}, "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-9ff66d985dff9f4b", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/job_workflow.js:54", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/job_workflow.js: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-a409451aa8f3ba5e", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/billing_section.js:51", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/billing_section.js: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-4c09eae30c1671bf", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/photo_upload_section.js:18", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/photo_upload_section.js: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-e1bbadef63c735b7", "name": "Insecure pattern 'document_write' in pwa/business_ai.js:368", "shortDescription": {"text": "Insecure pattern 'document_write' in pwa/business_ai.js:368"}, "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-4d8bfe1a62c80027", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/business_ai.js:114", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/business_ai.js: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-cf4abce9249c5925", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/stock.js:14", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/stock.js: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-a46724240aefdf71", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/quick_actions.js:51", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/quick_actions.js: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-80f1ab3ec2b2ec27", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/attendance_ui.js:44", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/attendance_ui.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-49c7d44700fcb620", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_billing.js:17", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_billing.js: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-0658552886e89179", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/ai_executor_runtime.js:179", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/ai_executor_runtime.js: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-bd810e887328d5de", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/analytics_section.js:18", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/analytics_section.js: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-e44828c5ae804293", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/approval_guard.js:391", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/approval_guard.js:391"}, "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-d078f8c90f515d63", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/branch_health_ui.js:104", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/branch_health_ui.js: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-6d2dd574bf746736", "name": "Insecure pattern 'insert_adjacent_html' in pwa/branch_health_ui.js:62", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in pwa/branch_health_ui.js:62"}, "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-4cb4baa2112ba7f3", "name": "Insecure pattern 'local_storage_auth_token' in pwa/dashboard_pc.html:19", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in pwa/dashboard_pc.html:19"}, "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-0c6d98f2b667d9fc", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_vision.js:437", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_vision.js:437"}, "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-b44204cc144316c4", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/attendance_section.js:7", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/attendance_section.js:7"}, "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-f8addb0941f0d57b", "name": "Insecure pattern 'local_storage_auth_token' in pwa/dashboard_pc_test.js:29", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in pwa/dashboard_pc_test.js:29"}, "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-df5e634ee0d377e7", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/search.js:90", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/search.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-43c4863a4352d043", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/executive_dashboard.html:731", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/executive_dashboard.html:731"}, "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-8da6a4f50d9191c7", "name": "Insecure pattern 'local_storage_auth_token' in pwa/executive_dashboard.html:567", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in pwa/executive_dashboard.html:567"}, "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-81b6f1d3294a8cc5", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_tax.js:103", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_tax.js:103"}, "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-57651f7bea48ab70", "name": "Insecure pattern 'insert_adjacent_html' in pwa/section_tax.js:61", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in pwa/section_tax.js:61"}, "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-f2c5113150a14eed", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/customer_portal_section.js:19", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/customer_portal_section.js: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-540f60d945f518ef", "name": "Insecure pattern 'document_write' in pwa/purchase_order.js:641", "shortDescription": {"text": "Insecure pattern 'document_write' in pwa/purchase_order.js:641"}, "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-424f6207ce28e1cc", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/purchase_order.js:37", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/purchase_order.js: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-35ef2ef0538ee1dd", "name": "Insecure pattern 'local_storage_auth_token' in pwa/dashboard_pc_clean.html:19", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in pwa/dashboard_pc_clean.html:19"}, "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-4f4c8c34e68e2517", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_analytics.js:13", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_analytics.js: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-b6852e0ec1b0bb10", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_performance.js:23", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_performance.js: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-fd1c6fffd59c3961", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/menu_health.js:18", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/menu_health.js: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-6ae4d99aa21e3176", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/auth.js:127", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/auth.js:127"}, "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-2de79b0723e79181", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/admin.js:23", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/admin.js: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-378a76c77155456e", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/pos.js:35", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/pos.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-cfce6ba1196b19bf", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_revenue.js:45", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_revenue.js: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-00e78893ea04a19f", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/dashboard_pc_core.js:103", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/dashboard_pc_core.js:103"}, "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-cb7917c78a4f0288", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/runtime_self_test.js:235", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/runtime_self_test.js:235"}, "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-9570f419b973f859", "name": "Insecure pattern 'insert_adjacent_html' in pwa/runtime_self_test.js:339", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in pwa/runtime_self_test.js:339"}, "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-0076023008618d8c", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/admin_panel.js:41", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/admin_panel.js:41"}, "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-5eb453082a26f5e6", "name": "Insecure pattern 'local_storage_auth_token' in pwa/admin_panel.js:426", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in pwa/admin_panel.js:426"}, "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-3bd47a6fc4dc66f7", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/_backup_phase3/warranty_section.js:16", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/_backup_phase3/warranty_section.js: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-261ce79cc76d436b", "name": "Insecure pattern 'insert_adjacent_html' in pwa/_backup_phase3/warranty_section.js:291", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in pwa/_backup_phase3/warranty_section.js:291"}, "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-f2acccc29671f631", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/_backup_phase3/analytics_section.js:18", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/_backup_phase3/analytics_section.js: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-78e2d1e7f9f9171f", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/_backup_phase3/executive_dashboard.html:731", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/_backup_phase3/executive_dashboard.html:731"}, "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-38381531223d9a9d", "name": "Insecure pattern 'local_storage_auth_token' in pwa/_backup_phase3/executive_dashboard.html:567", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in pwa/_backup_phase3/executive_dashboard.html:567"}, "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-f1562e5b63a173e1", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/_backup_phase3/section_tax.js:103", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/_backup_phase3/section_tax.js:103"}, "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-247b91fd03c570cf", "name": "Insecure pattern 'insert_adjacent_html' in pwa/_backup_phase3/section_tax.js:61", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in pwa/_backup_phase3/section_tax.js:61"}, "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-84779c6833fca9a5", "name": "Insecure pattern 'direct_innerhtml_assignment' in pwa/_backup_phase3/section_revenue.js:123", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/_backup_phase3/section_revenue.js:123"}, "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-83f2f5f50172c59b", "name": "Insecure pattern 'direct_innerhtml_assignment' in clasp-ready/JS_Part1.html:108", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in clasp-ready/JS_Part1.html: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-44259d8137ed8a42", "name": "Insecure pattern 'direct_innerhtml_assignment' in clasp-ready/dashboard_preview.html:1041", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in clasp-ready/dashboard_preview.html:1041"}, "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-b503e608048d4912", "name": "Insecure pattern 'direct_innerhtml_assignment' in clasp-ready/PhotoGallery.html:190", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in clasp-ready/PhotoGallery.html: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-e7f55f50d7f55252", "name": "Insecure pattern 'direct_innerhtml_assignment' in clasp-ready/JobQRView.html:266", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in clasp-ready/JobQRView.html:266"}, "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-a7672f12748ad7d6", "name": "Insecure pattern 'direct_innerhtml_assignment' in clasp-ready/JS_Part2.html:181", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in clasp-ready/JS_Part2.html:181"}, "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-6d82939069991793", "name": "Insecure pattern 'direct_innerhtml_assignment' in clasp-ready/JS_Dashboard.html:76", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in clasp-ready/JS_Dashboard.html: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-a006834f55353ef2", "name": "Insecure pattern 'weak_hash' in test_reports/phase27_business_ai_test.json:98", "shortDescription": {"text": "Insecure pattern 'weak_hash' in test_reports/phase27_business_ai_test.json:98"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-75d3c88006098cc1", "name": "Insecure pattern 'direct_innerhtml_assignment' in delivery/pwa/after_sales_enhanced.js:16", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in delivery/pwa/after_sales_enhanced.js: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-947d243f3e46581a", "name": "Insecure pattern 'direct_innerhtml_assignment' in delivery/pwa/billing_slip_verify.js:31", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in delivery/pwa/billing_slip_verify.js:31"}, "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-5849747a7e1aa924", "name": "Insecure pattern 'direct_innerhtml_assignment' in delivery/pwa/customer_portal.html:167", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in delivery/pwa/customer_portal.html: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-edb8205b06ad7aeb", "name": "Insecure pattern 'direct_innerhtml_assignment' in ARCHIVED_Shop_vnext/src/JS_Part1.html:34", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in ARCHIVED_Shop_vnext/src/JS_Part1.html: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-96b67e8754d67c2d", "name": "Insecure pattern 'direct_innerhtml_assignment' in ARCHIVED_Shop_vnext/src/PhotoGallery.html:189", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in ARCHIVED_Shop_vnext/src/PhotoGallery.html:189"}, "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-77c1b5ed15588870", "name": "Insecure pattern 'direct_innerhtml_assignment' in ARCHIVED_Shop_vnext/src/JobQRView.html:265", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in ARCHIVED_Shop_vnext/src/JobQRView.html:265"}, "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-b3fe250294bfad92", "name": "Insecure pattern 'direct_innerhtml_assignment' in ARCHIVED_Shop_vnext/src/JS_Part2.html:62", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in ARCHIVED_Shop_vnext/src/JS_Part2.html:62"}, "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-7bff45d06f767964", "name": "Insecure pattern 'direct_innerhtml_assignment' in ARCHIVED_Shop_vnext/src/JS_Dashboard.html:5", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in ARCHIVED_Shop_vnext/src/JS_Dashboard.html:5"}, "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-0820bc18a2c75c98", "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-12927699cbf9d540", "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-80a56b60842dadec", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b00ee54062e0eb94", "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-cca86e62fb6bf7d6", "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-b9b62ae1ad0c4eb9", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ef449d526d270761", "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-eb6defb2e2811344", "name": "Very large file: scripts/pwa_static_guard.js (961 lines)", "shortDescription": {"text": "Very large file: scripts/pwa_static_guard.js (961 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-337f3121bfcda035", "name": "Very large file: pwa/section_settings.js (907 lines)", "shortDescription": {"text": "Very large file: pwa/section_settings.js (907 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-e85a536b1ba32b74", "name": "Very large file: pwa/app.js (1345 lines)", "shortDescription": {"text": "Very large file: pwa/app.js (1345 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-1a4145486dc24ca3", "name": "Very large file: pwa/admin_panel.js (1020 lines)", "shortDescription": {"text": "Very large file: pwa/admin_panel.js (1020 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-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "6 test file(s) for 237 source file(s) (ratio 0.03). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "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-7b7a1bcfe92e4baf", "name": "Node manifest has dependencies but no lockfile: workers/line-webhook/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: workers/line-webhook/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "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 1006 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 161 placeholder/mock markers across 47 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-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, lockfile. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-94461bcbfceabece", "name": "`fetch()` without try/.catch or AbortSignal \u2014 workers/line-webhook/src/index.js:15", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 workers/line-webhook/src/index.js:15"}, "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-0418b79867a3eb39", "name": "Legacy-named symbol `offline_db_v2` in scripts/build_code_index.js:36", "shortDescription": {"text": "Legacy-named symbol `offline_db_v2` in scripts/build_code_index.js:36"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e2e2ef622237485f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/pwa_functional_menu_audit.js:219", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/pwa_functional_menu_audit.js:219"}, "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-36bd112f45b149a6", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/check_sync.py:173", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/check_sync.py:173"}, "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-703796e159e20290", "name": "Legacy-named symbol `drive_backup` in scripts/drive_backup.py:92", "shortDescription": {"text": "Legacy-named symbol `drive_backup` in scripts/drive_backup.py:92"}, "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-1b26bb34ca3ea7e8", "name": "Legacy-named symbol `section_backup` in scripts/sprint102_live_ux_menu_audit.js:72", "shortDescription": {"text": "Legacy-named symbol `section_backup` in scripts/sprint102_live_ux_menu_audit.js:72"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-323f1418297ee0aa", "name": "Legacy-named symbol `section_backup` in scripts/sprint103_visual_runtime_walkthrough.js:51", "shortDescription": {"text": "Legacy-named symbol `section_backup` in scripts/sprint103_visual_runtime_walkthrough.js:51"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-692eb64523ed2e2e", "name": "Network/subprocess call without timeout or try/except \u2014 scripts/clasp_push.py:34", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/clasp_push.py:34"}, "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-e6adde44fd01448c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/pwa_smoke_cleanup_plan.js:87", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/pwa_smoke_cleanup_plan.js:87"}, "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-44735fe4c2c6dd18", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/set_gas_secret.js:59", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/set_gas_secret.js:59"}, "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-f3a14a4fe7a950a2", "name": "Legacy-named symbol `syncOfflineQueueLegacy` in pwa/offline_db.js:87", "shortDescription": {"text": "Legacy-named symbol `syncOfflineQueueLegacy` in pwa/offline_db.js:87"}, "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-9c04bf88397a0fdd", "name": "Commented-code block (5 lines) in pwa/offline_db.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in pwa/offline_db.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-75f84a4b3f9c541e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 pwa/api_client.js:5", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 pwa/api_client.js:5"}, "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-400443f440d975a0", "name": "Commented-code block (5 lines) in pwa/after_sales_enhanced.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in pwa/after_sales_enhanced.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-c4b55470d61ec18f", "name": "Commented-code block (5 lines) in pwa/billing_slip_verify.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in pwa/billing_slip_verify.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-3117eda7e50669fc", "name": "Commented-code block (5 lines) in pwa/customer_portal.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in pwa/customer_portal.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-3669b550019ae08d", "name": "Legacy-named symbol `offline_db_v2` in pwa/offline_db_v2.js:2", "shortDescription": {"text": "Legacy-named symbol `offline_db_v2` in pwa/offline_db_v2.js: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-b3c320007bddec17", "name": "Commented-code block (5 lines) in pwa/offline_db_v2.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in pwa/offline_db_v2.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-16361dc1da43aabd", "name": "Legacy-named symbol `latest_backup` in pwa/section_backup.js:140", "shortDescription": {"text": "Legacy-named symbol `latest_backup` in pwa/section_backup.js:140"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e132c9de1f594174", "name": "Commented-code block (5 lines) in pwa/sw.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in pwa/sw.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-77ed465c03b56a39", "name": "`fetch()` without try/.catch or AbortSignal \u2014 pwa/sw.js:97", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 pwa/sw.js:97"}, "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-8c0e04d0a9dbe17f", "name": "Commented-code block (14 lines) in pwa/execution_lock.js:1", "shortDescription": {"text": "Commented-code block (14 lines) in pwa/execution_lock.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-3c8e9828239ac0e9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 pwa/execution_lock.js:351", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 pwa/execution_lock.js:351"}, "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-726134ec6b775677", "name": "Legacy-named symbol `isOld` in pwa/pentest_frontend.js:499", "shortDescription": {"text": "Legacy-named symbol `isOld` in pwa/pentest_frontend.js:499"}, "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-27f2a2902980a44b", "name": "Commented-code block (13 lines) in pwa/inventory_ui.js:1", "shortDescription": {"text": "Commented-code block (13 lines) in pwa/inventory_ui.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-f769af6d1254bb7a", "name": "Legacy-named symbol `comphone_mobile_dashboard_cache_v2` in pwa/app.js:9", "shortDescription": {"text": "Legacy-named symbol `comphone_mobile_dashboard_cache_v2` in pwa/app.js: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-34661ca0ab1eb2a0", "name": "Commented-code block (8 lines) in pwa/section_inventory.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in pwa/section_inventory.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-960bced8f432ca3b", "name": "Commented-code block (14 lines) in pwa/analytics.js:1", "shortDescription": {"text": "Commented-code block (14 lines) in pwa/analytics.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-b63999073b64c2f2", "name": "Commented-code block (12 lines) in pwa/auth_guard.js:1", "shortDescription": {"text": "Commented-code block (12 lines) in pwa/auth_guard.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-a5071e4524587a2b", "name": "Legacy-named symbol `push_notifications_v2` in pwa/push_notifications_v2.js:2", "shortDescription": {"text": "Legacy-named symbol `push_notifications_v2` in pwa/push_notifications_v2.js: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-f2ef37fe5cbd8711", "name": "Commented-code block (5 lines) in pwa/push_notifications_v2.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in pwa/push_notifications_v2.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-b1d915e819fd50d7", "name": "Commented-code block (11 lines) in pwa/error_boundary.js:1", "shortDescription": {"text": "Commented-code block (11 lines) in pwa/error_boundary.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-c7b61e3a5d32dd53", "name": "`fetch()` without try/.catch or AbortSignal \u2014 pwa/error_boundary.js:188", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 pwa/error_boundary.js:188"}, "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-35f3666125eaba49", "name": "Commented-code block (12 lines) in pwa/pwa_install.js:1", "shortDescription": {"text": "Commented-code block (12 lines) in pwa/pwa_install.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-5f638267bfca45d3", "name": "Commented-code block (5 lines) in pwa/push_notifications.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in pwa/push_notifications.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-e00b9db583ecfe4f", "name": "Commented-code block (10 lines) in pwa/job_workflow.js:1", "shortDescription": {"text": "Commented-code block (10 lines) in pwa/job_workflow.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-76d4ecde64cb9128", "name": "Commented-code block (5 lines) in pwa/photo_upload_section.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in pwa/photo_upload_section.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-8c9bc9e32c263576", "name": "Commented-code block (12 lines) in pwa/quick_actions.js:1", "shortDescription": {"text": "Commented-code block (12 lines) in pwa/quick_actions.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-498d6bada3b61dfb", "name": "Commented-code block (5 lines) in pwa/version_config.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in pwa/version_config.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-427dc642a8dfce32", "name": "Commented-code block (13 lines) in pwa/attendance_ui.js:1", "shortDescription": {"text": "Commented-code block (13 lines) in pwa/attendance_ui.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-7f79293c5a553302", "name": "Commented-code block (9 lines) in pwa/ai_executor_runtime.js:1", "shortDescription": {"text": "Commented-code block (9 lines) in pwa/ai_executor_runtime.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-b9d6e9207d3623e2", "name": "Commented-code block (5 lines) in pwa/analytics_section.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in pwa/analytics_section.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-6fad9895f1c2f578", "name": "Legacy-named symbol `canApproveLegacy` in pwa/approval_guard.js:512", "shortDescription": {"text": "Legacy-named symbol `canApproveLegacy` in pwa/approval_guard.js:512"}, "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-e23b4b163e755eb1", "name": "Commented-code block (11 lines) in pwa/approval_guard.js:1", "shortDescription": {"text": "Commented-code block (11 lines) in pwa/approval_guard.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-3c5a8135d36651c5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 pwa/dashboard_pc_test.js:24", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 pwa/dashboard_pc_test.js:24"}, "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-2b4397b764af3377", "name": "Commented-code block (5 lines) in pwa/customer_portal_section.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in pwa/customer_portal_section.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-e6ffdb31895b4283", "name": "Commented-code block (6 lines) in pwa/smart_quotation.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in pwa/smart_quotation.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-608fc3cb949f5763", "name": "Commented-code block (10 lines) in pwa/auth.js:1", "shortDescription": {"text": "Commented-code block (10 lines) in pwa/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-ad7965e0a0a13d0e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 pwa/auth.js:230", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 pwa/auth.js:230"}, "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-c0bb12dd9f2beea5", "name": "Commented-code block (5 lines) in pwa/admin.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in pwa/admin.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-e1dec3a1821bb509", "name": "`fetch()` without try/.catch or AbortSignal \u2014 pwa/dashboard_pc_core.js:300", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 pwa/dashboard_pc_core.js:300"}, "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-97b1f8a4c8df3db4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 pwa/runtime_self_test.js:195", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 pwa/runtime_self_test.js:195"}, "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-d847a374d3cc6f47", "name": "Commented-code block (5 lines) in pwa/_backup_phase3/analytics_section.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in pwa/_backup_phase3/analytics_section.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-bc8b6fca15804a3b", "name": "Commented-code block (5 lines) in delivery/pwa/after_sales_enhanced.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in delivery/pwa/after_sales_enhanced.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-b80c13a2d6f8776c", "name": "Commented-code block (5 lines) in delivery/pwa/billing_slip_verify.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in delivery/pwa/billing_slip_verify.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-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:\nscripts/drive_sync.py:log, scripts/sync_all.py:log\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/25071"}, "properties": {"repository": "comphone/comphone-superapp", "repoUrl": "https://github.com/comphone/comphone-superapp", "branch": "main"}, "results": [{"ruleId": "scanner-dd12d2d23e99872f", "level": "note", "message": {"text": "Possibly dead Python function: replace_with_filename"}, "properties": {"repobilityId": "9d394beb6f98298c", "scanner": "scanner-primary", "fingerprint": "dd12d2d23e99872f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/fix_version_headers.py:30"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d06a5c0365631b6b", "level": "note", "message": {"text": "Possibly dead Python function: replace_pattern4"}, "properties": {"repobilityId": "d078c732d604c8bc", "scanner": "scanner-primary", "fingerprint": "d06a5c0365631b6b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/fix_version_headers.py:52"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2092fcc0b1344967", "level": "note", "message": {"text": "Possibly dead Python function: do_GET"}, "properties": {"repobilityId": "2d943bb45e4f13bd", "scanner": "scanner-primary", "fingerprint": "2092fcc0b1344967", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/setup_gdrive_auth.py:114"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d7afe8a26d06a1c2", "level": "note", "message": {"text": "Possibly dead Python function: log_message"}, "properties": {"repobilityId": "965f3150b4af5b2e", "scanner": "scanner-primary", "fingerprint": "d7afe8a26d06a1c2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/setup_gdrive_auth.py:135"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c669bbb2180843ba", "level": "note", "message": {"text": "Possibly dead Python function: run_auto_push"}, "properties": {"repobilityId": "63f5788cc0da9dbe", "scanner": "scanner-primary", "fingerprint": "c669bbb2180843ba", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/sync_all.py:336"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-21f0cf1d0da22b39", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 workers/line-webhook/src/index.js:193"}, "properties": {"repobilityId": "3bf49f5091a908eb", "scanner": "scanner-primary", "fingerprint": "21f0cf1d0da22b39", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-02502fb4542a653a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint85_live_mobile_menu_smoke.js:196"}, "properties": {"repobilityId": "1341f1dd26c374e1", "scanner": "scanner-primary", "fingerprint": "02502fb4542a653a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ecf5aae61fc4abc6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint159_post_deploy_publish_confirmation.js:74"}, "properties": {"repobilityId": "13843d5cae4727ed", "scanner": "scanner-primary", "fingerprint": "ecf5aae61fc4abc6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-62cbaa6e4ef9c46f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint185_line_group_image_pilot.js:169"}, "properties": {"repobilityId": "08185b2131f644f8", "scanner": "scanner-primary", "fingerprint": "62cbaa6e4ef9c46f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b588b872571cbdfb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint146_ai_vision_pilot_workflow.js:71"}, "properties": {"repobilityId": "ec6dc7fd93310e49", "scanner": "scanner-primary", "fingerprint": "b588b872571cbdfb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0488fc9236f337e7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint148_ops_permission_cleanup.js:84"}, "properties": {"repobilityId": "230d6b8dee721161", "scanner": "scanner-primary", "fingerprint": "0488fc9236f337e7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9e14117f0eb6b4bf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint174_strict_protected_browser_runbook.js:64"}, "properties": {"repobilityId": "ff30daba1c78cb1a", "scanner": "scanner-primary", "fingerprint": "9e14117f0eb6b4bf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-416142f0f1161be0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/pwa_ui_write_contract.js:119"}, "properties": {"repobilityId": "b715b11eafc8f7f5", "scanner": "scanner-primary", "fingerprint": "416142f0f1161be0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-75684268156eb22c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint101_write_lifecycle_audit.js:167"}, "properties": {"repobilityId": "69870338ccdab490", "scanner": "scanner-primary", "fingerprint": "75684268156eb22c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-25d9bc2d6f51abe9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint144_owner_data_resolution.js:129"}, "properties": {"repobilityId": "106ebac5acc0419b", "scanner": "scanner-primary", "fingerprint": "25d9bc2d6f51abe9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-14b5cfdd4263aaaa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint121_performance_accessibility_audit.js:106"}, "properties": {"repobilityId": "5d0fa46af15f1b6f", "scanner": "scanner-primary", "fingerprint": "14b5cfdd4263aaaa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-acf6f778ad322625", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint107_controlled_data_cleanup_plan.js:209"}, "properties": {"repobilityId": "2bfd917414d624f2", "scanner": "scanner-primary", "fingerprint": "acf6f778ad322625", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-db3ff4d8ad88fa0b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint106_production_data_quality_guard.js:222"}, "properties": {"repobilityId": "753c11b5300ff60b", "scanner": "scanner-primary", "fingerprint": "db3ff4d8ad88fa0b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7ad7c406eb87bc48", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint177_ai_vision_real_sample_evidence.js:60"}, "properties": {"repobilityId": "761458b5529aaeb2", "scanner": "scanner-primary", "fingerprint": "7ad7c406eb87bc48", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ad548e607b0e2c7d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint166_protected_token_full_sweep_pack.js:38"}, "properties": {"repobilityId": "2b2d4c0bd0ca87ea", "scanner": "scanner-primary", "fingerprint": "ad548e607b0e2c7d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2478be990674070f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint117_vision_line_operational_loop_audit.js:107"}, "properties": {"repobilityId": "01cf3bff1be5de0d", "scanner": "scanner-primary", "fingerprint": "2478be990674070f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a799222f3bff1145", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/gas_syntax_guard.js:123"}, "properties": {"repobilityId": "b6bd32af5a313f4c", "scanner": "scanner-primary", "fingerprint": "a799222f3bff1145", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f218c5757cd5f8a3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint84_mobile_secondary_workflows_audit.js:193"}, "properties": {"repobilityId": "2372d379d5dd7569", "scanner": "scanner-primary", "fingerprint": "f218c5757cd5f8a3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-32a01f43a5841426", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint123_live_visual_qa_guard.js:140"}, "properties": {"repobilityId": "b0fc44cbf7cd0020", "scanner": "scanner-primary", "fingerprint": "32a01f43a5841426", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-59511fa1d339ffb4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint120_settings_admin_runtime_audit.js:130"}, "properties": {"repobilityId": "d6f82d88876b23eb", "scanner": "scanner-primary", "fingerprint": "59511fa1d339ffb4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-111476bd9e1f8d11", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint138_backend_review_log_live_qa.js:107"}, "properties": {"repobilityId": "74b7b433b3625f47", "scanner": "scanner-primary", "fingerprint": "111476bd9e1f8d11", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8419c799d6dc49c2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/pwa_line_room_smoke.js:65"}, "properties": {"repobilityId": "f939ad1c2d76743a", "scanner": "scanner-primary", "fingerprint": "8419c799d6dc49c2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c4a5bd4af507ecec", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/pwa_write_smoke.js:61"}, "properties": {"repobilityId": "579962e698367cbc", "scanner": "scanner-primary", "fingerprint": "c4a5bd4af507ecec", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-346f2096c5e51016", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint172_line_room_notification_matrix_gate.js:44"}, "properties": {"repobilityId": "f189ecb223f2446b", "scanner": "scanner-primary", "fingerprint": "346f2096c5e51016", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7d46a929b463f6e8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint124_protected_visual_menu_qa.js:396"}, "properties": {"repobilityId": "0ae42a8bb82968bf", "scanner": "scanner-primary", "fingerprint": "7d46a929b463f6e8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5a01bdd7202c2229", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/vision_e2e_smoke.js:48"}, "properties": {"repobilityId": "ed017baddd173944", "scanner": "scanner-primary", "fingerprint": "5a01bdd7202c2229", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1c45c0c23f4b1271", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint160_real_browser_clickthrough_contract.js:85"}, "properties": {"repobilityId": "18c0e0d316cd524a", "scanner": "scanner-primary", "fingerprint": "1c45c0c23f4b1271", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-72c41e77b1dce5a1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint128_line_notification_toggle_live_qa.js:64"}, "properties": {"repobilityId": "2b945c4fbb1b897c", "scanner": "scanner-primary", "fingerprint": "72c41e77b1dce5a1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-371ca5a1bbe80a06", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint98_operator_workflow_audit.js:123"}, "properties": {"repobilityId": "8e1899c8027059e2", "scanner": "scanner-primary", "fingerprint": "371ca5a1bbe80a06", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7194c3bbb2ba5d16", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/pwa_menu_journey_audit.js:175"}, "properties": {"repobilityId": "3f895a72afe98ace", "scanner": "scanner-primary", "fingerprint": "7194c3bbb2ba5d16", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-274b063926e0aa53", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint137_backend_review_log_audit.js:110"}, "properties": {"repobilityId": "cffecb6047b17fc2", "scanner": "scanner-primary", "fingerprint": "274b063926e0aa53", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-039e87a9c3c06d59", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint79_vision_line_flow_audit.js:273"}, "properties": {"repobilityId": "1890800ec06eb9f3", "scanner": "scanner-primary", "fingerprint": "039e87a9c3c06d59", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-db87a46e8d17b60a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint131_line_real_send_readiness.js:104"}, "properties": {"repobilityId": "01ba19c17987002a", "scanner": "scanner-primary", "fingerprint": "db87a46e8d17b60a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2dab1fdbd97f6de6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint149_live_browser_visual_qa.js:108"}, "properties": {"repobilityId": "209fdda60ec8d5e6", "scanner": "scanner-primary", "fingerprint": "2dab1fdbd97f6de6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-243ded2c3b052e08", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint77_billing_e2e_audit.js:206"}, "properties": {"repobilityId": "f4a574cc4db2a798", "scanner": "scanner-primary", "fingerprint": "243ded2c3b052e08", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d1befcf589524c5c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/pages_deploy_verify.js:100"}, "properties": {"repobilityId": "6d21ea4817db5840", "scanner": "scanner-primary", "fingerprint": "d1befcf589524c5c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-097c0e611ddb0d4d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint75_jobs_billing_reports_audit.js:212"}, "properties": {"repobilityId": "47806c53644b5c60", "scanner": "scanner-primary", "fingerprint": "097c0e611ddb0d4d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-db91b67225d0d0e2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint129_vision_line_suppression_live_qa.js:75"}, "properties": {"repobilityId": "19c5ed763c45de49", "scanner": "scanner-primary", "fingerprint": "db91b67225d0d0e2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d68e52a29c28855b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint171_ai_vision_sample_evidence_contract.js:43"}, "properties": {"repobilityId": "0391647ba275d1b5", "scanner": "scanner-primary", "fingerprint": "d68e52a29c28855b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cabd83d4a6284e85", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint154_post_deploy_pages_confirmation.js:75"}, "properties": {"repobilityId": "50009c1c78b945c0", "scanner": "scanner-primary", "fingerprint": "cabd83d4a6284e85", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6cd08f473d600fc4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint164_pages_publish_lock.js:31"}, "properties": {"repobilityId": "cdece3b797576924", "scanner": "scanner-primary", "fingerprint": "6cd08f473d600fc4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-95935495c6175a82", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint112_admin_repair_console_audit.js:134"}, "properties": {"repobilityId": "8d5ffbb621e0604b", "scanner": "scanner-primary", "fingerprint": "95935495c6175a82", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9d83480e724c5b29", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint125_role_based_dashboard_widgets_audit.js:104"}, "properties": {"repobilityId": "5bdeb2d7be409134", "scanner": "scanner-primary", "fingerprint": "9d83480e724c5b29", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e7b87286b5c9c453", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint192_mobile_dashboard_simplification_guard.js:92"}, "properties": {"repobilityId": "2b7218e80d73987f", "scanner": "scanner-primary", "fingerprint": "e7b87286b5c9c453", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2e39f463089faadb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/gas_source_alignment.js:85"}, "properties": {"repobilityId": "b9684ee7eab586d1", "scanner": "scanner-primary", "fingerprint": "2e39f463089faadb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6bf25d623dea70c0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint86_operator_ux_qa_checklist.js:265"}, "properties": {"repobilityId": "168d8c9c7f1d4854", "scanner": "scanner-primary", "fingerprint": "6bf25d623dea70c0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-28ddcb7da92cf22a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint157_pc_dashboard_workflow_guard.js:80"}, "properties": {"repobilityId": "bd2909851d23c3bb", "scanner": "scanner-primary", "fingerprint": "28ddcb7da92cf22a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e5d810e9b66d07b2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint78_reports_e2e_audit.js:193"}, "properties": {"repobilityId": "76d99452879743da", "scanner": "scanner-primary", "fingerprint": "e5d810e9b66d07b2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7ab3937c124cfa4c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint135_data_completeness_panel_audit.js:101"}, "properties": {"repobilityId": "f91448c53d619981", "scanner": "scanner-primary", "fingerprint": "7ab3937c124cfa4c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-20b05e8d83ac0223", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/vision_runtime_smoke.js:169"}, "properties": {"repobilityId": "3fb2d2d8309e9631", "scanner": "scanner-primary", "fingerprint": "20b05e8d83ac0223", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-86d2186564a1b1cd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint175_ai_vision_sample_pilot_gate.js:83"}, "properties": {"repobilityId": "88a0f9a39bbc639b", "scanner": "scanner-primary", "fingerprint": "86d2186564a1b1cd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2d91ed7b112b4e59", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint191_ai_vision_inbox_render_smoke.js:124"}, "properties": {"repobilityId": "9ca815c20ad15b7a", "scanner": "scanner-primary", "fingerprint": "2d91ed7b112b4e59", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-662aefaeaa928223", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint122_dashboard_operator_analytics_audit.js:93"}, "properties": {"repobilityId": "b110965f5614f214", "scanner": "scanner-primary", "fingerprint": "662aefaeaa928223", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-23f5bcdc9e062ec6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/system_integrity_audit.js:409"}, "properties": {"repobilityId": "d60d376e321ac885", "scanner": "scanner-primary", "fingerprint": "23f5bcdc9e062ec6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-defcbf9225e2c13b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint74_core_audit.js:454"}, "properties": {"repobilityId": "eec1f3f038c746c0", "scanner": "scanner-primary", "fingerprint": "defcbf9225e2c13b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3643ab74b12dc3d5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint141_mobile_menu_deep_qa.js:71"}, "properties": {"repobilityId": "fbe97cfeb6eedf79", "scanner": "scanner-primary", "fingerprint": "3643ab74b12dc3d5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fc6a47253360dfa7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build_code_index.js:390"}, "properties": {"repobilityId": "5dc7ffdf60cfe803", "scanner": "scanner-primary", "fingerprint": "fc6a47253360dfa7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-42732216acdfadd4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint153_permission_fallback_closure.js:63"}, "properties": {"repobilityId": "a64213aff0341222", "scanner": "scanner-primary", "fingerprint": "42732216acdfadd4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d27f6124bf71ae7d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint156_mobile_menu_e2e_guard.js:77"}, "properties": {"repobilityId": "be5cb6886686ef60", "scanner": "scanner-primary", "fingerprint": "d27f6124bf71ae7d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-15f08797ca815d3b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint116_reports_drilldown_audit.js:88"}, "properties": {"repobilityId": "91632e5e25566d20", "scanner": "scanner-primary", "fingerprint": "15f08797ca815d3b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d417d479a46dcd62", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint115_billing_resilience_audit.js:88"}, "properties": {"repobilityId": "cb2e87a1b4305c3a", "scanner": "scanner-primary", "fingerprint": "d417d479a46dcd62", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ea41bdc6fb7c0ca4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint155_owner_data_backfill_readiness.js:71"}, "properties": {"repobilityId": "88fa033a843cd2cc", "scanner": "scanner-primary", "fingerprint": "ea41bdc6fb7c0ca4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-37d04a092766a474", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint158_ai_vision_line_room_control_guard.js:74"}, "properties": {"repobilityId": "de8ce0a92d5a271c", "scanner": "scanner-primary", "fingerprint": "37d04a092766a474", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1decef93d0826164", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint133_support_admin_live_qa.js:157"}, "properties": {"repobilityId": "74a13e2c545fc59b", "scanner": "scanner-primary", "fingerprint": "1decef93d0826164", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bc2a7233671978fc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/pwa_workflow_smoke.js:147"}, "properties": {"repobilityId": "2f021dcd8dbcf69e", "scanner": "scanner-primary", "fingerprint": "bc2a7233671978fc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f746b29f4e8f92fe", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint111_controlled_data_repair_execution.js:143"}, "properties": {"repobilityId": "b1f56c03ea4b0a57", "scanner": "scanner-primary", "fingerprint": "f746b29f4e8f92fe", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6c0381a0b8414a25", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint127_vision_line_notification_controls_audit.js:135"}, "properties": {"repobilityId": "f703cef334c0ddc5", "scanner": "scanner-primary", "fingerprint": "6c0381a0b8414a25", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7437aa9bf4b57bae", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint190_ai_vision_review_inbox_guard.js:84"}, "properties": {"repobilityId": "69a3d148b0015697", "scanner": "scanner-primary", "fingerprint": "7437aa9bf4b57bae", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c52c3a794218ba5d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/pwa_functional_menu_audit.js:192"}, "properties": {"repobilityId": "8b65f132338372e6", "scanner": "scanner-primary", "fingerprint": "c52c3a794218ba5d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-663f57fb32754c0f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint126_ai_vision_role_readiness_audit.js:158"}, "properties": {"repobilityId": "274dc8d995124e3d", "scanner": "scanner-primary", "fingerprint": "663f57fb32754c0f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7cdb0ad0ce795257", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/pwa_ui_surface_audit.js:149"}, "properties": {"repobilityId": "c6d0ab223e69289d", "scanner": "scanner-primary", "fingerprint": "7cdb0ad0ce795257", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1360223222243758", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint178_strict_live_acceptance_gate.js:67"}, "properties": {"repobilityId": "4565666c0b4ce4bc", "scanner": "scanner-primary", "fingerprint": "1360223222243758", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6678457ad93d9146", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint134_data_completeness_review.js:435"}, "properties": {"repobilityId": "9116573b8ba0f60b", "scanner": "scanner-primary", "fingerprint": "6678457ad93d9146", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1658ebe25bdd9b8a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint104_protected_browser_journey.js:546"}, "properties": {"repobilityId": "2d8614c6a2caa528", "scanner": "scanner-primary", "fingerprint": "1658ebe25bdd9b8a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e48450fad39a4905", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint80_production_journey_audit.js:197"}, "properties": {"repobilityId": "1372a5ffb9e11e3f", "scanner": "scanner-primary", "fingerprint": "e48450fad39a4905", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fd1ef4101b73e2a5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint176_published_protected_acceptance.js:58"}, "properties": {"repobilityId": "c632c5276c89cf6b", "scanner": "scanner-primary", "fingerprint": "fd1ef4101b73e2a5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-26325247a763e7fc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint114_jobs_workflow_polish_audit.js:101"}, "properties": {"repobilityId": "a4c537113a60d87a", "scanner": "scanner-primary", "fingerprint": "26325247a763e7fc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-40742fbe9b5829ab", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint169_pages_fresh_release_gate.js:38"}, "properties": {"repobilityId": "53072bee78c523c5", "scanner": "scanner-primary", "fingerprint": "40742fbe9b5829ab", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-049847e8a2ba7cce", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint105_record_detail_completeness.js:436"}, "properties": {"repobilityId": "6237edb31cb622e7", "scanner": "scanner-primary", "fingerprint": "049847e8a2ba7cce", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3714b51dabea26dd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint82_mobile_quick_actions_audit.js:202"}, "properties": {"repobilityId": "31db9289975f5096", "scanner": "scanner-primary", "fingerprint": "3714b51dabea26dd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-68e7c5f24d44fcff", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint145_mobile_ux_walkthrough.js:82"}, "properties": {"repobilityId": "a0942767ee415763", "scanner": "scanner-primary", "fingerprint": "68e7c5f24d44fcff", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c7df42918aad6240", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint183_line_ai_vision_ingress_guard.js:81"}, "properties": {"repobilityId": "300d286f02428793", "scanner": "scanner-primary", "fingerprint": "c7df42918aad6240", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-03bb224ea92bce66", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint151_dashboard_ux_polish_audit.js:41"}, "properties": {"repobilityId": "ca7690ba9c91844e", "scanner": "scanner-primary", "fingerprint": "03bb224ea92bce66", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c984eab7696604f6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint109_data_repair_console_plan.js:121"}, "properties": {"repobilityId": "de92561775608555", "scanner": "scanner-primary", "fingerprint": "c984eab7696604f6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-82d8ab2d8cf8b78e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint179_ai_vision_real_sample_execution.js:79"}, "properties": {"repobilityId": "d64fff4e643733dd", "scanner": "scanner-primary", "fingerprint": "82d8ab2d8cf8b78e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c279eb29ad69a6e5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint100_operator_menu_audit.js:247"}, "properties": {"repobilityId": "ae1eb52e16baf857", "scanner": "scanner-primary", "fingerprint": "c279eb29ad69a6e5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2a3c3d05877ee3df", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint99_live_readiness_audit.js:144"}, "properties": {"repobilityId": "29157578d04da996", "scanner": "scanner-primary", "fingerprint": "2a3c3d05877ee3df", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6e3ceb4cb328bd64", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/vision_capability_audit.js:310"}, "properties": {"repobilityId": "eb8447c6cc91535f", "scanner": "scanner-primary", "fingerprint": "6e3ceb4cb328bd64", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-415f5f362f1a240f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint161_protected_live_token_sweep.js:71"}, "properties": {"repobilityId": "3f777526f7ea1045", "scanner": "scanner-primary", "fingerprint": "415f5f362f1a240f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fa521302c7954ed0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint167_owner_cleanup_execution_readiness.js:27"}, "properties": {"repobilityId": "0c54a5c697b07b64", "scanner": "scanner-primary", "fingerprint": "fa521302c7954ed0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3159ee4b6acabe84", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint168_ai_vision_real_sample_runbook.js:32"}, "properties": {"repobilityId": "f97a2c8ad5da05b5", "scanner": "scanner-primary", "fingerprint": "3159ee4b6acabe84", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-43f6541a29255244", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint87_protected_live_qa_runbook.js:309"}, "properties": {"repobilityId": "50c2c204efefeed8", "scanner": "scanner-primary", "fingerprint": "43f6541a29255244", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0bbe0a710c3dba74", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint142_ai_vision_real_use_readiness.js:67"}, "properties": {"repobilityId": "3d01445675f534be", "scanner": "scanner-primary", "fingerprint": "0bbe0a710c3dba74", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9bd5acb1d8bd3f82", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint140_jobs_billing_reports_live_polish.js:77"}, "properties": {"repobilityId": "9fe8e03e815c2d9c", "scanner": "scanner-primary", "fingerprint": "9bd5acb1d8bd3f82", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-16f5e79758cc161a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint132_core_workflow_live_qa.js:158"}, "properties": {"repobilityId": "91f24d6b10d6050e", "scanner": "scanner-primary", "fingerprint": "16f5e79758cc161a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9de144888e05fc8a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint180_strict_protected_live_proof.js:68"}, "properties": {"repobilityId": "45c3678306000b31", "scanner": "scanner-primary", "fingerprint": "9de144888e05fc8a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b310c0575d85a0f4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint163_ai_vision_real_sample_pilot.js:102"}, "properties": {"repobilityId": "d3d7b913b42db5be", "scanner": "scanner-primary", "fingerprint": "b310c0575d85a0f4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-19f28f29c3387d5f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint182_smoke_cleanup_execution.js:124"}, "properties": {"repobilityId": "56792822368be9b7", "scanner": "scanner-primary", "fingerprint": "19f28f29c3387d5f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a1e741e8c98d95d4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/pwa_static_guard.js:959"}, "properties": {"repobilityId": "3d73d2c1f4e6e669", "scanner": "scanner-primary", "fingerprint": "a1e741e8c98d95d4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-031ef693c1f6ceeb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint189_line_reply_noise_guard.js:55"}, "properties": {"repobilityId": "0079a4fc6654e097", "scanner": "scanner-primary", "fingerprint": "031ef693c1f6ceeb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1f4455be8219a0ef", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint102_live_ux_menu_audit.js:253"}, "properties": {"repobilityId": "66f174e856164999", "scanner": "scanner-primary", "fingerprint": "1f4455be8219a0ef", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cbde81eae5e7e041", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint103_visual_runtime_walkthrough.js:253"}, "properties": {"repobilityId": "546d7f5d4372eb27", "scanner": "scanner-primary", "fingerprint": "cbde81eae5e7e041", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bc8c4550cb1d08d1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/pwa_api_smoke.js:67"}, "properties": {"repobilityId": "3330293b58a15844", "scanner": "scanner-primary", "fingerprint": "bc8c4550cb1d08d1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2305dfecad6587f6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint150_data_cleanup_owner_workflow.js:79"}, "properties": {"repobilityId": "c9e7f9c98d49df85", "scanner": "scanner-primary", "fingerprint": "2305dfecad6587f6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f65ea00ad7c69fc9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint113_repair_console_live_qa.js:100"}, "properties": {"repobilityId": "3b5986c0fb2ed077", "scanner": "scanner-primary", "fingerprint": "f65ea00ad7c69fc9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4ad300646a110c3f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint181_ai_vision_owner_sample_run.js:77"}, "properties": {"repobilityId": "417416b34ae8c29e", "scanner": "scanner-primary", "fingerprint": "4ad300646a110c3f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5a09c66f2d3b1e5a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint173_release_readiness_master_gate.js:58"}, "properties": {"repobilityId": "8abeac48474790fa", "scanner": "scanner-primary", "fingerprint": "5a09c66f2d3b1e5a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f5a4efb56d165104", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint193_delete_camera_dashboard_guard.js:129"}, "properties": {"repobilityId": "4a3bbf64669180a5", "scanner": "scanner-primary", "fingerprint": "f5a4efb56d165104", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-667b8a613ea851c0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint119_inventory_po_warranty_audit.js:140"}, "properties": {"repobilityId": "ff2b0e2b078b8b29", "scanner": "scanner-primary", "fingerprint": "667b8a613ea851c0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7632f4290c932d1c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint136_data_review_workflow_audit.js:103"}, "properties": {"repobilityId": "91a52fb0f15d4350", "scanner": "scanner-primary", "fingerprint": "7632f4290c932d1c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5265ff4c54a46642", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint76_jobs_e2e_audit.js:194"}, "properties": {"repobilityId": "e197676fe6437323", "scanner": "scanner-primary", "fingerprint": "5265ff4c54a46642", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-418ef464b0ee7ed5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/pwa_smoke_cleanup_plan.js:124"}, "properties": {"repobilityId": "0f025b0de10dc586", "scanner": "scanner-primary", "fingerprint": "418ef464b0ee7ed5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c25b7406ca994d40", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint165_browser_profile_clickthrough_pack.js:37"}, "properties": {"repobilityId": "52438ceae39a2475", "scanner": "scanner-primary", "fingerprint": "c25b7406ca994d40", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a86500fafe3e544c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint83_mobile_core_workflows_audit.js:190"}, "properties": {"repobilityId": "6f63cce33042fa87", "scanner": "scanner-primary", "fingerprint": "a86500fafe3e544c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-beb38a77ca84b3de", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint108_database_schema_registry_guard.js:198"}, "properties": {"repobilityId": "ca05c57a79d26df9", "scanner": "scanner-primary", "fingerprint": "beb38a77ca84b3de", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b7e605c88f45cf2f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint170_protected_browser_acceptance_gate.js:55"}, "properties": {"repobilityId": "d83b0d170a402453", "scanner": "scanner-primary", "fingerprint": "b7e605c88f45cf2f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f87c54f504fc826b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint139_data_cleanup_triage.js:204"}, "properties": {"repobilityId": "fc07c3e22b41085e", "scanner": "scanner-primary", "fingerprint": "f87c54f504fc826b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ade9030c50d897a5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint147_dashboard_decision_layer_audit.js:44"}, "properties": {"repobilityId": "b6fcffd1cf0a4b41", "scanner": "scanner-primary", "fingerprint": "ade9030c50d897a5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d9f1d9aaae588967", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/set_gas_secret.js:69"}, "properties": {"repobilityId": "f9f6a847b4b2961f", "scanner": "scanner-primary", "fingerprint": "d9f1d9aaae588967", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-dd8008d5c7a58773", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/ci_readiness_check.js:103"}, "properties": {"repobilityId": "2ca7ba5f4c101125", "scanner": "scanner-primary", "fingerprint": "dd8008d5c7a58773", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5523c9d7184a951c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint143_permission_ops_hardening.js:69"}, "properties": {"repobilityId": "47265ed1592a274c", "scanner": "scanner-primary", "fingerprint": "5523c9d7184a951c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-dcac0ad0581916f6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint188_line_bot_reply_toggle_guard.js:63"}, "properties": {"repobilityId": "8ccd1e669821ead1", "scanner": "scanner-primary", "fingerprint": "dcac0ad0581916f6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a6024a42024a9ba4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint152_ai_vision_real_pilot_guard.js:84"}, "properties": {"repobilityId": "12c9da85c7e54f15", "scanner": "scanner-primary", "fingerprint": "a6024a42024a9ba4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4b9a50a1c5275528", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint187_line_room_intelligence_guard.js:57"}, "properties": {"repobilityId": "acd7dc5115a7cc73", "scanner": "scanner-primary", "fingerprint": "4b9a50a1c5275528", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d1579921cb1d9f22", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sprint162_owner_data_cleanup_decision.js:71"}, "properties": {"repobilityId": "107165595b090634", "scanner": "scanner-primary", "fingerprint": "d1579921cb1d9f22", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-141d6ac7e26e6161", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 pwa/offline_db.js:335"}, "properties": {"repobilityId": "b597d042fdc589f3", "scanner": "scanner-primary", "fingerprint": "141d6ac7e26e6161", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1c3f0427d833fbd8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 pwa/api_client.js:251"}, "properties": {"repobilityId": "8ea4a0e76d974fde", "scanner": "scanner-primary", "fingerprint": "1c3f0427d833fbd8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-31b859550d93afd4", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 pwa/after_sales_enhanced.js:132"}, "properties": {"repobilityId": "30be33e47710898a", "scanner": "scanner-primary", "fingerprint": "31b859550d93afd4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-7bae070f8b64d800", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 pwa/section_settings.js:14"}, "properties": {"repobilityId": "afe89c6b6646a838", "scanner": "scanner-primary", "fingerprint": "7bae070f8b64d800", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-eb46650bb5f9b35d", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 pwa/billing_slip_verify.js:63"}, "properties": {"repobilityId": "44db4f1441030fe1", "scanner": "scanner-primary", "fingerprint": "eb46650bb5f9b35d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-5384f2350aa71f34", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 pwa/section_attendance.js:8"}, "properties": {"repobilityId": "4779ca0eec0243c9", "scanner": "scanner-primary", "fingerprint": "5384f2350aa71f34", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e843b1e488fdd85f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 pwa/offline_db_v2.js:94"}, "properties": {"repobilityId": "823a748733335e76", "scanner": "scanner-primary", "fingerprint": "e843b1e488fdd85f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3a29bcaf4f3f4e41", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 pwa/language_manager.js:201"}, "properties": {"repobilityId": "c540b1cb446cb828", "scanner": "scanner-primary", "fingerprint": "3a29bcaf4f3f4e41", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-391e18a809e82595", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 pwa/section_backup.js:292"}, "properties": {"repobilityId": "13aaa5f5e7f461d1", "scanner": "scanner-primary", "fingerprint": "391e18a809e82595", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ee1ffe2113ceaeef", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 pwa/sw.js:40"}, "properties": {"repobilityId": "f88bf3415ce67360", "scanner": "scanner-primary", "fingerprint": "ee1ffe2113ceaeef", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-21f0961669351fc4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 pwa/section_warranty.js:52"}, "properties": {"repobilityId": "4a205bf69d0439e9", "scanner": "scanner-primary", "fingerprint": "21f0961669351fc4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a646f106ff861b92", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 pwa/execution_lock.js:24"}, "properties": {"repobilityId": "4a862245c35930d4", "scanner": "scanner-primary", "fingerprint": "a646f106ff861b92", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ea9d155824b8f74e", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 pwa/warranty_ui.js:495"}, "properties": {"repobilityId": "a0a8d1dccae567a6", "scanner": "scanner-primary", "fingerprint": "ea9d155824b8f74e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-836a76e77c433c2d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 pwa/pentest_frontend.js:17"}, "properties": {"repobilityId": "4f2a8567142e4ba7", "scanner": "scanner-primary", "fingerprint": "836a76e77c433c2d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-11cb22b66c782193", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 pwa/section_jobs.js:426"}, "properties": {"repobilityId": "de4210e455cf6cf2", "scanner": "scanner-primary", "fingerprint": "11cb22b66c782193", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-c1737031ae7196f8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 pwa/api_test_framework.js:17"}, "properties": {"repobilityId": "84a5b94a25045b40", "scanner": "scanner-primary", "fingerprint": "c1737031ae7196f8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d4f754ed4671f4de", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 pwa/app.js:519"}, "properties": {"repobilityId": "a351003fcf3ab260", "scanner": "scanner-primary", "fingerprint": "d4f754ed4671f4de", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-12ec9beff60adc81", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 pwa/section_inventory.js:262"}, "properties": {"repobilityId": "640aff4e10c4ca22", "scanner": "scanner-primary", "fingerprint": "12ec9beff60adc81", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-8a32a18c3b8f17d5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 pwa/telemetry_collector.js:187"}, "properties": {"repobilityId": "63f615676f682ec9", "scanner": "scanner-primary", "fingerprint": "8a32a18c3b8f17d5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7b14e98df7837414", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 pwa/push_notifications_v2.js:297"}, "properties": {"repobilityId": "d8e024c7b8243df8", "scanner": "scanner-primary", "fingerprint": "7b14e98df7837414", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-138ded7ed4e5d869", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 pwa/pwa_install.js:39"}, "properties": {"repobilityId": "440e07d945e1eb8d", "scanner": "scanner-primary", "fingerprint": "138ded7ed4e5d869", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a357de4b555d83d0", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 pwa/section_crm.js:192"}, "properties": {"repobilityId": "55de3398de7c6f21", "scanner": "scanner-primary", "fingerprint": "a357de4b555d83d0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-a81ebeb90f14ce21", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 pwa/billing_section.js:185"}, "properties": {"repobilityId": "7619df447c1837fa", "scanner": "scanner-primary", "fingerprint": "a81ebeb90f14ce21", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-ce816df040785b48", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 pwa/policy_engine.js:153"}, "properties": {"repobilityId": "1703390d3b7fa8e9", "scanner": "scanner-primary", "fingerprint": "ce816df040785b48", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8a3f08077b5ec602", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 pwa/ai_executor_runtime.js:125"}, "properties": {"repobilityId": "51e78c50213e14eb", "scanner": "scanner-primary", "fingerprint": "8a3f08077b5ec602", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d0ff668b6a8f84c8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 pwa/approval_guard.js:18"}, "properties": {"repobilityId": "3902e93866b841a3", "scanner": "scanner-primary", "fingerprint": "d0ff668b6a8f84c8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6dc94bfa66871f58", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 pwa/evidence_harness.js:19"}, "properties": {"repobilityId": "a05ddeb2156b7a79", "scanner": "scanner-primary", "fingerprint": "6dc94bfa66871f58", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-584288c297f07802", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 pwa/dashboard_pc_test.js:4"}, "properties": {"repobilityId": "85203c7ed2b743f1", "scanner": "scanner-primary", "fingerprint": "584288c297f07802", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5b2be6b7e24bc619", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 pwa/search.js:197"}, "properties": {"repobilityId": "1bbc81cabe4d5c6e", "scanner": "scanner-primary", "fingerprint": "5b2be6b7e24bc619", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-dd1b3360b8e117bd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 pwa/mobile_shared.js:2"}, "properties": {"repobilityId": "7cde1381a132a1f2", "scanner": "scanner-primary", "fingerprint": "dd1b3360b8e117bd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8274718007a611d2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 pwa/section_analytics.js:8"}, "properties": {"repobilityId": "6516dd147f6b5503", "scanner": "scanner-primary", "fingerprint": "8274718007a611d2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-14ce6e6aeda734c3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 pwa/section_performance.js:294"}, "properties": {"repobilityId": "3f10b0dfef145ae7", "scanner": "scanner-primary", "fingerprint": "14ce6e6aeda734c3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9ed01b3aa5e0e1d5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 pwa/auth.js:403"}, "properties": {"repobilityId": "e809fb2457e5f7ba", "scanner": "scanner-primary", "fingerprint": "9ed01b3aa5e0e1d5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a45d75e5c0fdd0f2", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 pwa/pos.js:182"}, "properties": {"repobilityId": "bee55ad675638968", "scanner": "scanner-primary", "fingerprint": "a45d75e5c0fdd0f2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-01487b07932be3fb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 pwa/dashboard_pc_core.js:216"}, "properties": {"repobilityId": "ef95fc8ad34accf1", "scanner": "scanner-primary", "fingerprint": "01487b07932be3fb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5d14e7eff7cb48f1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 pwa/section_reports.js:36"}, "properties": {"repobilityId": "bf0bbdbb503029d9", "scanner": "scanner-primary", "fingerprint": "5d14e7eff7cb48f1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-414c1bb41eaa3782", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 pwa/js/system_graph_data.js:3"}, "properties": {"repobilityId": "cbd6d321bfcfbe72", "scanner": "scanner-primary", "fingerprint": "414c1bb41eaa3782", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-862c3fdbc5869099", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 pwa/js/system_graph_data.js:17"}, "properties": {"repobilityId": "eb0c36dcb8a1af1d", "scanner": "scanner-primary", "fingerprint": "862c3fdbc5869099", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4f2d59341a8e99e0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 pwa/_backup_phase3/section_attendance.js:8"}, "properties": {"repobilityId": "be01bf0df697613d", "scanner": "scanner-primary", "fingerprint": "4f2d59341a8e99e0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-99b8dc2e916d98be", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 pwa/_backup_phase3/section_warranty.js:8"}, "properties": {"repobilityId": "f2c7d55c5189c8ba", "scanner": "scanner-primary", "fingerprint": "99b8dc2e916d98be", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6862d17744947c28", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 pwa/_backup_phase3/section_analytics.js:8"}, "properties": {"repobilityId": "0cc622cbf76bdcb6", "scanner": "scanner-primary", "fingerprint": "6862d17744947c28", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2b6877fb27f75521", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 delivery/pwa/after_sales_enhanced.js:132"}, "properties": {"repobilityId": "371b81b5a98daee3", "scanner": "scanner-primary", "fingerprint": "2b6877fb27f75521", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-27f9def8a8680c88", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 delivery/pwa/billing_slip_verify.js:63"}, "properties": {"repobilityId": "5d48f72987e81f6f", "scanner": "scanner-primary", "fingerprint": "27f9def8a8680c88", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-c13bfc8026bebd24", "level": "warning", "message": {"text": "Privileged port 800 in use"}, "properties": {"repobilityId": "44d4dae1c94a9aca", "scanner": "scanner-primary", "fingerprint": "c13bfc8026bebd24", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/guard-stewardship.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dfa7edb044676b9f", "level": "warning", "message": {"text": "Privileged port 15 in use"}, "properties": {"repobilityId": "3340f9a170f285cd", "scanner": "scanner-primary", "fingerprint": "dfa7edb044676b9f", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/guard-stewardship.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0a6c2507388dde80", "level": "warning", "message": {"text": "Privileged port 50 in use"}, "properties": {"repobilityId": "da61f654c07ea7a9", "scanner": "scanner-primary", "fingerprint": "0a6c2507388dde80", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/guard-stewardship.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ff74d777fe5489db", "level": "warning", "message": {"text": "Privileged port 1000 in use"}, "properties": {"repobilityId": "5ac9fc9372cfe169", "scanner": "scanner-primary", "fingerprint": "ff74d777fe5489db", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/guard-stewardship.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0549187614663f10", "level": "warning", "message": {"text": "Privileged port 40 in use"}, "properties": {"repobilityId": "28c59d470d4929c6", "scanner": "scanner-primary", "fingerprint": "0549187614663f10", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/guard-stewardship.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a559382f840dfad6", "level": "warning", "message": {"text": "Privileged port 600 in use"}, "properties": {"repobilityId": "bf14615725bcff0a", "scanner": "scanner-primary", "fingerprint": "a559382f840dfad6", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/guard-stewardship.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b78ac6a28cc8de8b", "level": "warning", "message": {"text": "Privileged port 20 in use"}, "properties": {"repobilityId": "a59f3e53d617e0f8", "scanner": "scanner-primary", "fingerprint": "b78ac6a28cc8de8b", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/guard-stewardship.sh"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7ea9b8122372933d", "level": "warning", "message": {"text": "Privileged port 23 in use"}, "properties": {"repobilityId": "a1230e3dfc4becfa", "scanner": "scanner-primary", "fingerprint": "7ea9b8122372933d", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/session-backup.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2f3e865f3a6ecd66", "level": "warning", "message": {"text": "Privileged port 16 in use"}, "properties": {"repobilityId": "d31009168c502ace", "scanner": "scanner-primary", "fingerprint": "2f3e865f3a6ecd66", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/session-backup.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8107f6c3f8942e85", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in JS_Part1.html:108"}, "properties": {"repobilityId": "99be96360aa521df", "scanner": "scanner-primary", "fingerprint": "8107f6c3f8942e85", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "JS_Part1.html"}, "region": {"startLine": 108}}}]}, {"ruleId": "scanner-9ce4f9686a34f01b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in dashboard_preview.html:1041"}, "properties": {"repobilityId": "bd203f7cba672dbd", "scanner": "scanner-primary", "fingerprint": "9ce4f9686a34f01b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dashboard_preview.html"}, "region": {"startLine": 1041}}}]}, {"ruleId": "scanner-a31bb05fd3b6cc40", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in PhotoGallery.html:190"}, "properties": {"repobilityId": "e798b87a86bc0064", "scanner": "scanner-primary", "fingerprint": "a31bb05fd3b6cc40", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "PhotoGallery.html"}, "region": {"startLine": 190}}}]}, {"ruleId": "scanner-56ccbf2a46aaa56a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in JobQRView.html:266"}, "properties": {"repobilityId": "8f40ed5b6cfd6d7e", "scanner": "scanner-primary", "fingerprint": "56ccbf2a46aaa56a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "JobQRView.html"}, "region": {"startLine": 266}}}]}, {"ruleId": "scanner-13be3234ef13ff38", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in JS_Part2.html:181"}, "properties": {"repobilityId": "4bda9a93e929f7e1", "scanner": "scanner-primary", "fingerprint": "13be3234ef13ff38", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "JS_Part2.html"}, "region": {"startLine": 181}}}]}, {"ruleId": "scanner-780a131530f130bc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in JS_Dashboard.html:76"}, "properties": {"repobilityId": "fffd6980b8c163cf", "scanner": "scanner-primary", "fingerprint": "780a131530f130bc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "JS_Dashboard.html"}, "region": {"startLine": 76}}}]}, {"ruleId": "scanner-14c86bd33edc57b3", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/sprint174_strict_protected_browser_runbook.js:13"}, "properties": {"repobilityId": "be17ff4365ddba40", "scanner": "scanner-primary", "fingerprint": "14c86bd33edc57b3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/sprint174_strict_protected_browser_runbook.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-badeb388f596cd24", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/sprint166_protected_token_full_sweep_pack.js:10"}, "properties": {"repobilityId": "621a3212e3dd4054", "scanner": "scanner-primary", "fingerprint": "badeb388f596cd24", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/sprint166_protected_token_full_sweep_pack.js"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-fb786f85c82fe921", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/sprint172_line_room_notification_matrix_gate.js:12"}, "properties": {"repobilityId": "4d11838b91048214", "scanner": "scanner-primary", "fingerprint": "fb786f85c82fe921", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/sprint172_line_room_notification_matrix_gate.js"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-42c72ae8a41b496b", "level": "error", "message": {"text": "Insecure pattern 'subprocess_shell_true' in scripts/unified_deploy.py:21"}, "properties": {"repobilityId": "445cbc03ffebf556", "scanner": "scanner-primary", "fingerprint": "42c72ae8a41b496b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/unified_deploy.py"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-8b93e4ba47598a0b", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/sprint164_pages_publish_lock.js:15"}, "properties": {"repobilityId": "30e840f98370ceec", "scanner": "scanner-primary", "fingerprint": "8b93e4ba47598a0b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/sprint164_pages_publish_lock.js"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-53bcf41d90f79291", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in scripts/sprint191_ai_vision_inbox_render_smoke.js:22"}, "properties": {"repobilityId": "2457a1a7ae94c8b3", "scanner": "scanner-primary", "fingerprint": "53bcf41d90f79291", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/sprint191_ai_vision_inbox_render_smoke.js"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-57bcb9db8a18701a", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/sprint178_strict_live_acceptance_gate.js:16"}, "properties": {"repobilityId": "f4cc6a3e8bd76cb8", "scanner": "scanner-primary", "fingerprint": "57bcb9db8a18701a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/sprint178_strict_live_acceptance_gate.js"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-867e704678b99c32", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in scripts/sprint104_protected_browser_journey.js:158"}, "properties": {"repobilityId": "8db9d57453f38c9f", "scanner": "scanner-primary", "fingerprint": "867e704678b99c32", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/sprint104_protected_browser_journey.js"}, "region": {"startLine": 158}}}]}, {"ruleId": "scanner-e507fcfa3fda8b8c", "level": "error", "message": {"text": "Insecure pattern 'subprocess_shell_true' in scripts/check_sync.py:168"}, "properties": {"repobilityId": "8593c94b6bd3dbab", "scanner": "scanner-primary", "fingerprint": "e507fcfa3fda8b8c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/check_sync.py"}, "region": {"startLine": 168}}}]}, {"ruleId": "scanner-57850b2e475b824a", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/sprint176_published_protected_acceptance.js:13"}, "properties": {"repobilityId": "3e1a553d67c16da1", "scanner": "scanner-primary", "fingerprint": "57850b2e475b824a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/sprint176_published_protected_acceptance.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-e8bfe79e615d50d2", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/sprint169_pages_fresh_release_gate.js:12"}, "properties": {"repobilityId": "c0d87dc1b4eedd47", "scanner": "scanner-primary", "fingerprint": "e8bfe79e615d50d2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/sprint169_pages_fresh_release_gate.js"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-a22eb56513fb402d", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/sprint167_owner_cleanup_execution_readiness.js:10"}, "properties": {"repobilityId": "70d8e1e55daa2039", "scanner": "scanner-primary", "fingerprint": "a22eb56513fb402d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/sprint167_owner_cleanup_execution_readiness.js"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-6902da91b6efb7da", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/sprint180_strict_protected_live_proof.js:16"}, "properties": {"repobilityId": "d19e0bcf5a994406", "scanner": "scanner-primary", "fingerprint": "6902da91b6efb7da", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/sprint180_strict_protected_live_proof.js"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-be5f95a9c19dda16", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in scripts/sprint102_live_ux_menu_audit.js:139"}, "properties": {"repobilityId": "2723267c083e6464", "scanner": "scanner-primary", "fingerprint": "be5f95a9c19dda16", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/sprint102_live_ux_menu_audit.js"}, "region": {"startLine": 139}}}]}, {"ruleId": "scanner-99f026f6c653ebf0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in scripts/sprint103_visual_runtime_walkthrough.js:144"}, "properties": {"repobilityId": "e8834c63b58d5398", "scanner": "scanner-primary", "fingerprint": "99f026f6c653ebf0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/sprint103_visual_runtime_walkthrough.js"}, "region": {"startLine": 144}}}]}, {"ruleId": "scanner-00295d6acb14e251", "level": "error", "message": {"text": "Insecure pattern 'subprocess_shell_true' in scripts/clasp_push.py:32"}, "properties": {"repobilityId": "8eba24173a560a45", "scanner": "scanner-primary", "fingerprint": "00295d6acb14e251", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/clasp_push.py"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-74f64c14d26e106c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/sprint173_release_readiness_master_gate.js:13"}, "properties": {"repobilityId": "c0ee56e764d97d73", "scanner": "scanner-primary", "fingerprint": "74f64c14d26e106c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/sprint173_release_readiness_master_gate.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-330ec0076314c4a8", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/sprint165_browser_profile_clickthrough_pack.js:14"}, "properties": {"repobilityId": "9e477ab6655f8716", "scanner": "scanner-primary", "fingerprint": "330ec0076314c4a8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/sprint165_browser_profile_clickthrough_pack.js"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-56cc33b2dd19cc98", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/sprint170_protected_browser_acceptance_gate.js:13"}, "properties": {"repobilityId": "061d8f5770a07932", "scanner": "scanner-primary", "fingerprint": "56cc33b2dd19cc98", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/sprint170_protected_browser_acceptance_gate.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-c4d9d9e22826e6f9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/app_home.js:9"}, "properties": {"repobilityId": "7a248aae4e60f5f4", "scanner": "scanner-primary", "fingerprint": "c4d9d9e22826e6f9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/app_home.js"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-0fb225498072e207", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_po.js:3"}, "properties": {"repobilityId": "76de6335be22c208", "scanner": "scanner-primary", "fingerprint": "0fb225498072e207", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/section_po.js"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-1f9497ea7e920183", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/reports.js:7"}, "properties": {"repobilityId": "09514c1ed443ca6c", "scanner": "scanner-primary", "fingerprint": "1f9497ea7e920183", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/reports.js"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-bdfa4d44a59feebc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/api_client.js:303"}, "properties": {"repobilityId": "62f9290c245edf3b", "scanner": "scanner-primary", "fingerprint": "bdfa4d44a59feebc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/api_client.js"}, "region": {"startLine": 303}}}]}, {"ruleId": "scanner-cd8712aaa5789113", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/after_sales_enhanced.js:16"}, "properties": {"repobilityId": "6876a963a22e75a8", "scanner": "scanner-primary", "fingerprint": "cd8712aaa5789113", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/after_sales_enhanced.js"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-53c7c4d36ab6f707", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/billing_customer.js:51"}, "properties": {"repobilityId": "ddb0084c357ac1e3", "scanner": "scanner-primary", "fingerprint": "53c7c4d36ab6f707", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/billing_customer.js"}, "region": {"startLine": 51}}}]}, {"ruleId": "scanner-526fe20f91b0e916", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/system_graph.html:538"}, "properties": {"repobilityId": "5a6cbdaa4b058042", "scanner": "scanner-primary", "fingerprint": "526fe20f91b0e916", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/system_graph.html"}, "region": {"startLine": 538}}}]}, {"ruleId": "scanner-96dd94b6fafcadc2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_settings.js:29"}, "properties": {"repobilityId": "e2c0234fb0e5850d", "scanner": "scanner-primary", "fingerprint": "96dd94b6fafcadc2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/section_settings.js"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-97bb9f8fb1958157", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in pwa/section_settings.js:19"}, "properties": {"repobilityId": "81ee86393bba1913", "scanner": "scanner-primary", "fingerprint": "97bb9f8fb1958157", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/section_settings.js"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-d0ce1f9723f599f7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_line_center.js:169"}, "properties": {"repobilityId": "7ae4e3aba974b072", "scanner": "scanner-primary", "fingerprint": "d0ce1f9723f599f7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/section_line_center.js"}, "region": {"startLine": 169}}}]}, {"ruleId": "scanner-f97d925e6bc9c7da", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/crm_attendance.js:24"}, "properties": {"repobilityId": "997d5ad54c740833", "scanner": "scanner-primary", "fingerprint": "f97d925e6bc9c7da", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/crm_attendance.js"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-d378a9d40c017b76", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/billing_slip_verify.js:31"}, "properties": {"repobilityId": "53023f51449d34fc", "scanner": "scanner-primary", "fingerprint": "d378a9d40c017b76", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/billing_slip_verify.js"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-bdc50600827934be", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/customer_portal.js:32"}, "properties": {"repobilityId": "4afe06c4b3a0c987", "scanner": "scanner-primary", "fingerprint": "bdc50600827934be", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/customer_portal.js"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-113c7a775a6a9c9d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/app_jobs.js:51"}, "properties": {"repobilityId": "4b211f647ee1c37b", "scanner": "scanner-primary", "fingerprint": "113c7a775a6a9c9d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/app_jobs.js"}, "region": {"startLine": 51}}}]}, {"ruleId": "scanner-10e068ffb79fe5b0", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in pwa/app_jobs.js:306"}, "properties": {"repobilityId": "2dfd9d822a0165df", "scanner": "scanner-primary", "fingerprint": "10e068ffb79fe5b0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/app_jobs.js"}, "region": {"startLine": 306}}}]}, {"ruleId": "scanner-17bee5a93683644d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/advanced_reports.js:28"}, "properties": {"repobilityId": "24b6b81f3a01ec8c", "scanner": "scanner-primary", "fingerprint": "17bee5a93683644d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/advanced_reports.js"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-3aef8a0950c976e1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/language_manager.js:392"}, "properties": {"repobilityId": "ed9cbe8340712101", "scanner": "scanner-primary", "fingerprint": "3aef8a0950c976e1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/language_manager.js"}, "region": {"startLine": 392}}}]}, {"ruleId": "scanner-3732a63ca3c3cb92", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/demo_dashboard.html:1173"}, "properties": {"repobilityId": "1766303c11c861e8", "scanner": "scanner-primary", "fingerprint": "3732a63ca3c3cb92", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/demo_dashboard.html"}, "region": {"startLine": 1173}}}]}, {"ruleId": "scanner-51dadd04a2a90a9c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_backup.js:17"}, "properties": {"repobilityId": "0313a0569dc20cd8", "scanner": "scanner-primary", "fingerprint": "51dadd04a2a90a9c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/section_backup.js"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-134fbcdaa9cce787", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/app_actions.js:71"}, "properties": {"repobilityId": "8ff22849b84edab0", "scanner": "scanner-primary", "fingerprint": "134fbcdaa9cce787", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/app_actions.js"}, "region": {"startLine": 71}}}]}, {"ruleId": "scanner-e9b4072645881b74", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_warranty.js:42"}, "properties": {"repobilityId": "134cd55410747d80", "scanner": "scanner-primary", "fingerprint": "e9b4072645881b74", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/section_warranty.js"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-5f1b9b70e57a0121", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/warranty_section.js:16"}, "properties": {"repobilityId": "f6c4b710eaadf68a", "scanner": "scanner-primary", "fingerprint": "5f1b9b70e57a0121", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/warranty_section.js"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-cb273889c4357c40", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in pwa/warranty_section.js:291"}, "properties": {"repobilityId": "19309b956becba0f", "scanner": "scanner-primary", "fingerprint": "cb273889c4357c40", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/warranty_section.js"}, "region": {"startLine": 291}}}]}, {"ruleId": "scanner-21063e9e9785edd6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/tax_ui.js:172"}, "properties": {"repobilityId": "9eebd624e9ca1b6e", "scanner": "scanner-primary", "fingerprint": "21063e9e9785edd6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/tax_ui.js"}, "region": {"startLine": 172}}}]}, {"ruleId": "scanner-3c4b26da3ccbde2c", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in pwa/tax_ui.js:95"}, "properties": {"repobilityId": "e82a692f1f813264", "scanner": "scanner-primary", "fingerprint": "3c4b26da3ccbde2c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/tax_ui.js"}, "region": {"startLine": 95}}}]}, {"ruleId": "scanner-9046b50c68743c84", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/monitoring_dashboard.html:774"}, "properties": {"repobilityId": "1cb3fa4c6d129720", "scanner": "scanner-primary", "fingerprint": "9046b50c68743c84", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/monitoring_dashboard.html"}, "region": {"startLine": 774}}}]}, {"ruleId": "scanner-7dcd3452e387fd01", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in pwa/execution_lock.js:284"}, "properties": {"repobilityId": "5ab4d9b6195b96da", "scanner": "scanner-primary", "fingerprint": "7dcd3452e387fd01", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/execution_lock.js"}, "region": {"startLine": 284}}}]}, {"ruleId": "scanner-4e8af53d82f2f6cc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/warranty_ui.js:49"}, "properties": {"repobilityId": "df7047087e98f633", "scanner": "scanner-primary", "fingerprint": "4e8af53d82f2f6cc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/warranty_ui.js"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-958038a4cb57211f", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in pwa/warranty_ui.js:228"}, "properties": {"repobilityId": "a388058060f76e25", "scanner": "scanner-primary", "fingerprint": "958038a4cb57211f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/warranty_ui.js"}, "region": {"startLine": 228}}}]}, {"ruleId": "scanner-7451945e71b03420", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in pwa/pentest_frontend.js:217"}, "properties": {"repobilityId": "79c185642c564a3c", "scanner": "scanner-primary", "fingerprint": "7451945e71b03420", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/pentest_frontend.js"}, "region": {"startLine": 217}}}]}, {"ruleId": "scanner-2af2d4b81da9785d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/inventory_ui.js:232"}, "properties": {"repobilityId": "bae4aa955e21eb73", "scanner": "scanner-primary", "fingerprint": "2af2d4b81da9785d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/inventory_ui.js"}, "region": {"startLine": 232}}}]}, {"ruleId": "scanner-9f6bbdeb0ae04575", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_jobs.js:164"}, "properties": {"repobilityId": "4f19a9f111836161", "scanner": "scanner-primary", "fingerprint": "9f6bbdeb0ae04575", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/section_jobs.js"}, "region": {"startLine": 164}}}]}, {"ruleId": "scanner-f6be50935f89c214", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in pwa/section_jobs.js:101"}, "properties": {"repobilityId": "e0fa01d6b1d19668", "scanner": "scanner-primary", "fingerprint": "f6be50935f89c214", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/section_jobs.js"}, "region": {"startLine": 101}}}]}, {"ruleId": "scanner-3014972e2473f85f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/app.js:652"}, "properties": {"repobilityId": "5295da9b247dd6e1", "scanner": "scanner-primary", "fingerprint": "3014972e2473f85f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/app.js"}, "region": {"startLine": 652}}}]}, {"ruleId": "scanner-6a9c708058b3f6b2", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in pwa/app.js:779"}, "properties": {"repobilityId": "f6ca5cb3f9188e39", "scanner": "scanner-primary", "fingerprint": "6a9c708058b3f6b2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/app.js"}, "region": {"startLine": 779}}}]}, {"ruleId": "scanner-09c8294f9063ff1d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_inventory.js:19"}, "properties": {"repobilityId": "7b52252741f14b85", "scanner": "scanner-primary", "fingerprint": "09c8294f9063ff1d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/section_inventory.js"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-24577b533390a0f5", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in pwa/section_inventory.js:301"}, "properties": {"repobilityId": "c7a1215064909099", "scanner": "scanner-primary", "fingerprint": "24577b533390a0f5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/section_inventory.js"}, "region": {"startLine": 301}}}]}, {"ruleId": "scanner-2cce479e8251c273", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/analytics.js:55"}, "properties": {"repobilityId": "87012b064f6c92ef", "scanner": "scanner-primary", "fingerprint": "2cce479e8251c273", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/analytics.js"}, "region": {"startLine": 55}}}]}, {"ruleId": "scanner-4030135ba1bb7650", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/crm_ui.js:59"}, "properties": {"repobilityId": "484e5741cdd49ccc", "scanner": "scanner-primary", "fingerprint": "4030135ba1bb7650", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/crm_ui.js"}, "region": {"startLine": 59}}}]}, {"ruleId": "scanner-d0159697c883583c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/auth_guard.js:327"}, "properties": {"repobilityId": "2fe9aab23f19f3bb", "scanner": "scanner-primary", "fingerprint": "d0159697c883583c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/auth_guard.js"}, "region": {"startLine": 327}}}]}, {"ruleId": "scanner-4105cd1b688ed85e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/dashboard.js:13"}, "properties": {"repobilityId": "c37c73e5a17ab17e", "scanner": "scanner-primary", "fingerprint": "4105cd1b688ed85e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/dashboard.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-734f6e6100dceeb2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/customer_portal.html:252"}, "properties": {"repobilityId": "6aa3a34076852cd7", "scanner": "scanner-primary", "fingerprint": "734f6e6100dceeb2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/customer_portal.html"}, "region": {"startLine": 252}}}]}, {"ruleId": "scanner-dcdc837299cdc8d8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/notification_center.js:47"}, "properties": {"repobilityId": "5b52ef49942186b7", "scanner": "scanner-primary", "fingerprint": "dcdc837299cdc8d8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/notification_center.js"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-f3b37b5c5f7a9f0a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/push_notifications_v2.js:369"}, "properties": {"repobilityId": "9e9e4bec7b01f51a", "scanner": "scanner-primary", "fingerprint": "f3b37b5c5f7a9f0a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/push_notifications_v2.js"}, "region": {"startLine": 369}}}]}, {"ruleId": "scanner-363476632c79a514", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/pwa_install.js:193"}, "properties": {"repobilityId": "01f155168c995f02", "scanner": "scanner-primary", "fingerprint": "363476632c79a514", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/pwa_install.js"}, "region": {"startLine": 193}}}]}, {"ruleId": "scanner-bb2d8ff383ed6b4d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/push_notifications.js:148"}, "properties": {"repobilityId": "947c82a5fa523f6d", "scanner": "scanner-primary", "fingerprint": "bb2d8ff383ed6b4d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/push_notifications.js"}, "region": {"startLine": 148}}}]}, {"ruleId": "scanner-bb23f5c60d5feaea", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_crm.js:8"}, "properties": {"repobilityId": "2883643bd7387f18", "scanner": "scanner-primary", "fingerprint": "bb23f5c60d5feaea", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/section_crm.js"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-1cf514b141038359", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in pwa/section_crm.js:223"}, "properties": {"repobilityId": "e667a14fe2b29a44", "scanner": "scanner-primary", "fingerprint": "1cf514b141038359", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/section_crm.js"}, "region": {"startLine": 223}}}]}, {"ruleId": "scanner-9ff66d985dff9f4b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/job_workflow.js:54"}, "properties": {"repobilityId": "cac6e4f30e4fd551", "scanner": "scanner-primary", "fingerprint": "9ff66d985dff9f4b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/job_workflow.js"}, "region": {"startLine": 54}}}]}, {"ruleId": "scanner-a409451aa8f3ba5e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/billing_section.js:51"}, "properties": {"repobilityId": "e49c9c5f90cf988f", "scanner": "scanner-primary", "fingerprint": "a409451aa8f3ba5e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/billing_section.js"}, "region": {"startLine": 51}}}]}, {"ruleId": "scanner-4c09eae30c1671bf", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/photo_upload_section.js:18"}, "properties": {"repobilityId": "32b61e58fe002190", "scanner": "scanner-primary", "fingerprint": "4c09eae30c1671bf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/photo_upload_section.js"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-e1bbadef63c735b7", "level": "note", "message": {"text": "Insecure pattern 'document_write' in pwa/business_ai.js:368"}, "properties": {"repobilityId": "84d5349b062db639", "scanner": "scanner-primary", "fingerprint": "e1bbadef63c735b7", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/business_ai.js"}, "region": {"startLine": 368}}}]}, {"ruleId": "scanner-4d8bfe1a62c80027", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/business_ai.js:114"}, "properties": {"repobilityId": "d65bfe5d83a107ff", "scanner": "scanner-primary", "fingerprint": "4d8bfe1a62c80027", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/business_ai.js"}, "region": {"startLine": 114}}}]}, {"ruleId": "scanner-cf4abce9249c5925", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/stock.js:14"}, "properties": {"repobilityId": "0ee4fcd35ae70ee4", "scanner": "scanner-primary", "fingerprint": "cf4abce9249c5925", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/stock.js"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-a46724240aefdf71", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/quick_actions.js:51"}, "properties": {"repobilityId": "8fb6702a8575d106", "scanner": "scanner-primary", "fingerprint": "a46724240aefdf71", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/quick_actions.js"}, "region": {"startLine": 51}}}]}, {"ruleId": "scanner-80f1ab3ec2b2ec27", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/attendance_ui.js:44"}, "properties": {"repobilityId": "969b4921a53aa893", "scanner": "scanner-primary", "fingerprint": "80f1ab3ec2b2ec27", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/attendance_ui.js"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-49c7d44700fcb620", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_billing.js:17"}, "properties": {"repobilityId": "8a551449a613985c", "scanner": "scanner-primary", "fingerprint": "49c7d44700fcb620", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/section_billing.js"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-0658552886e89179", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/ai_executor_runtime.js:179"}, "properties": {"repobilityId": "26b4fc39f1865bcc", "scanner": "scanner-primary", "fingerprint": "0658552886e89179", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/ai_executor_runtime.js"}, "region": {"startLine": 179}}}]}, {"ruleId": "scanner-bd810e887328d5de", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/analytics_section.js:18"}, "properties": {"repobilityId": "c8034480291403fe", "scanner": "scanner-primary", "fingerprint": "bd810e887328d5de", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/analytics_section.js"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-e44828c5ae804293", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/approval_guard.js:391"}, "properties": {"repobilityId": "8e1921ed15dd4093", "scanner": "scanner-primary", "fingerprint": "e44828c5ae804293", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/approval_guard.js"}, "region": {"startLine": 391}}}]}, {"ruleId": "scanner-d078f8c90f515d63", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/branch_health_ui.js:104"}, "properties": {"repobilityId": "8d944655d7477ced", "scanner": "scanner-primary", "fingerprint": "d078f8c90f515d63", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/branch_health_ui.js"}, "region": {"startLine": 104}}}]}, {"ruleId": "scanner-6d2dd574bf746736", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in pwa/branch_health_ui.js:62"}, "properties": {"repobilityId": "847b9e6b8df6f96d", "scanner": "scanner-primary", "fingerprint": "6d2dd574bf746736", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/branch_health_ui.js"}, "region": {"startLine": 62}}}]}, {"ruleId": "scanner-4cb4baa2112ba7f3", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in pwa/dashboard_pc.html:19"}, "properties": {"repobilityId": "036e75f177c619dd", "scanner": "scanner-primary", "fingerprint": "4cb4baa2112ba7f3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/dashboard_pc.html"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-0c6d98f2b667d9fc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_vision.js:437"}, "properties": {"repobilityId": "9c6c3da1865d1a92", "scanner": "scanner-primary", "fingerprint": "0c6d98f2b667d9fc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/section_vision.js"}, "region": {"startLine": 437}}}]}, {"ruleId": "scanner-b44204cc144316c4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/attendance_section.js:7"}, "properties": {"repobilityId": "ed84087b8ab436a2", "scanner": "scanner-primary", "fingerprint": "b44204cc144316c4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/attendance_section.js"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-f8addb0941f0d57b", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in pwa/dashboard_pc_test.js:29"}, "properties": {"repobilityId": "43f987a44c7c0c4e", "scanner": "scanner-primary", "fingerprint": "f8addb0941f0d57b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/dashboard_pc_test.js"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-df5e634ee0d377e7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/search.js:90"}, "properties": {"repobilityId": "681c5feaea8bc394", "scanner": "scanner-primary", "fingerprint": "df5e634ee0d377e7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/search.js"}, "region": {"startLine": 90}}}]}, {"ruleId": "scanner-43c4863a4352d043", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/executive_dashboard.html:731"}, "properties": {"repobilityId": "cf0d188365fc52cc", "scanner": "scanner-primary", "fingerprint": "43c4863a4352d043", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/executive_dashboard.html"}, "region": {"startLine": 731}}}]}, {"ruleId": "scanner-8da6a4f50d9191c7", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in pwa/executive_dashboard.html:567"}, "properties": {"repobilityId": "5c1aa297be50ca48", "scanner": "scanner-primary", "fingerprint": "8da6a4f50d9191c7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/executive_dashboard.html"}, "region": {"startLine": 567}}}]}, {"ruleId": "scanner-81b6f1d3294a8cc5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_tax.js:103"}, "properties": {"repobilityId": "f64d0b2c872c9e4b", "scanner": "scanner-primary", "fingerprint": "81b6f1d3294a8cc5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/section_tax.js"}, "region": {"startLine": 103}}}]}, {"ruleId": "scanner-57651f7bea48ab70", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in pwa/section_tax.js:61"}, "properties": {"repobilityId": "fdd3e2a5e7cd1253", "scanner": "scanner-primary", "fingerprint": "57651f7bea48ab70", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/section_tax.js"}, "region": {"startLine": 61}}}]}, {"ruleId": "scanner-f2c5113150a14eed", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/customer_portal_section.js:19"}, "properties": {"repobilityId": "955d7c63bda4cec9", "scanner": "scanner-primary", "fingerprint": "f2c5113150a14eed", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/customer_portal_section.js"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-540f60d945f518ef", "level": "note", "message": {"text": "Insecure pattern 'document_write' in pwa/purchase_order.js:641"}, "properties": {"repobilityId": "36ca83905e5543d9", "scanner": "scanner-primary", "fingerprint": "540f60d945f518ef", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/purchase_order.js"}, "region": {"startLine": 641}}}]}, {"ruleId": "scanner-424f6207ce28e1cc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/purchase_order.js:37"}, "properties": {"repobilityId": "95edc7adee36d043", "scanner": "scanner-primary", "fingerprint": "424f6207ce28e1cc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/purchase_order.js"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-35ef2ef0538ee1dd", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in pwa/dashboard_pc_clean.html:19"}, "properties": {"repobilityId": "f1f47bb1eaf1b25d", "scanner": "scanner-primary", "fingerprint": "35ef2ef0538ee1dd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/dashboard_pc_clean.html"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-4f4c8c34e68e2517", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_analytics.js:13"}, "properties": {"repobilityId": "45b927620d72e90b", "scanner": "scanner-primary", "fingerprint": "4f4c8c34e68e2517", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/section_analytics.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-b6852e0ec1b0bb10", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_performance.js:23"}, "properties": {"repobilityId": "22a2c8eb9380569d", "scanner": "scanner-primary", "fingerprint": "b6852e0ec1b0bb10", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/section_performance.js"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-fd1c6fffd59c3961", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/menu_health.js:18"}, "properties": {"repobilityId": "3c2ad0c80cd63af1", "scanner": "scanner-primary", "fingerprint": "fd1c6fffd59c3961", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/menu_health.js"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-6ae4d99aa21e3176", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/auth.js:127"}, "properties": {"repobilityId": "04ceaae689d87728", "scanner": "scanner-primary", "fingerprint": "6ae4d99aa21e3176", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/auth.js"}, "region": {"startLine": 127}}}]}, {"ruleId": "scanner-2de79b0723e79181", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/admin.js:23"}, "properties": {"repobilityId": "6a5592e29e069687", "scanner": "scanner-primary", "fingerprint": "2de79b0723e79181", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/admin.js"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-378a76c77155456e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/pos.js:35"}, "properties": {"repobilityId": "0618aa4cd71fd15f", "scanner": "scanner-primary", "fingerprint": "378a76c77155456e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/pos.js"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-cfce6ba1196b19bf", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/section_revenue.js:45"}, "properties": {"repobilityId": "19cebd18876d170c", "scanner": "scanner-primary", "fingerprint": "cfce6ba1196b19bf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/section_revenue.js"}, "region": {"startLine": 45}}}]}, {"ruleId": "scanner-00e78893ea04a19f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/dashboard_pc_core.js:103"}, "properties": {"repobilityId": "01d4a7e46df51787", "scanner": "scanner-primary", "fingerprint": "00e78893ea04a19f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/dashboard_pc_core.js"}, "region": {"startLine": 103}}}]}, {"ruleId": "scanner-cb7917c78a4f0288", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/runtime_self_test.js:235"}, "properties": {"repobilityId": "42ff00d3062e32dd", "scanner": "scanner-primary", "fingerprint": "cb7917c78a4f0288", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/runtime_self_test.js"}, "region": {"startLine": 235}}}]}, {"ruleId": "scanner-9570f419b973f859", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in pwa/runtime_self_test.js:339"}, "properties": {"repobilityId": "7a0f0fd48197ffbe", "scanner": "scanner-primary", "fingerprint": "9570f419b973f859", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/runtime_self_test.js"}, "region": {"startLine": 339}}}]}, {"ruleId": "scanner-0076023008618d8c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/admin_panel.js:41"}, "properties": {"repobilityId": "a11f6c28f8c48322", "scanner": "scanner-primary", "fingerprint": "0076023008618d8c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/admin_panel.js"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-5eb453082a26f5e6", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in pwa/admin_panel.js:426"}, "properties": {"repobilityId": "b87c5e1ab397612f", "scanner": "scanner-primary", "fingerprint": "5eb453082a26f5e6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/admin_panel.js"}, "region": {"startLine": 426}}}]}, {"ruleId": "scanner-3bd47a6fc4dc66f7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/_backup_phase3/warranty_section.js:16"}, "properties": {"repobilityId": "833cfc3068a986a2", "scanner": "scanner-primary", "fingerprint": "3bd47a6fc4dc66f7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/_backup_phase3/warranty_section.js"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-261ce79cc76d436b", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in pwa/_backup_phase3/warranty_section.js:291"}, "properties": {"repobilityId": "0deaac213e1bccf0", "scanner": "scanner-primary", "fingerprint": "261ce79cc76d436b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/_backup_phase3/warranty_section.js"}, "region": {"startLine": 291}}}]}, {"ruleId": "scanner-f2acccc29671f631", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/_backup_phase3/analytics_section.js:18"}, "properties": {"repobilityId": "aecb9f1bbe35e11b", "scanner": "scanner-primary", "fingerprint": "f2acccc29671f631", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/_backup_phase3/analytics_section.js"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-78e2d1e7f9f9171f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/_backup_phase3/executive_dashboard.html:731"}, "properties": {"repobilityId": "3e4b179b35120d20", "scanner": "scanner-primary", "fingerprint": "78e2d1e7f9f9171f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/_backup_phase3/executive_dashboard.html"}, "region": {"startLine": 731}}}]}, {"ruleId": "scanner-38381531223d9a9d", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in pwa/_backup_phase3/executive_dashboard.html:567"}, "properties": {"repobilityId": "2d491d3a172ab92f", "scanner": "scanner-primary", "fingerprint": "38381531223d9a9d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/_backup_phase3/executive_dashboard.html"}, "region": {"startLine": 567}}}]}, {"ruleId": "scanner-f1562e5b63a173e1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/_backup_phase3/section_tax.js:103"}, "properties": {"repobilityId": "6e2b08d78a2dd934", "scanner": "scanner-primary", "fingerprint": "f1562e5b63a173e1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/_backup_phase3/section_tax.js"}, "region": {"startLine": 103}}}]}, {"ruleId": "scanner-247b91fd03c570cf", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in pwa/_backup_phase3/section_tax.js:61"}, "properties": {"repobilityId": "9fcdb640138bb1bb", "scanner": "scanner-primary", "fingerprint": "247b91fd03c570cf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/_backup_phase3/section_tax.js"}, "region": {"startLine": 61}}}]}, {"ruleId": "scanner-84779c6833fca9a5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pwa/_backup_phase3/section_revenue.js:123"}, "properties": {"repobilityId": "58714fef716022ef", "scanner": "scanner-primary", "fingerprint": "84779c6833fca9a5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pwa/_backup_phase3/section_revenue.js"}, "region": {"startLine": 123}}}]}, {"ruleId": "scanner-83f2f5f50172c59b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in clasp-ready/JS_Part1.html:108"}, "properties": {"repobilityId": "ed5613b4138354d8", "scanner": "scanner-primary", "fingerprint": "83f2f5f50172c59b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "clasp-ready/JS_Part1.html"}, "region": {"startLine": 108}}}]}, {"ruleId": "scanner-44259d8137ed8a42", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in clasp-ready/dashboard_preview.html:1041"}, "properties": {"repobilityId": "3d1be16ca9834cb4", "scanner": "scanner-primary", "fingerprint": "44259d8137ed8a42", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "clasp-ready/dashboard_preview.html"}, "region": {"startLine": 1041}}}]}, {"ruleId": "scanner-b503e608048d4912", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in clasp-ready/PhotoGallery.html:190"}, "properties": {"repobilityId": "916c944771f03bb0", "scanner": "scanner-primary", "fingerprint": "b503e608048d4912", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "clasp-ready/PhotoGallery.html"}, "region": {"startLine": 190}}}]}, {"ruleId": "scanner-e7f55f50d7f55252", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in clasp-ready/JobQRView.html:266"}, "properties": {"repobilityId": "a780084b56eec663", "scanner": "scanner-primary", "fingerprint": "e7f55f50d7f55252", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "clasp-ready/JobQRView.html"}, "region": {"startLine": 266}}}]}, {"ruleId": "scanner-a7672f12748ad7d6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in clasp-ready/JS_Part2.html:181"}, "properties": {"repobilityId": "b56e6b19773bc61f", "scanner": "scanner-primary", "fingerprint": "a7672f12748ad7d6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "clasp-ready/JS_Part2.html"}, "region": {"startLine": 181}}}]}, {"ruleId": "scanner-6d82939069991793", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in clasp-ready/JS_Dashboard.html:76"}, "properties": {"repobilityId": "095c34f65cf5f170", "scanner": "scanner-primary", "fingerprint": "6d82939069991793", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "clasp-ready/JS_Dashboard.html"}, "region": {"startLine": 76}}}]}, {"ruleId": "scanner-a006834f55353ef2", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in test_reports/phase27_business_ai_test.json:98"}, "properties": {"repobilityId": "6d3e8001ec30725b", "scanner": "scanner-primary", "fingerprint": "a006834f55353ef2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test_reports/phase27_business_ai_test.json"}, "region": {"startLine": 98}}}]}, {"ruleId": "scanner-75d3c88006098cc1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in delivery/pwa/after_sales_enhanced.js:16"}, "properties": {"repobilityId": "3525ab68f2db7100", "scanner": "scanner-primary", "fingerprint": "75d3c88006098cc1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "delivery/pwa/after_sales_enhanced.js"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-947d243f3e46581a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in delivery/pwa/billing_slip_verify.js:31"}, "properties": {"repobilityId": "233a8bb7a6e22814", "scanner": "scanner-primary", "fingerprint": "947d243f3e46581a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "delivery/pwa/billing_slip_verify.js"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-5849747a7e1aa924", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in delivery/pwa/customer_portal.html:167"}, "properties": {"repobilityId": "6e123196c9a01197", "scanner": "scanner-primary", "fingerprint": "5849747a7e1aa924", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "delivery/pwa/customer_portal.html"}, "region": {"startLine": 167}}}]}, {"ruleId": "scanner-edb8205b06ad7aeb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in ARCHIVED_Shop_vnext/src/JS_Part1.html:34"}, "properties": {"repobilityId": "84799391c96a75ae", "scanner": "scanner-primary", "fingerprint": "edb8205b06ad7aeb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ARCHIVED_Shop_vnext/src/JS_Part1.html"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-96b67e8754d67c2d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in ARCHIVED_Shop_vnext/src/PhotoGallery.html:189"}, "properties": {"repobilityId": "0afa4a164f573acb", "scanner": "scanner-primary", "fingerprint": "96b67e8754d67c2d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ARCHIVED_Shop_vnext/src/PhotoGallery.html"}, "region": {"startLine": 189}}}]}, {"ruleId": "scanner-77c1b5ed15588870", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in ARCHIVED_Shop_vnext/src/JobQRView.html:265"}, "properties": {"repobilityId": "f46ac219956df4aa", "scanner": "scanner-primary", "fingerprint": "77c1b5ed15588870", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ARCHIVED_Shop_vnext/src/JobQRView.html"}, "region": {"startLine": 265}}}]}, {"ruleId": "scanner-b3fe250294bfad92", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in ARCHIVED_Shop_vnext/src/JS_Part2.html:62"}, "properties": {"repobilityId": "a12c71213d00b02b", "scanner": "scanner-primary", "fingerprint": "b3fe250294bfad92", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ARCHIVED_Shop_vnext/src/JS_Part2.html"}, "region": {"startLine": 62}}}]}, {"ruleId": "scanner-7bff45d06f767964", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in ARCHIVED_Shop_vnext/src/JS_Dashboard.html:5"}, "properties": {"repobilityId": "ad264f021458eb97", "scanner": "scanner-primary", "fingerprint": "7bff45d06f767964", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "ARCHIVED_Shop_vnext/src/JS_Dashboard.html"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-0820bc18a2c75c98", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "8577d6c1b310a781", "scanner": "scanner-primary", "fingerprint": "0820bc18a2c75c98", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-gas.yml"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-0820bc18a2c75c98", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "8577d6c1b310a781", "scanner": "scanner-primary", "fingerprint": "0820bc18a2c75c98", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-gas.yml"}, "region": {"startLine": 215}}}]}, {"ruleId": "scanner-0820bc18a2c75c98", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "19605de2a04aacf8", "scanner": "scanner-primary", "fingerprint": "0820bc18a2c75c98", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-gas.yml"}, "region": {"startLine": 219}}}]}, {"ruleId": "scanner-12927699cbf9d540", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2bb0a981531990e0", "scanner": "scanner-primary", "fingerprint": "12927699cbf9d540", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/auto-deploy.yml"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-12927699cbf9d540", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b811db8cf86d185c", "scanner": "scanner-primary", "fingerprint": "12927699cbf9d540", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/auto-deploy.yml"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-12927699cbf9d540", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2bb0a981531990e0", "scanner": "scanner-primary", "fingerprint": "12927699cbf9d540", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/auto-deploy.yml"}, "region": {"startLine": 139}}}]}, {"ruleId": "scanner-12927699cbf9d540", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "1695960690ca318c", "scanner": "scanner-primary", "fingerprint": "12927699cbf9d540", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/auto-deploy.yml"}, "region": {"startLine": 142}}}]}, {"ruleId": "scanner-12927699cbf9d540", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "7d736fcaa757b35d", "scanner": "scanner-primary", "fingerprint": "12927699cbf9d540", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/auto-deploy.yml"}, "region": {"startLine": 160}}}]}, {"ruleId": "scanner-12927699cbf9d540", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "6cb2174946de2187", "scanner": "scanner-primary", "fingerprint": "12927699cbf9d540", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/auto-deploy.yml"}, "region": {"startLine": 166}}}]}, {"ruleId": "scanner-12927699cbf9d540", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2bb0a981531990e0", "scanner": "scanner-primary", "fingerprint": "12927699cbf9d540", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/auto-deploy.yml"}, "region": {"startLine": 189}}}]}, {"ruleId": "scanner-12927699cbf9d540", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2bb0a981531990e0", "scanner": "scanner-primary", "fingerprint": "12927699cbf9d540", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/auto-deploy.yml"}, "region": {"startLine": 217}}}]}, {"ruleId": "scanner-80a56b60842dadec", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "d3d30322e953cbc0", "scanner": "scanner-primary", "fingerprint": "80a56b60842dadec", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/auto-deploy.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b00ee54062e0eb94", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "119a135d862517b0", "scanner": "scanner-primary", "fingerprint": "b00ee54062e0eb94", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/drive-sync.yml"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-cca86e62fb6bf7d6", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "c57059db75fce6bb", "scanner": "scanner-primary", "fingerprint": "cca86e62fb6bf7d6", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/session-backup.yml"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-b9b62ae1ad0c4eb9", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "0b37d9876526070f", "scanner": "scanner-primary", "fingerprint": "b9b62ae1ad0c4eb9", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/session-backup.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ef449d526d270761", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e841c3cf97c5cc45", "scanner": "scanner-primary", "fingerprint": "ef449d526d270761", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-line-worker.yml"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-ef449d526d270761", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "77c530f2daa01de1", "scanner": "scanner-primary", "fingerprint": "ef449d526d270761", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-line-worker.yml"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-eb6defb2e2811344", "level": "note", "message": {"text": "Very large file: scripts/pwa_static_guard.js (961 lines)"}, "properties": {"repobilityId": "cf76f33c7df614db", "scanner": "scanner-primary", "fingerprint": "eb6defb2e2811344", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-337f3121bfcda035", "level": "note", "message": {"text": "Very large file: pwa/section_settings.js (907 lines)"}, "properties": {"repobilityId": "371103a8277fd0f8", "scanner": "scanner-primary", "fingerprint": "337f3121bfcda035", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e85a536b1ba32b74", "level": "note", "message": {"text": "Very large file: pwa/app.js (1345 lines)"}, "properties": {"repobilityId": "a2df9961eaec16f1", "scanner": "scanner-primary", "fingerprint": "e85a536b1ba32b74", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1a4145486dc24ca3", "level": "note", "message": {"text": "Very large file: pwa/admin_panel.js (1020 lines)"}, "properties": {"repobilityId": "f010a8776daf1f7b", "scanner": "scanner-primary", "fingerprint": "1a4145486dc24ca3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "25f1a955436d366c", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-7b7a1bcfe92e4baf", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: workers/line-webhook/package.json"}, "properties": {"repobilityId": "a55b2598906bd737", "scanner": "scanner-primary", "fingerprint": "7b7a1bcfe92e4baf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "workers/line-webhook/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "2e0dc4e35de7f27f", "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": "b8b10d31c7df2fa3", "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": "fdd093c190e59465", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "a522f489261726ce", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-94461bcbfceabece", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 workers/line-webhook/src/index.js:15"}, "properties": {"repobilityId": "7f5028867f557878", "scanner": "scanner-primary", "fingerprint": "94461bcbfceabece", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0418b79867a3eb39", "level": "note", "message": {"text": "Legacy-named symbol `offline_db_v2` in scripts/build_code_index.js:36"}, "properties": {"repobilityId": "234c3b21c62175bf", "scanner": "scanner-primary", "fingerprint": "0418b79867a3eb39", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e2e2ef622237485f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/pwa_functional_menu_audit.js:219"}, "properties": {"repobilityId": "798e963c450b1bb0", "scanner": "scanner-primary", "fingerprint": "e2e2ef622237485f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-36bd112f45b149a6", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/check_sync.py:173"}, "properties": {"repobilityId": "782fe56f07b0bf56", "scanner": "scanner-primary", "fingerprint": "36bd112f45b149a6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-703796e159e20290", "level": "note", "message": {"text": "Legacy-named symbol `drive_backup` in scripts/drive_backup.py:92"}, "properties": {"repobilityId": "8fca86fe0430e3d1", "scanner": "scanner-primary", "fingerprint": "703796e159e20290", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1b26bb34ca3ea7e8", "level": "note", "message": {"text": "Legacy-named symbol `section_backup` in scripts/sprint102_live_ux_menu_audit.js:72"}, "properties": {"repobilityId": "df74c5fff1973be8", "scanner": "scanner-primary", "fingerprint": "1b26bb34ca3ea7e8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-323f1418297ee0aa", "level": "note", "message": {"text": "Legacy-named symbol `section_backup` in scripts/sprint103_visual_runtime_walkthrough.js:51"}, "properties": {"repobilityId": "319d133b128b833b", "scanner": "scanner-primary", "fingerprint": "323f1418297ee0aa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-692eb64523ed2e2e", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 scripts/clasp_push.py:34"}, "properties": {"repobilityId": "27ab1f69a3e439b2", "scanner": "scanner-primary", "fingerprint": "692eb64523ed2e2e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e6adde44fd01448c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/pwa_smoke_cleanup_plan.js:87"}, "properties": {"repobilityId": "bb6fdaa1c90df08b", "scanner": "scanner-primary", "fingerprint": "e6adde44fd01448c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-44735fe4c2c6dd18", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/set_gas_secret.js:59"}, "properties": {"repobilityId": "312f2d34839179bf", "scanner": "scanner-primary", "fingerprint": "44735fe4c2c6dd18", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f3a14a4fe7a950a2", "level": "note", "message": {"text": "Legacy-named symbol `syncOfflineQueueLegacy` in pwa/offline_db.js:87"}, "properties": {"repobilityId": "ba080202f290e917", "scanner": "scanner-primary", "fingerprint": "f3a14a4fe7a950a2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9c04bf88397a0fdd", "level": "none", "message": {"text": "Commented-code block (5 lines) in pwa/offline_db.js:1"}, "properties": {"repobilityId": "1bc6e712812615cf", "scanner": "scanner-primary", "fingerprint": "9c04bf88397a0fdd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-75f84a4b3f9c541e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 pwa/api_client.js:5"}, "properties": {"repobilityId": "1e70c0af9821be65", "scanner": "scanner-primary", "fingerprint": "75f84a4b3f9c541e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-400443f440d975a0", "level": "none", "message": {"text": "Commented-code block (5 lines) in pwa/after_sales_enhanced.js:1"}, "properties": {"repobilityId": "53e2210626a0c31e", "scanner": "scanner-primary", "fingerprint": "400443f440d975a0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c4b55470d61ec18f", "level": "none", "message": {"text": "Commented-code block (5 lines) in pwa/billing_slip_verify.js:1"}, "properties": {"repobilityId": "9dabf743931c88e1", "scanner": "scanner-primary", "fingerprint": "c4b55470d61ec18f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3117eda7e50669fc", "level": "none", "message": {"text": "Commented-code block (5 lines) in pwa/customer_portal.js:1"}, "properties": {"repobilityId": "e4dbda4e03e30dae", "scanner": "scanner-primary", "fingerprint": "3117eda7e50669fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3669b550019ae08d", "level": "note", "message": {"text": "Legacy-named symbol `offline_db_v2` in pwa/offline_db_v2.js:2"}, "properties": {"repobilityId": "1c702d4561a99e12", "scanner": "scanner-primary", "fingerprint": "3669b550019ae08d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b3c320007bddec17", "level": "none", "message": {"text": "Commented-code block (5 lines) in pwa/offline_db_v2.js:1"}, "properties": {"repobilityId": "ab473198b916f6e1", "scanner": "scanner-primary", "fingerprint": "b3c320007bddec17", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-16361dc1da43aabd", "level": "note", "message": {"text": "Legacy-named symbol `latest_backup` in pwa/section_backup.js:140"}, "properties": {"repobilityId": "b73c4aacc3a368e9", "scanner": "scanner-primary", "fingerprint": "16361dc1da43aabd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e132c9de1f594174", "level": "none", "message": {"text": "Commented-code block (5 lines) in pwa/sw.js:1"}, "properties": {"repobilityId": "a298b3c8314ff5df", "scanner": "scanner-primary", "fingerprint": "e132c9de1f594174", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-77ed465c03b56a39", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 pwa/sw.js:97"}, "properties": {"repobilityId": "3d9811c9b64c41eb", "scanner": "scanner-primary", "fingerprint": "77ed465c03b56a39", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8c0e04d0a9dbe17f", "level": "none", "message": {"text": "Commented-code block (14 lines) in pwa/execution_lock.js:1"}, "properties": {"repobilityId": "f0837e30c73dba3c", "scanner": "scanner-primary", "fingerprint": "8c0e04d0a9dbe17f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c8e9828239ac0e9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 pwa/execution_lock.js:351"}, "properties": {"repobilityId": "a883c452e2fb8fb0", "scanner": "scanner-primary", "fingerprint": "3c8e9828239ac0e9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-726134ec6b775677", "level": "note", "message": {"text": "Legacy-named symbol `isOld` in pwa/pentest_frontend.js:499"}, "properties": {"repobilityId": "2f8e641223d4e69b", "scanner": "scanner-primary", "fingerprint": "726134ec6b775677", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-27f2a2902980a44b", "level": "none", "message": {"text": "Commented-code block (13 lines) in pwa/inventory_ui.js:1"}, "properties": {"repobilityId": "fbdb50301f66bec7", "scanner": "scanner-primary", "fingerprint": "27f2a2902980a44b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f769af6d1254bb7a", "level": "note", "message": {"text": "Legacy-named symbol `comphone_mobile_dashboard_cache_v2` in pwa/app.js:9"}, "properties": {"repobilityId": "7736f6d3bd53c4c9", "scanner": "scanner-primary", "fingerprint": "f769af6d1254bb7a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-34661ca0ab1eb2a0", "level": "none", "message": {"text": "Commented-code block (8 lines) in pwa/section_inventory.js:1"}, "properties": {"repobilityId": "1e015f36ec12040f", "scanner": "scanner-primary", "fingerprint": "34661ca0ab1eb2a0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-960bced8f432ca3b", "level": "none", "message": {"text": "Commented-code block (14 lines) in pwa/analytics.js:1"}, "properties": {"repobilityId": "11bf0e610d2ee2de", "scanner": "scanner-primary", "fingerprint": "960bced8f432ca3b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b63999073b64c2f2", "level": "none", "message": {"text": "Commented-code block (12 lines) in pwa/auth_guard.js:1"}, "properties": {"repobilityId": "71fbf43133c4049d", "scanner": "scanner-primary", "fingerprint": "b63999073b64c2f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a5071e4524587a2b", "level": "note", "message": {"text": "Legacy-named symbol `push_notifications_v2` in pwa/push_notifications_v2.js:2"}, "properties": {"repobilityId": "e5349d6eeb6c7108", "scanner": "scanner-primary", "fingerprint": "a5071e4524587a2b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f2ef37fe5cbd8711", "level": "none", "message": {"text": "Commented-code block (5 lines) in pwa/push_notifications_v2.js:1"}, "properties": {"repobilityId": "306763ffdec1bb18", "scanner": "scanner-primary", "fingerprint": "f2ef37fe5cbd8711", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b1d915e819fd50d7", "level": "none", "message": {"text": "Commented-code block (11 lines) in pwa/error_boundary.js:1"}, "properties": {"repobilityId": "329ca3907298244d", "scanner": "scanner-primary", "fingerprint": "b1d915e819fd50d7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c7b61e3a5d32dd53", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 pwa/error_boundary.js:188"}, "properties": {"repobilityId": "0a0eaee911fa5fcb", "scanner": "scanner-primary", "fingerprint": "c7b61e3a5d32dd53", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-35f3666125eaba49", "level": "none", "message": {"text": "Commented-code block (12 lines) in pwa/pwa_install.js:1"}, "properties": {"repobilityId": "4257da593aa1c935", "scanner": "scanner-primary", "fingerprint": "35f3666125eaba49", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5f638267bfca45d3", "level": "none", "message": {"text": "Commented-code block (5 lines) in pwa/push_notifications.js:1"}, "properties": {"repobilityId": "9be02e645bb2ccaa", "scanner": "scanner-primary", "fingerprint": "5f638267bfca45d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e00b9db583ecfe4f", "level": "none", "message": {"text": "Commented-code block (10 lines) in pwa/job_workflow.js:1"}, "properties": {"repobilityId": "cd0ef7b3446ee029", "scanner": "scanner-primary", "fingerprint": "e00b9db583ecfe4f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-76d4ecde64cb9128", "level": "none", "message": {"text": "Commented-code block (5 lines) in pwa/photo_upload_section.js:1"}, "properties": {"repobilityId": "36d84455d08ca723", "scanner": "scanner-primary", "fingerprint": "76d4ecde64cb9128", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8c9bc9e32c263576", "level": "none", "message": {"text": "Commented-code block (12 lines) in pwa/quick_actions.js:1"}, "properties": {"repobilityId": "3c935dbb520bc837", "scanner": "scanner-primary", "fingerprint": "8c9bc9e32c263576", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-498d6bada3b61dfb", "level": "none", "message": {"text": "Commented-code block (5 lines) in pwa/version_config.js:1"}, "properties": {"repobilityId": "7a3b6164687fb171", "scanner": "scanner-primary", "fingerprint": "498d6bada3b61dfb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-427dc642a8dfce32", "level": "none", "message": {"text": "Commented-code block (13 lines) in pwa/attendance_ui.js:1"}, "properties": {"repobilityId": "5d9d2906c14f114d", "scanner": "scanner-primary", "fingerprint": "427dc642a8dfce32", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7f79293c5a553302", "level": "none", "message": {"text": "Commented-code block (9 lines) in pwa/ai_executor_runtime.js:1"}, "properties": {"repobilityId": "1e07e4d0b2cdfd2a", "scanner": "scanner-primary", "fingerprint": "7f79293c5a553302", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b9d6e9207d3623e2", "level": "none", "message": {"text": "Commented-code block (5 lines) in pwa/analytics_section.js:1"}, "properties": {"repobilityId": "368bb7878e233dab", "scanner": "scanner-primary", "fingerprint": "b9d6e9207d3623e2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6fad9895f1c2f578", "level": "note", "message": {"text": "Legacy-named symbol `canApproveLegacy` in pwa/approval_guard.js:512"}, "properties": {"repobilityId": "4cf8c4dae48367c9", "scanner": "scanner-primary", "fingerprint": "6fad9895f1c2f578", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e23b4b163e755eb1", "level": "none", "message": {"text": "Commented-code block (11 lines) in pwa/approval_guard.js:1"}, "properties": {"repobilityId": "2aeb798149cd900e", "scanner": "scanner-primary", "fingerprint": "e23b4b163e755eb1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c5a8135d36651c5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 pwa/dashboard_pc_test.js:24"}, "properties": {"repobilityId": "8e3b56b67d63b505", "scanner": "scanner-primary", "fingerprint": "3c5a8135d36651c5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2b4397b764af3377", "level": "none", "message": {"text": "Commented-code block (5 lines) in pwa/customer_portal_section.js:1"}, "properties": {"repobilityId": "50069ef780b867c0", "scanner": "scanner-primary", "fingerprint": "2b4397b764af3377", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e6ffdb31895b4283", "level": "none", "message": {"text": "Commented-code block (6 lines) in pwa/smart_quotation.js:1"}, "properties": {"repobilityId": "4b1e244b05d2c3b3", "scanner": "scanner-primary", "fingerprint": "e6ffdb31895b4283", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-608fc3cb949f5763", "level": "none", "message": {"text": "Commented-code block (10 lines) in pwa/auth.js:1"}, "properties": {"repobilityId": "9b6943ce6261746f", "scanner": "scanner-primary", "fingerprint": "608fc3cb949f5763", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad7965e0a0a13d0e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 pwa/auth.js:230"}, "properties": {"repobilityId": "45652be0f255feea", "scanner": "scanner-primary", "fingerprint": "ad7965e0a0a13d0e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c0bb12dd9f2beea5", "level": "none", "message": {"text": "Commented-code block (5 lines) in pwa/admin.js:1"}, "properties": {"repobilityId": "5c4f90b7696b8e77", "scanner": "scanner-primary", "fingerprint": "c0bb12dd9f2beea5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1dec3a1821bb509", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 pwa/dashboard_pc_core.js:300"}, "properties": {"repobilityId": "5484baf99cdb6669", "scanner": "scanner-primary", "fingerprint": "e1dec3a1821bb509", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-97b1f8a4c8df3db4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 pwa/runtime_self_test.js:195"}, "properties": {"repobilityId": "681d9d0d0d53543f", "scanner": "scanner-primary", "fingerprint": "97b1f8a4c8df3db4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d847a374d3cc6f47", "level": "none", "message": {"text": "Commented-code block (5 lines) in pwa/_backup_phase3/analytics_section.js:1"}, "properties": {"repobilityId": "5f4fe4237b1ffccc", "scanner": "scanner-primary", "fingerprint": "d847a374d3cc6f47", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc8b6fca15804a3b", "level": "none", "message": {"text": "Commented-code block (5 lines) in delivery/pwa/after_sales_enhanced.js:1"}, "properties": {"repobilityId": "119daa8fe564f6c0", "scanner": "scanner-primary", "fingerprint": "bc8b6fca15804a3b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b80c13a2d6f8776c", "level": "none", "message": {"text": "Commented-code block (5 lines) in delivery/pwa/billing_slip_verify.js:1"}, "properties": {"repobilityId": "09f1c3973c091118", "scanner": "scanner-primary", "fingerprint": "b80c13a2d6f8776c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "ea0a47cbe263f2f1", "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": "6057fc675175c72f", "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": "bf6ac0286e965b32", "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": "ccca85e7dd4f0d00", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}]}]}