{"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": "foundry_unresolved_feedback", "name": "Foundry mined unresolved feedback: replaycodi/replay-worker", "shortDescription": {"text": "Foundry mined unresolved feedback: replaycodi/replay-worker"}, "fullDescription": {"text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: replaycodi/replay-worker\nThread: replaycodi/replay-worker#2\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: replaycodi/replay-worker\nThread: replaycodi/replay-worker#2\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: replaycodi/replay-worker#2\nRepo: replaycodi/replay-worker\nIssue/PR number: 2\nGraph consistency label: needs_more_evidence\nNodes: 10\nEdges: 14\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_ou"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_blueprint_gap", "name": "Foundry mined blueprint gap alignment: replaycodi/replay-worker", "shortDescription": {"text": "Foundry mined blueprint gap alignment: replaycodi/replay-worker"}, "fullDescription": {"text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: assumption_check\nRepo: replaycodi/replay-worker\nThread: replaycodi/replay-worker#1\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: replaycodi/replay-worker\nThread: replaycodi/replay-worker#1\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: replaycodi/replay-worker#1\nRepo: replaycodi/replay-worker\nIssue/PR number: 1\nGraph consistency label: assumption_check\nNodes: 18\nEdges: 33\nNode types: {'pr_file': 6, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome"}, "properties": {"scanner": "foundry_dataset", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_docs_only_fix", "name": "Foundry mined docs only runtime fix: replaycodi/replay-worker", "shortDescription": {"text": "Foundry mined docs only runtime fix: replaycodi/replay-worker"}, "fullDescription": {"text": "Graph query export: Docs-only response to runtime or integration issue\nQuery id: docs_only_runtime_fix\nQuery type: motif_query\nIntent: Assumption-check examples where docs or claims are not enough proof.\nMotif: docs_only_runtime_fix\nTraining usage: assumption_check\nGraph gold label: needs_more_evidence\nRepo: replaycodi/replay-worker\nThread: replaycodi/replay-worker#2\nEvidence:\nGraph motif: Runtime/integration complaint answered mostly with docs or claims\nMotif id: docs_only_runtime_fix\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: replaycodi/replay-worker\nThread: replaycodi/replay-worker#2\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: replaycodi/replay-worker#2\nRepo: replaycodi/replay-worker\nIssue/PR number: 2\nGraph consistency label: needs_more_evidence\nNodes: 10\nEdges: 14\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome':"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "high", "confidence": 0.8, "cwe": "", "owasp": ""}}, {"id": "foundry_bad_chain", "name": "Foundry mined bad chains: replaycodi/replay-worker", "shortDescription": {"text": "Foundry mined bad chains: replaycodi/replay-worker"}, "fullDescription": {"text": "Comment chain pattern product: bad_chains\nRepo: replaycodi/replay-worker\nThread: replaycodi/replay-worker#2\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: replaycodi/replay-worker#2\nRepo: replaycodi/replay-worker\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'deployment_env_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-de2c741b209bf476\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \""}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "high", "confidence": 0.84, "cwe": "", "owasp": ""}}, {"id": "scanner-6f26dc7961c60885", "name": "Possibly dead Python function: api_get", "shortDescription": {"text": "Possibly dead Python function: api_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-0914c74186cdb11e", "name": "Possibly dead Python function: do_compress_doc", "shortDescription": {"text": "Possibly dead Python function: do_compress_doc"}, "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-a2c1dfd352c297b9", "name": "Possibly dead Python function: batch_worker", "shortDescription": {"text": "Possibly dead Python function: batch_worker"}, "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-11c17e3245431fa4", "name": "Possibly dead Python function: decorator", "shortDescription": {"text": "Possibly dead Python function: decorator"}, "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-c99592065824ee3c", "name": "Possibly dead Python function: batch_worker", "shortDescription": {"text": "Possibly dead Python function: batch_worker"}, "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-50f9e204e0ea0116", "name": "Possibly dead Python function: do_film_convert", "shortDescription": {"text": "Possibly dead Python function: do_film_convert"}, "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-72bee8c8fef0d7a7", "name": "Possibly dead Python function: api_get", "shortDescription": {"text": "Possibly dead Python function: api_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-082bce69344857eb", "name": "Possibly dead Python function: encode_video", "shortDescription": {"text": "Possibly dead Python function: encode_video"}, "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-2e38a0f64ec6a936", "name": "Possibly dead Python function: batch_worker", "shortDescription": {"text": "Possibly dead Python function: batch_worker"}, "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-64a3c6cc8b22d753", "name": "Possibly dead Python function: do_film_convert", "shortDescription": {"text": "Possibly dead Python function: do_film_convert"}, "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-8557487790b7d315", "name": "Possibly dead Python function: batch_worker", "shortDescription": {"text": "Possibly dead Python function: batch_worker"}, "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-924e72e757380291", "name": "Possibly dead Python function: do_film_convert", "shortDescription": {"text": "Possibly dead Python function: do_film_convert"}, "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-18a6029074dc8989", "name": "Possibly dead Python function: batch_worker", "shortDescription": {"text": "Possibly dead Python function: batch_worker"}, "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-0aebba4ec342abc1", "name": "Possibly dead Python function: do_film_convert", "shortDescription": {"text": "Possibly dead Python function: do_film_convert"}, "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-dcc4948ed79c0e07", "name": "Possibly dead Python function: batch_worker", "shortDescription": {"text": "Possibly dead Python function: batch_worker"}, "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-8383c8097b0df632", "name": "Possibly dead Python function: do_film_convert", "shortDescription": {"text": "Possibly dead Python function: do_film_convert"}, "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-caf686ddfc996010", "name": "Possibly dead Python function: batch_worker", "shortDescription": {"text": "Possibly dead Python function: batch_worker"}, "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-d584fac2929a6b78", "name": "Stray `console.log` in TS/JS \u2014 deploy/sw.js:106", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 deploy/sw.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-103176d12abaf340", "name": "Stray `console.log` in TS/JS \u2014 deploy/_patch5.js:8", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 deploy/_patch5.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-6aba9b2aefad33cf", "name": "Stray `console.log` in TS/JS \u2014 deploy/_patch6.js:31", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 deploy/_patch6.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-3282d6d661c3c728", "name": "Stray `console.log` in TS/JS \u2014 deploy/_patch34.js:9", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 deploy/_patch34.js:9"}, "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-eb27a26cebc5e097", "name": "Icon-only button without accessible name \u2014 deploy/shared/markers.js:196", "shortDescription": {"text": "Icon-only button without accessible name \u2014 deploy/shared/markers.js:196"}, "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-dd51bb149ec23689", "name": "Icon-only button without accessible name \u2014 deploy/shared/admin-content.js:378", "shortDescription": {"text": "Icon-only button without accessible name \u2014 deploy/shared/admin-content.js:378"}, "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-154dd9e9932cdd71", "name": "Stray `console.log` in TS/JS \u2014 deploy/shared/actor-auth.js:58", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 deploy/shared/actor-auth.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-9f1a44b60d996b33", "name": "Stray `console.log` in TS/JS \u2014 deploy/shared/chat-firestore.js:208", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 deploy/shared/chat-firestore.js:208"}, "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-3092dbe7492dc59f", "name": "Icon-only button without accessible name \u2014 deploy/shared/casting-view.js:456", "shortDescription": {"text": "Icon-only button without accessible name \u2014 deploy/shared/casting-view.js:456"}, "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-194c76d24b642f01", "name": "Stray `console.log` in TS/JS \u2014 deploy/shared/admin-auth.js:65", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 deploy/shared/admin-auth.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-edb52feef23ffb57", "name": "Icon-only button without accessible name \u2014 deploy/shared/admin-caddies.js:441", "shortDescription": {"text": "Icon-only button without accessible name \u2014 deploy/shared/admin-caddies.js:441"}, "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-838f0e7319969363", "name": "Stray `console.log` in TS/JS \u2014 deploy/shared/actor-media-video-transcode.js:102", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 deploy/shared/actor-media-video-transcode.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-8927d8c53e226696", "name": "Stray `console.log` in TS/JS \u2014 deploy/shared/admin-films.js:446", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 deploy/shared/admin-films.js:446"}, "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-fc053e15d7c974a5", "name": "Stray `console.log` in TS/JS \u2014 deploy/shared/caddie-auth.js:131", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 deploy/shared/caddie-auth.js:131"}, "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-b70582765fa8c3af", "name": "Stray `console.log` in TS/JS \u2014 deploy/shared/temperature.js:65", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 deploy/shared/temperature.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-ee6a145715d50c37", "name": "Icon-only button without accessible name \u2014 deploy/shared/actor-audition-view.js:113", "shortDescription": {"text": "Icon-only button without accessible name \u2014 deploy/shared/actor-audition-view.js:113"}, "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-a26d523383784f1d", "name": "Icon-only button without accessible name \u2014 deploy/shared/audition.js:201", "shortDescription": {"text": "Icon-only button without accessible name \u2014 deploy/shared/audition.js:201"}, "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-24f816f4a2f18f85", "name": "Stray `console.log` in TS/JS \u2014 deploy/shared/index-auth.js:73", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 deploy/shared/index-auth.js:73"}, "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-ec86b4c7405cebbe", "name": "Stray `console.log` in TS/JS \u2014 deploy/shared/actor-media-core.js:86", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 deploy/shared/actor-media-core.js:86"}, "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-986851bcd41ca862", "name": "Icon-only button without accessible name \u2014 deploy/shared/admin-actors.js:403", "shortDescription": {"text": "Icon-only button without accessible name \u2014 deploy/shared/admin-actors.js:403"}, "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-b3d970606bd89cd8", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 memory/_design_v2_archive/mobile/untitled/project/screens.jsx:997", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 memory/_design_v2_archive/mobile/untitled/project/screens.jsx:997"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5c98ccd5b22c4af2", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 memory/_design_v2_archive/pc/screens.jsx:997", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 memory/_design_v2_archive/pc/screens.jsx:997"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b266ec08c61031d9", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 memory/design_v3_caddie_pc/project/screens.jsx:997", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 memory/design_v3_caddie_pc/project/screens.jsx:997"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d63da3583b14afc0", "name": "Dockerfile runs as root: Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e066691601852931", "name": "Docker base image is tag-pinned but not digest-pinned: python:3.11-slim", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.11-slim"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f2d6bbbcc11d28df", "name": "Dockerfile runs as root: gpu-worker/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: gpu-worker/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-aeed7f937ccc7864", "name": "Docker base image is tag-pinned but not digest-pinned: nvidia/cuda:12.2.2-runtime-ubuntu22.04", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: nvidia/cuda:12.2.2-runtime-ubuntu22.04"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9710c8d059e53154", "name": "No frontend routes/components detected", "shortDescription": {"text": "No frontend routes/components detected"}, "fullDescription": {"text": "No React/Vue/Next routes were found. This is fine for backend-only repos."}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-41dfaf6c78ef7c06", "name": "Insecure pattern 'direct_innerhtml_assignment' in alarm.html:317", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in alarm.html:317"}, "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-26e5e6d3cc635449", "name": "Insecure pattern 'direct_innerhtml_assignment' in actor.html:3721", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in actor.html:3721"}, "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-a6351c25ba70d1a6", "name": "Insecure pattern 'insert_adjacent_html' in actor.html:4087", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in actor.html:4087"}, "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-48f2d5804b52ff65", "name": "Insecure pattern 'direct_innerhtml_assignment' in index.html:2293", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in index.html:2293"}, "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-039c195aeb76eb41", "name": "Insecure pattern 'direct_innerhtml_assignment' in demo-admin.html:235", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in demo-admin.html: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-aa4942030ec76b8a", "name": "Insecure pattern 'direct_innerhtml_assignment' in pt-test.html:400", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pt-test.html:400"}, "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-2e76349e523c01d4", "name": "Insecure pattern 'direct_innerhtml_assignment' in admin.html:3133", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin.html:3133"}, "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-4c1a190bf4bbff29", "name": "Insecure pattern 'direct_innerhtml_assignment' in caddie.html:3265", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in caddie.html:3265"}, "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-7645064e0c77ab63", "name": "Insecure pattern 'direct_outerhtml_assignment' in caddie.html:4006", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in caddie.html:4006"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8e98c9b9e2f72af0", "name": "Insecure pattern 'insert_adjacent_html' in caddie.html:4200", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in caddie.html:4200"}, "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-43af7ca39efb1dc1", "name": "Insecure pattern 'direct_innerhtml_assignment' in caddie_b044.html:3243", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in caddie_b044.html:3243"}, "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-be20d31f28e5fab2", "name": "Insecure pattern 'direct_outerhtml_assignment' in caddie_b044.html:3984", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in caddie_b044.html:3984"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fc6cc31db7cbd436", "name": "Insecure pattern 'insert_adjacent_html' in caddie_b044.html:4173", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in caddie_b044.html:4173"}, "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-1d13030874376f4b", "name": "Insecure pattern 'direct_innerhtml_assignment' in profile-tour.html:450", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in profile-tour.html:450"}, "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-f28b7be6a7c1f609", "name": "Insecure pattern 'cors_wildcard' in functions/api/download-video.js:33", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in functions/api/download-video.js:33"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6a7c134a8d1a84f5", "name": "Insecure pattern 'exec_used' in scripts/check_convert_jobs.sh:60", "shortDescription": {"text": "Insecure pattern 'exec_used' in scripts/check_convert_jobs.sh:60"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-964b69b0d4ea3483", "name": "Insecure pattern 'document_write' in deploy/share.html:4384", "shortDescription": {"text": "Insecure pattern 'document_write' in deploy/share.html:4384"}, "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-0fab69e96a99d6be", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/share.html:2054", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/share.html:2054"}, "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-44c51cc437b5d35d", "name": "Insecure pattern 'document_write' in deploy/caddie-pc.html:5365", "shortDescription": {"text": "Insecure pattern 'document_write' in deploy/caddie-pc.html:5365"}, "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-c3b14a7188617bea", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/caddie-pc.html:1562", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/caddie-pc.html:1562"}, "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-4c1cee65730c7016", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/faq.html:314", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/faq.html:314"}, "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-f15d10e725db9996", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/profile-tour-v2.html:454", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/profile-tour-v2.html:454"}, "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-7a1334101718b15c", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/actors.html:1717", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/actors.html:1717"}, "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-89f97cc021757a9a", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/casting.html:714", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/casting.html:714"}, "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-f578d94fdaceaae1", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/alarm.html:234", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/alarm.html:234"}, "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-e2462816dc0f8bf5", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/actor.html:2480", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/actor.html:2480"}, "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-351fa9852b8b786a", "name": "Insecure pattern 'direct_outerhtml_assignment' in deploy/actor.html:9640", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in deploy/actor.html:9640"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-14f48bce9bed45a3", "name": "Insecure pattern 'insert_adjacent_html' in deploy/actor.html:5763", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in deploy/actor.html:5763"}, "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-3b2e7cf3803d532d", "name": "Insecure pattern 'local_storage_auth_token' in deploy/actor.html:6833", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in deploy/actor.html:6833"}, "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-057856b6a854799c", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/index.html:878", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/index.html:878"}, "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-12798323e0997de0", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/caddie-mobile.html:1119", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/caddie-mobile.html:1119"}, "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-ee83f158db818bc3", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/demo-admin.html:488", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/demo-admin.html:488"}, "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-7817fde2e76f7806", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/pt-test.html:400", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/pt-test.html:400"}, "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-916f258ec6a55f84", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/pt-test-v2.html:400", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/pt-test-v2.html:400"}, "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-a27c5e3137527307", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/admin.html:2081", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/admin.html:2081"}, "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-113ecf4fad135d3c", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/_patch5.js:99", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/_patch5.js:99"}, "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-edd16b3c9afcf032", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/home.html:1063", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/home.html:1063"}, "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-a768a60e6d5ebf8f", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/profile-tour.html:453", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/profile-tour.html:453"}, "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-3335fdc92b01cf79", "name": "Insecure pattern 'cors_wildcard' in deploy/functions/api/download-video.js:48", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in deploy/functions/api/download-video.js:48"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-20a1dd5b906fdf5d", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/markers.js:107", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/markers.js:107"}, "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-2078e9c71b51b7be", "name": "Insecure pattern 'insert_adjacent_html' in deploy/shared/markers.js:205", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in deploy/shared/markers.js:205"}, "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-3a66c15fefefd428", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/html-to-image.js:1", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/html-to-image.js:1"}, "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-ebb7a3a77f45c993", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/calendar-view.js:144", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/calendar-view.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-fdcc82c5b684b230", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/notifications-v1.js:112", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/notifications-v1.js:112"}, "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-9e40785d91af4f6a", "name": "Insecure pattern 'local_storage_auth_token' in deploy/shared/auth-core.js:110", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in deploy/shared/auth-core.js:110"}, "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-32e04a2b95f6a350", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/admin-content.js:111", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/admin-content.js:111"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9dd27c5454a08d78", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/recommended-medal.js:64", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/recommended-medal.js:64"}, "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-1af4eae73d5b1624", "name": "Insecure pattern 'insert_adjacent_html' in deploy/shared/recommended-medal.js:13", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in deploy/shared/recommended-medal.js:13"}, "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-99b5267dd5910c78", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/actor-auth.js:284", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/actor-auth.js:284"}, "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-c0f64f79dc92542a", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/actor-jobs-actions.js:86", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/actor-jobs-actions.js:86"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-25f405b7c94f4e19", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/mobile-career.js:114", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/mobile-career.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-59167e2004caf604", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/bucket-view.js:57", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/bucket-view.js:57"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6b51729a939ee5ae", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/grid-view.js:309", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/grid-view.js:309"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0fa3909a1acc4482", "name": "Possible secret in deploy/shared/chat-firestore.js", "shortDescription": {"text": "Possible secret in deploy/shared/chat-firestore.js"}, "fullDescription": {"text": "Detected pattern matching generic_api_key. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-69b40f1e5d324da4", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/actor-schedule.js:87", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/actor-schedule.js:87"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a841c0164b2d2661", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/auth.js:93", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/auth.js:93"}, "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-73cdbda418debecd", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/casting-view.js:354", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/casting-view.js:354"}, "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-c7518626c37add19", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/job-form.js:82", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/job-form.js:82"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f4722f613a070027", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/caddie-business-card.js:165", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/caddie-business-card.js:165"}, "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-434fa463377ce0fb", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/admin-auth.js:175", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/admin-auth.js:175"}, "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-a330312ad5f241d9", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/settlement.js:111", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/settlement.js:111"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c2fef58bd5fc75be", "name": "Insecure pattern 'insert_adjacent_html' in deploy/shared/settlement.js:402", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in deploy/shared/settlement.js:402"}, "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-95fa1b1c738ffd94", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/my-info.js:82", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/my-info.js:82"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1cdaa0ea40b670b6", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/actor-popup.js:198", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/actor-popup.js:198"}, "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-fe0d58bbed61beed", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/actor-media-video-cancel.js:53", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/actor-media-video-cancel.js:53"}, "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-0bba3ae06f36d037", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/admin-caddies.js:98", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/admin-caddies.js:98"}, "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-c5eb586a71ddf979", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/cropper.min.js:10", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/cropper.min.js:10"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-94480eb8d2046215", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/actor-media-video-transcode.js:242", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/actor-media-video-transcode.js:242"}, "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-5e3c377a6a29746a", "name": "Insecure pattern 'direct_outerhtml_assignment' in deploy/shared/actor-media-video-transcode.js:197", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in deploy/shared/actor-media-video-transcode.js:197"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a78264d5f8f7a5f9", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/actor-membership.js:274", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/actor-membership.js:274"}, "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-1698548d121c1aeb", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/admin-films.js:102", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/admin-films.js:102"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-64faf13bd5b6b569", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/actor-jobs-view.js:178", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/actor-jobs-view.js:178"}, "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-469ac46860055778", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/share-link-modal.js:209", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/share-link-modal.js:209"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ecfc7fdc7f97caaa", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/caddie-auth.js:165", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/caddie-auth.js:165"}, "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-128ded44475747d8", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/feedback-utils.js:67", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/feedback-utils.js:67"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b4eff309e2db1f15", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/chat-floating.js:76", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/chat-floating.js: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-96bc2800b69aa953", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/temperature.js:161", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/temperature.js:161"}, "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-db3bcfafaa37f6ab", "name": "Insecure pattern 'new_function_used' in deploy/shared/jszip.min.js:13", "shortDescription": {"text": "Insecure pattern 'new_function_used' in deploy/shared/jszip.min.js:13"}, "fullDescription": {"text": "Found a known-risky pattern (new_function_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8504bb06f2f5c858", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/actor-audition-view.js:199", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/actor-audition-view.js:199"}, "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-3a22b6283975a70b", "name": "Insecure pattern 'insert_adjacent_html' in deploy/shared/actor-audition-view.js:119", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in deploy/shared/actor-audition-view.js:119"}, "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-91fddcaf0acffc49", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/alarm-view.js:213", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/alarm-view.js:213"}, "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-daee7dbdc0c6326d", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/admin-stats.js:113", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/admin-stats.js:113"}, "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-5ee4b24f4508a24d", "name": "Insecure pattern 'insert_adjacent_html' in deploy/shared/feedback-center.js:128", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in deploy/shared/feedback-center.js:128"}, "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-c515e210b16a756c", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/chat-ui-v2.js:280", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/chat-ui-v2.js:280"}, "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-34bdba6b9fc65235", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/mobile-photos.js:190", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/mobile-photos.js: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-8c3a70ca43440128", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/audition.js:108", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/audition.js: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-2a5c16b5f46f99f4", "name": "Insecure pattern 'insert_adjacent_html' in deploy/shared/audition.js:373", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in deploy/shared/audition.js:373"}, "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-346324716a20eb43", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/job-detail.js:415", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/job-detail.js:415"}, "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-df3e9a722c729449", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/index-auth.js:284", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/index-auth.js:284"}, "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-1b3e71309158693e", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/admin-actors.js:248", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/admin-actors.js:248"}, "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-b3f6f85ae7d3de3f", "name": "Insecure pattern 'direct_outerhtml_assignment' in deploy/shared/admin-actors.js:450", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in deploy/shared/admin-actors.js:450"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-98f4568f9177c7d0", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/playback.js:108", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/playback.js: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-a13b6bb17d4bd0e6", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/jobs-view.js:175", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/jobs-view.js:175"}, "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-696281cf6c0d7673", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/admin-payments.js:172", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/admin-payments.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-6baa1c1c3e0a39d5", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/actor-media-video-init.js:52", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/actor-media-video-init.js:52"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7385a5bdcff4db12", "name": "Insecure pattern 'direct_innerhtml_assignment' in deploy/legacy-archive/caddie.html:3266", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/legacy-archive/caddie.html:3266"}, "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-b05005428f63ff94", "name": "Insecure pattern 'direct_outerhtml_assignment' in deploy/legacy-archive/caddie.html:4007", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in deploy/legacy-archive/caddie.html:4007"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-242a3497a024c9c0", "name": "Insecure pattern 'insert_adjacent_html' in deploy/legacy-archive/caddie.html:4201", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in deploy/legacy-archive/caddie.html:4201"}, "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-c55212ac8dd02d97", "name": "Insecure pattern 'direct_innerhtml_assignment' in backups/b019_caddie.html:3153", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in backups/b019_caddie.html:3153"}, "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-1a936ddd9dc003d2", "name": "Insecure pattern 'direct_outerhtml_assignment' in backups/b019_caddie.html:3894", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in backups/b019_caddie.html:3894"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-72db30edc7d60ecd", "name": "Insecure pattern 'insert_adjacent_html' in backups/b019_caddie.html:4083", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in backups/b019_caddie.html:4083"}, "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-ed26d998e65a7e8f", "name": "Insecure pattern 'direct_innerhtml_assignment' in backups/b041_caddie.html:3243", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in backups/b041_caddie.html:3243"}, "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-d43890e56bdc744c", "name": "Insecure pattern 'direct_outerhtml_assignment' in backups/b041_caddie.html:3984", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in backups/b041_caddie.html:3984"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4915cdedab5f3c25", "name": "Insecure pattern 'insert_adjacent_html' in backups/b041_caddie.html:4173", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in backups/b041_caddie.html:4173"}, "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-3c3b0a73d71386f4", "name": "Insecure pattern 'direct_innerhtml_assignment' in backups/b041_actor.html:3246", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in backups/b041_actor.html:3246"}, "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-2827e23475cdd1be", "name": "Insecure pattern 'direct_outerhtml_assignment' in backups/b041_actor.html:8993", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in backups/b041_actor.html:8993"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-44c2e3d5053172e1", "name": "Insecure pattern 'direct_innerhtml_assignment' in backups/b037_actor.html:3246", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in backups/b037_actor.html:3246"}, "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-c8f224413ef2c993", "name": "Insecure pattern 'direct_outerhtml_assignment' in backups/b037_actor.html:8986", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in backups/b037_actor.html:8986"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0eddb9043e497e99", "name": "Insecure pattern 'direct_innerhtml_assignment' in backups/b019_admin.html:3003", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in backups/b019_admin.html:3003"}, "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-88347ab2ba1214d6", "name": "Insecure pattern 'direct_innerhtml_assignment' in backups/b043_caddie.html:3243", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in backups/b043_caddie.html:3243"}, "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-f1a379fe186bc900", "name": "Insecure pattern 'direct_outerhtml_assignment' in backups/b043_caddie.html:3984", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in backups/b043_caddie.html:3984"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2c63158b3e95938e", "name": "Insecure pattern 'insert_adjacent_html' in backups/b043_caddie.html:4173", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in backups/b043_caddie.html:4173"}, "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-0a01f4f2205cf038", "name": "Insecure pattern 'direct_innerhtml_assignment' in backups/b020_actor.html:3245", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in backups/b020_actor.html:3245"}, "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-828740bf5713b9f8", "name": "Insecure pattern 'direct_outerhtml_assignment' in backups/b020_actor.html:8682", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in backups/b020_actor.html:8682"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-30efb5303b58e503", "name": "Insecure pattern 'direct_innerhtml_assignment' in backups/b043_admin.html:3003", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in backups/b043_admin.html:3003"}, "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-9d8fe7b8d4b3429c", "name": "Insecure pattern 'direct_innerhtml_assignment' in backups/b043_actor.html:3246", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in backups/b043_actor.html:3246"}, "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-363f19fec4d47eef", "name": "Insecure pattern 'direct_outerhtml_assignment' in backups/b043_actor.html:8995", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in backups/b043_actor.html:8995"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-61fd090e3482ec3c", "name": "Insecure pattern 'direct_innerhtml_assignment' in backups/b021_actor.html:3246", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in backups/b021_actor.html:3246"}, "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-0d10d831e49ff5f6", "name": "Insecure pattern 'direct_outerhtml_assignment' in backups/b021_actor.html:8750", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in backups/b021_actor.html:8750"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bced14e88a6674da", "name": "Insecure pattern 'direct_innerhtml_assignment' in backups/b019_actor.html:3244", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in backups/b019_actor.html:3244"}, "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-3f36be517a9cfa4f", "name": "Insecure pattern 'direct_outerhtml_assignment' in backups/b019_actor.html:8681", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in backups/b019_actor.html:8681"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-eb5b4a4cd81ac97d", "name": "Insecure pattern 'direct_innerhtml_assignment' in backups/b034_caddie.html:3242", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in backups/b034_caddie.html:3242"}, "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-7913763dcfaf5603", "name": "Insecure pattern 'direct_outerhtml_assignment' in backups/b034_caddie.html:3983", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in backups/b034_caddie.html:3983"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f9e7971120a8bafe", "name": "Insecure pattern 'insert_adjacent_html' in backups/b034_caddie.html:4172", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in backups/b034_caddie.html:4172"}, "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-f0f9aef010ba73b6", "name": "Insecure pattern 'direct_innerhtml_assignment' in backups/b035_caddie.html:3242", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in backups/b035_caddie.html:3242"}, "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-57bd35942b4b2702", "name": "Insecure pattern 'direct_outerhtml_assignment' in backups/b035_caddie.html:3983", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in backups/b035_caddie.html:3983"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2f4494bbfb84b196", "name": "Insecure pattern 'insert_adjacent_html' in backups/b035_caddie.html:4172", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in backups/b035_caddie.html:4172"}, "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-66ca84e4c20b5eee", "name": "Insecure pattern 'direct_innerhtml_assignment' in backups/b037_caddie.html:3243", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in backups/b037_caddie.html:3243"}, "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-161eadd9a5ee5691", "name": "Insecure pattern 'direct_outerhtml_assignment' in backups/b037_caddie.html:3984", "shortDescription": {"text": "Insecure pattern 'direct_outerhtml_assignment' in backups/b037_caddie.html:3984"}, "fullDescription": {"text": "Found a known-risky pattern (direct_outerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-80f09a6b60290ef2", "name": "Insecure pattern 'insert_adjacent_html' in backups/b037_caddie.html:4173", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in backups/b037_caddie.html:4173"}, "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-6adc7db52280de2a", "name": "Insecure pattern 'direct_innerhtml_assignment' in backups/b041_admin.html:3003", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in backups/b041_admin.html:3003"}, "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-f9818c745fdf8f2a", "name": "Insecure pattern 'direct_innerhtml_assignment' in memory/replay_homepage_design_v1.html:1162", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in memory/replay_homepage_design_v1.html:1162"}, "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-4c824d19ff1b0b57", "name": "Insecure pattern 'dangerous_innerhtml' in memory/_design_v2_archive/mobile/untitled/project/screens.jsx:997", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in memory/_design_v2_archive/mobile/untitled/project/screens.jsx:997"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-aeea1c42625f1825", "name": "Insecure pattern 'dangerous_innerhtml' in memory/_design_v2_archive/pc/screens.jsx:997", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in memory/_design_v2_archive/pc/screens.jsx:997"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b400a0504ffbdaa9", "name": "Insecure pattern 'dangerous_innerhtml' in memory/design_v3_caddie_pc/project/screens.jsx:997", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in memory/design_v3_caddie_pc/project/screens.jsx:997"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3ce960fcb8b68798", "name": "Very large file: main_final.py (1428 lines)", "shortDescription": {"text": "Very large file: main_final.py (1428 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-a69045af2791eb19", "name": "Very large file: models.py (2439 lines)", "shortDescription": {"text": "Very large file: models.py (2439 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-f20e30bb4a0168aa", "name": "Very large file: deploy/shared/home-card.js (1015 lines)", "shortDescription": {"text": "Very large file: deploy/shared/home-card.js (1015 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-4dbba3e26ce620fe", "name": "Very large file: deploy/shared/job-form.js (1459 lines)", "shortDescription": {"text": "Very large file: deploy/shared/job-form.js (1459 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-edf96ac1336012b9", "name": "Very large file: deploy/shared/chat-ui-v2.js (1458 lines)", "shortDescription": {"text": "Very large file: deploy/shared/chat-ui-v2.js (1458 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5fbeb45bc1d32838", "name": "Very large file: deploy/shared/job-card.js (2105 lines)", "shortDescription": {"text": "Very large file: deploy/shared/job-card.js (2105 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-1305794704df13f3", "name": "Very large file: deploy/shared/job-detail.js (887 lines)", "shortDescription": {"text": "Very large file: deploy/shared/job-detail.js (887 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-65f8bac8ed868485", "name": "Very large file: backups/b036_models.py (1009 lines)", "shortDescription": {"text": "Very large file: backups/b036_models.py (1009 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-733bbbe85e285a98", "name": "Very large file: backups/b035_main.py (5581 lines)", "shortDescription": {"text": "Very large file: backups/b035_main.py (5581 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-e2d5b5ddc197decb", "name": "Very large file: backups/b037_main.py (5712 lines)", "shortDescription": {"text": "Very large file: backups/b037_main.py (5712 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-e6bbee65742a5fc4", "name": "Very large file: backups/b020_main.py (4908 lines)", "shortDescription": {"text": "Very large file: backups/b020_main.py (4908 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-23ca2b40f3b9288d", "name": "Very large file: backups/b041_main.py (5795 lines)", "shortDescription": {"text": "Very large file: backups/b041_main.py (5795 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-86e6da4395e19c51", "name": "Very large file: backups/b037_models.py (1009 lines)", "shortDescription": {"text": "Very large file: backups/b037_models.py (1009 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-8d51db88a7135c4d", "name": "Very large file: backups/b036_main.py (5703 lines)", "shortDescription": {"text": "Very large file: backups/b036_main.py (5703 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-0eea255a6c73a3fb", "name": "Very large file: backups/b019_main.py (4908 lines)", "shortDescription": {"text": "Very large file: backups/b019_main.py (4908 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-9527735bdc307fb7", "name": "Very large file: backups/b021_main.py (5018 lines)", "shortDescription": {"text": "Very large file: backups/b021_main.py (5018 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-691ca9b311e79b3b", "name": "Very large file: backups/b034_main.py (5581 lines)", "shortDescription": {"text": "Very large file: backups/b034_main.py (5581 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-231f5dc734d35ced", "name": "Very large file: backups/b043_main.py (5848 lines)", "shortDescription": {"text": "Very large file: backups/b043_main.py (5848 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-4d8db5c34924bba5", "name": "Very large file: memory/_design_v2_archive/mobile/untitled/project/screens.jsx (1253 lines)", "shortDescription": {"text": "Very large file: memory/_design_v2_archive/mobile/untitled/project/screens.jsx (1253 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-85c46e7514434fc9", "name": "Very large file: memory/_design_v2_archive/pc/screens.jsx (1253 lines)", "shortDescription": {"text": "Very large file: memory/_design_v2_archive/pc/screens.jsx (1253 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-099a3e99c2b55c47", "name": "Very large file: memory/design_v3_caddie_pc/project/screens.jsx (1253 lines)", "shortDescription": {"text": "Very large file: memory/design_v3_caddie_pc/project/screens.jsx (1253 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": "3 test file(s) for 160 source file(s) (ratio 0.02). 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-01f96f71d9907a8c", "name": "README lacks setup or run instructions", "shortDescription": {"text": "README lacks setup or run instructions"}, "fullDescription": {"text": "A README exists, but it does not contain common install/setup/run markers. This matches a frequent generated-code pattern: UI is present, operational handoff is thin."}, "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 2241 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 109 placeholder/mock markers across 34 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, ci, operator-readme. 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": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license, ci, operator-readme. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8210d2820e4584e9", "name": "Agent instruction/config may expose a secret: gpu-worker/CLAUDE.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: gpu-worker/CLAUDE.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2a7e860f8ce8c6f4", "name": "Agent authority lacks a verifier contract: gpu-worker/CLAUDE.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: gpu-worker/CLAUDE.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b5ff8cbda03cd3ec", "name": "Agent instruction contains unpinned remote install: .claude/settings.local.json", "shortDescription": {"text": "Agent instruction contains unpinned remote install: .claude/settings.local.json"}, "fullDescription": {"text": "Remote install commands in agent instructions are a supply-chain risk, especially when an agent can execute shell commands."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-148ecd994c2d2a68", "name": "Agent authority lacks a verifier contract: .claude/projects/C--Users-user-Desktop-replay/memory/handover_session40.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/projects/C--Users-user-Desktop-replay/memory/handover_session40.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8cd1c239f8cac28c", "name": "Agent authority lacks a verifier contract: .claude/projects/C--Users-user-Desktop-replay/memory/handover_session38.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/projects/C--Users-user-Desktop-replay/memory/handover_session38.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d8b45172d95d0b5", "name": "Agent instruction/config may expose a secret: .claude/projects/C--Users-user-Desktop-replay/memory/handover_session37.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/projects/C--Users-user-Desktop-replay/memory/handover_session37.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-03e852607c5f02f9", "name": "Agent authority lacks a verifier contract: .claude/projects/C--Users-user-Desktop-replay/memory/handover_session37.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/projects/C--Users-user-Desktop-replay/memory/handover_session37.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-50877e17121f386c", "name": "Legacy-named symbol `list_objects_v2` in main_final.py:661", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in main_final.py:661"}, "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-a88da9ece6927eb9", "name": "Network/subprocess call without timeout or try/except \u2014 main_final.py:10", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 main_final.py:10"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7989d9afd9835b5b", "name": "Legacy-named symbol `qa_bank_v1` in qa_grade_workflow.js:11", "shortDescription": {"text": "Legacy-named symbol `qa_bank_v1` in qa_grade_workflow.js:11"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2bef298c79e96cfa", "name": "Commented-code block (6 lines) in models.py:1046", "shortDescription": {"text": "Commented-code block (6 lines) in models.py:1046"}, "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-e354178f66cad30e", "name": "Legacy-named symbol `qa_bank_v1` in qa_regrade_workflow.js:11", "shortDescription": {"text": "Legacy-named symbol `qa_bank_v1` in qa_regrade_workflow.js:11"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-919e4f91a937f552", "name": "`fetch()` without try/.catch or AbortSignal \u2014 functions/api/download-video.js:16", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 functions/api/download-video.js:16"}, "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-5c56c7c8288073d8", "name": "Legacy-named symbol `PLAN_v1` in scripts/migrate_tenant.py:6", "shortDescription": {"text": "Legacy-named symbol `PLAN_v1` in scripts/migrate_tenant.py:6"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ba535ee7e6666aa7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/functions/terms.js:11", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/functions/terms.js:11"}, "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-1b511480ac46fcc7", "name": "Commented-code block (5 lines) in deploy/functions/profile-tour-v2.js:4", "shortDescription": {"text": "Commented-code block (5 lines) in deploy/functions/profile-tour-v2.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7fed23574a4d9476", "name": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/functions/profile-tour-v2.js:6", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/functions/profile-tour-v2.js:6"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3a8ab93dacabfd87", "name": "Commented-code block (5 lines) in deploy/functions/profile-tour.js:5", "shortDescription": {"text": "Commented-code block (5 lines) in deploy/functions/profile-tour.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9564ebc08acfee23", "name": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/functions/profile-tour.js:7", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/functions/profile-tour.js:7"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-88448b4c186a177c", "name": "Commented-code block (6 lines) in deploy/functions/[id].js:3", "shortDescription": {"text": "Commented-code block (6 lines) in deploy/functions/[id].js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a1d0d3aaeb07a6fd", "name": "Commented-code block (5 lines) in deploy/functions/caddie-v2.js:9", "shortDescription": {"text": "Commented-code block (5 lines) in deploy/functions/caddie-v2.js:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-621ec6872ebd005b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/functions/caddie-v2.js:5", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/functions/caddie-v2.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-d0e41ecab777cba7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/functions/privacy.js:11", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/functions/privacy.js:11"}, "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-ed3adffcbb021d37", "name": "Commented-code block (6 lines) in deploy/functions/_csp.js:12", "shortDescription": {"text": "Commented-code block (6 lines) in deploy/functions/_csp.js:12"}, "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-842052ee5be57832", "name": "Commented-code block (7 lines) in deploy/functions/j/[code].js:3", "shortDescription": {"text": "Commented-code block (7 lines) in deploy/functions/j/[code].js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9a12f0ede55d8840", "name": "Commented-code block (5 lines) in deploy/functions/api/download-video.js:16", "shortDescription": {"text": "Commented-code block (5 lines) in deploy/functions/api/download-video.js:16"}, "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-ddbe433145118d28", "name": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/functions/api/download-video.js:17", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/functions/api/download-video.js:17"}, "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-e76f510f3c3315ee", "name": "Commented-code block (7 lines) in deploy/functions/s/[token].js:6", "shortDescription": {"text": "Commented-code block (7 lines) in deploy/functions/s/[token].js:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0d3f390ac19d4ed7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/functions/s/[token].js:120", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/functions/s/[token].js:120"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-df6c23c2341bcce4", "name": "Commented-code block (10 lines) in deploy/shared/markers.js:66", "shortDescription": {"text": "Commented-code block (10 lines) in deploy/shared/markers.js:66"}, "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-a9731a936290e1e2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/actor-download.js:203", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/actor-download.js:203"}, "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-ed5c66315342b7f7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/html-to-image.js:1", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/html-to-image.js:1"}, "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-a781d531357b8e9e", "name": "Commented-code block (7 lines) in deploy/shared/auth-core.js:243", "shortDescription": {"text": "Commented-code block (7 lines) in deploy/shared/auth-core.js:243"}, "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-b585c49a602d24f5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/auth-core.js:270", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/auth-core.js:270"}, "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-b956ce37f8073035", "name": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/admin-content.js:70", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/admin-content.js:70"}, "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-a6685b34986f9ccd", "name": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/actor-auth.js:134", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/actor-auth.js:134"}, "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-6e53b4cfb8858682", "name": "Commented-code block (5 lines) in deploy/shared/grid-view.js:257", "shortDescription": {"text": "Commented-code block (5 lines) in deploy/shared/grid-view.js:257"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b1afe3e7c29b9352", "name": "Commented-code block (7 lines) in deploy/shared/chat-firestore.js:60", "shortDescription": {"text": "Commented-code block (7 lines) in deploy/shared/chat-firestore.js:60"}, "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-bb8a119f7f2aabcb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/chat-firestore.js:192", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/chat-firestore.js:192"}, "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-3dc859a6c288def7", "name": "Commented-code block (6 lines) in deploy/shared/actor-schedule.js:111", "shortDescription": {"text": "Commented-code block (6 lines) in deploy/shared/actor-schedule.js:111"}, "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-1e37a1e680dbfaaf", "name": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/auth.js:75", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/auth.js:75"}, "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-88dc016e141bae9c", "name": "Commented-code block (5 lines) in deploy/shared/casting-view.js:485", "shortDescription": {"text": "Commented-code block (5 lines) in deploy/shared/casting-view.js:485"}, "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-18b112414a0fa0bb", "name": "Commented-code block (7 lines) in deploy/shared/job-form.js:185", "shortDescription": {"text": "Commented-code block (7 lines) in deploy/shared/job-form.js:185"}, "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-4db57bedabd8ecbe", "name": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/admin-auth.js:140", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/admin-auth.js:140"}, "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-d58a44c852f0d2ac", "name": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/chat-attach.js:100", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/chat-attach.js:100"}, "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-5bf38c8fc246d887", "name": "Commented-code block (5 lines) in deploy/shared/actor-feedback-read.js:212", "shortDescription": {"text": "Commented-code block (5 lines) in deploy/shared/actor-feedback-read.js:212"}, "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-30a0c7126d8b2eff", "name": "Legacy-named symbol `pre_convert_backup` in deploy/shared/actor-media-video-cancel.js:16", "shortDescription": {"text": "Legacy-named symbol `pre_convert_backup` in deploy/shared/actor-media-video-cancel.js:16"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-20a45f0024918708", "name": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/admin-caddies.js:13", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/admin-caddies.js:13"}, "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-cc7654111742c3a3", "name": "Legacy-named symbol `pre_convert_backup` in deploy/shared/actor-media-video-transcode.js:19", "shortDescription": {"text": "Legacy-named symbol `pre_convert_backup` in deploy/shared/actor-media-video-transcode.js:19"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-58cf6557624a9514", "name": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/actor-media-video-transcode.js:125", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/actor-media-video-transcode.js:125"}, "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-d3fd6a0e88e86c89", "name": "Commented-code block (8 lines) in deploy/shared/download-system.js:85", "shortDescription": {"text": "Commented-code block (8 lines) in deploy/shared/download-system.js:85"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-955d619ac916b492", "name": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/download-system.js:86", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/download-system.js:86"}, "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-8473b2607807d7b3", "name": "Commented-code block (11 lines) in deploy/shared/pt-engine.js:328", "shortDescription": {"text": "Commented-code block (11 lines) in deploy/shared/pt-engine.js:328"}, "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-290fc3ff328e1a45", "name": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/pt-engine.js:261", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/pt-engine.js:261"}, "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-f1efa1bd11e98695", "name": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/admin-films.js:330", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/admin-films.js:330"}, "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-a32ad34460db8325", "name": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/actor-jobs-view.js:181", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/actor-jobs-view.js:181"}, "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-a5e6f5370042248e", "name": "Commented-code block (6 lines) in deploy/shared/caddie-auth.js:138", "shortDescription": {"text": "Commented-code block (6 lines) in deploy/shared/caddie-auth.js:138"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2544ac08d136977e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/caddie-auth.js:248", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/caddie-auth.js:248"}, "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-a62384db4e2549b1", "name": "Commented-code block (10 lines) in deploy/shared/feedback-utils.js:40", "shortDescription": {"text": "Commented-code block (10 lines) in deploy/shared/feedback-utils.js:40"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b6af74ab58472b47", "name": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/chat-floating.js:324", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/chat-floating.js:324"}, "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-2758ec09cde4163e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/actor-audition-view.js:154", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/actor-audition-view.js:154"}, "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-7da77bd6541d9ea1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/admin-actions.js:101", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/admin-actions.js:101"}, "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-f3a107dfdb35905d", "name": "Commented-code block (6 lines) in deploy/shared/chat-ui-v2.js:690", "shortDescription": {"text": "Commented-code block (6 lines) in deploy/shared/chat-ui-v2.js:690"}, "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-f5c45aff5d58a96e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/chat-ui-v2.js:719", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/chat-ui-v2.js:719"}, "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-16e83d062d09132c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/actor-media-docs.js:191", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/actor-media-docs.js:191"}, "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-65c3caea48f611cb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/index-auth.js:381", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/index-auth.js:381"}, "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-43147c6d86ef3a85", "name": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/admin-actors.js:431", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/admin-actors.js:431"}, "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-677695c17a6267e0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/actor-media-video-init.js:43", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/actor-media-video-init.js:43"}, "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-b88728ad1e31a2c8", "name": "Legacy-named symbol `list_objects_v2` in backups/b035_main.py:3781", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in backups/b035_main.py:3781"}, "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-61bf79a8ecbffdae", "name": "Legacy-named symbol `list_objects_v2` in backups/b037_main.py:3912", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in backups/b037_main.py:3912"}, "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-e6ecae1b75fbabe2", "name": "Legacy-named symbol `list_objects_v2` in backups/b020_main.py:3109", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in backups/b020_main.py:3109"}, "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-d42fad9d31ef1d0b", "name": "Legacy-named symbol `list_objects_v2` in backups/b041_main.py:3977", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in backups/b041_main.py:3977"}, "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-c65259a529bd3602", "name": "Legacy-named symbol `list_objects_v2` in backups/b036_main.py:3903", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in backups/b036_main.py:3903"}, "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-2b76e9c7aa433683", "name": "Legacy-named symbol `list_objects_v2` in backups/b019_main.py:3109", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in backups/b019_main.py:3109"}, "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-7c0e9484f33a5385", "name": "Legacy-named symbol `list_objects_v2` in backups/b021_main.py:3218", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in backups/b021_main.py:3218"}, "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-7488a5b4de220a8d", "name": "Legacy-named symbol `list_objects_v2` in backups/b034_main.py:3781", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in backups/b034_main.py:3781"}, "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-e2f9fa888a5dca53", "name": "Legacy-named symbol `list_objects_v2` in backups/b043_main.py:3987", "shortDescription": {"text": "Legacy-named symbol `list_objects_v2` in backups/b043_main.py:3987"}, "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-a0200e11cdf25ea4", "name": "Legacy-named symbol `\ud30c\ub3c4\uc758\ub05d_\uc2dc\ub189\uc2dc\uc2a4_v2` in memory/_design_v2_archive/mobile/untitled/project/screens.jsx:507", "shortDescription": {"text": "Legacy-named symbol `\ud30c\ub3c4\uc758\ub05d_\uc2dc\ub189\uc2dc\uc2a4_v2` in memory/_design_v2_archive/mobile/untitled/project/screens.jsx:507"}, "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-463dce1f78dacae3", "name": "Commented-code block (5 lines) in memory/_design_v2_archive/mobile/untitled/project/design-canvas.jsx:20", "shortDescription": {"text": "Commented-code block (5 lines) in memory/_design_v2_archive/mobile/untitled/project/design-canvas.jsx:20"}, "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-de2568aa03277e5d", "name": "Legacy-named symbol `\ud30c\ub3c4\uc758\ub05d_\uc2dc\ub189\uc2dc\uc2a4_v2` in memory/_design_v2_archive/pc/screens.jsx:507", "shortDescription": {"text": "Legacy-named symbol `\ud30c\ub3c4\uc758\ub05d_\uc2dc\ub189\uc2dc\uc2a4_v2` in memory/_design_v2_archive/pc/screens.jsx:507"}, "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-eb56867f990cf144", "name": "Legacy-named symbol `\ud30c\ub3c4\uc758\ub05d_\uc2dc\ub189\uc2dc\uc2a4_v2` in memory/_design_v2_archive/pc/desktop.jsx:235", "shortDescription": {"text": "Legacy-named symbol `\ud30c\ub3c4\uc758\ub05d_\uc2dc\ub189\uc2dc\uc2a4_v2` in memory/_design_v2_archive/pc/desktop.jsx:235"}, "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-1950b7bcfaa2ffe5", "name": "Legacy-named symbol `\ud30c\ub3c4\uc758\ub05d_\uc2dc\ub189\uc2dc\uc2a4_v2` in memory/design_v3_caddie_pc/project/screens.jsx:507", "shortDescription": {"text": "Legacy-named symbol `\ud30c\ub3c4\uc758\ub05d_\uc2dc\ub189\uc2dc\uc2a4_v2` in memory/design_v3_caddie_pc/project/screens.jsx:507"}, "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-e733bc84d22ff07f", "name": "Commented-code block (5 lines) in memory/design_v3_caddie_pc/project/design-canvas.jsx:20", "shortDescription": {"text": "Commented-code block (5 lines) in memory/design_v3_caddie_pc/project/design-canvas.jsx:20"}, "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-f297e92f7c150b03", "name": "Legacy-named symbol `\ud30c\ub3c4\uc758\ub05d_\uc2dc\ub189\uc2dc\uc2a4_v2` in memory/design_v3_caddie_pc/project/desktop.jsx:235", "shortDescription": {"text": "Legacy-named symbol `\ud30c\ub3c4\uc758\ub05d_\uc2dc\ub189\uc2dc\uc2a4_v2` in memory/design_v3_caddie_pc/project/desktop.jsx:235"}, "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-59b992d62d86a65a", "name": "25 env vars used in code but missing from .env.example", "shortDescription": {"text": "25 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `ARCHIVE_DRY_RUN`, `ARCHIVE_RETENTION_DAYS`, `B2_APPLICATION_KEY`, `B2_BUCKET_ID`, `B2_BUCKET_NAME`, `B2_ENDPOINT`, `B2_KEY_ID`, `BUNNY_CDN_BASE_URL` + 17 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-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:\nmain_final.py:batch_worker, main_final.py:batch_worker\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-33a6b62e30ce7ab4", "name": "Near-duplicate function bodies in 6 places", "shortDescription": {"text": "Near-duplicate function bodies in 6 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nmodels.py:init_db, backups/b036_models.py:init_db, backups/b019_models.py:init_db, backups/b020_models.py:init_db\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-805362a4b2e61548", "name": "Near-duplicate function bodies in 28 places", "shortDescription": {"text": "Near-duplicate function bodies in 28 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nmodels.py:to_dict, models.py:to_dict, models.py:to_dict, models.py:to_dict\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nmodels.py:to_dict_brief, models.py:to_dict_brief, models.py:to_dict_brief\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-02525d39071dd2c7", "name": "Near-duplicate function bodies in 5 places", "shortDescription": {"text": "Near-duplicate function bodies in 5 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nbackups/b036_models.py:get_db, backups/b019_models.py:get_db, backups/b020_models.py:get_db, backups/b021_models.py:get_db\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a1df580af9537a61", "name": "Near-duplicate function bodies in 65 places", "shortDescription": {"text": "Near-duplicate function bodies in 65 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nbackups/b036_models.py:to_dict_brief, backups/b036_models.py:to_dict, backups/b036_models.py:to_dict, backups/b036_models.py:to_dict\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-46969939caf8120b", "name": "Near-duplicate function bodies in 9 places", "shortDescription": {"text": "Near-duplicate function bodies in 9 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nbackups/b035_main.py:api_login, backups/b037_main.py:api_login, backups/b020_main.py:api_login, backups/b041_main.py:api_login\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-959dc775c4241ad4", "name": "Near-duplicate function bodies in 18 places", "shortDescription": {"text": "Near-duplicate function bodies in 18 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nbackups/b035_main.py:api_jobs_create, backups/b035_main.py:api_jobs, backups/b037_main.py:api_jobs_create, backups/b037_main.py:api_jobs\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4b7c693578456ca1", "name": "Flask mutation route `api_login` without `@login_required` \u2014 main_final.py:130", "shortDescription": {"text": "Flask mutation route `api_login` without `@login_required` \u2014 main_final.py:130"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ef9048993cd62864", "name": "Flask mutation route `api_migrate_columns` without `@login_required` \u2014 main_final.py:290", "shortDescription": {"text": "Flask mutation route `api_migrate_columns` without `@login_required` \u2014 main_final.py:290"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b7adc0ab458399db", "name": "Flask mutation route `api_save_profile` without `@login_required` \u2014 main_final.py:349", "shortDescription": {"text": "Flask mutation route `api_save_profile` without `@login_required` \u2014 main_final.py:349"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6885c31f84abf723", "name": "Flask mutation route `api_save_video` without `@login_required` \u2014 main_final.py:439", "shortDescription": {"text": "Flask mutation route `api_save_video` without `@login_required` \u2014 main_final.py:439"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b5de16886f9c05c3", "name": "Flask mutation route `api_signup` without `@login_required` \u2014 main_final.py:502", "shortDescription": {"text": "Flask mutation route `api_signup` without `@login_required` \u2014 main_final.py:502"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-adb6710dd5c717cf", "name": "Flask mutation route `install_fonts` without `@login_required` \u2014 main_final.py:640", "shortDescription": {"text": "Flask mutation route `install_fonts` without `@login_required` \u2014 main_final.py:640"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4a018e08021b22ff", "name": "Flask mutation route `r2_delete` without `@login_required` \u2014 main_final.py:673", "shortDescription": {"text": "Flask mutation route `r2_delete` without `@login_required` \u2014 main_final.py:673"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1133a45a36ea08a5", "name": "Flask mutation route `presign` without `@login_required` \u2014 main_final.py:695", "shortDescription": {"text": "Flask mutation route `presign` without `@login_required` \u2014 main_final.py:695"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-859a6248b35cd91a", "name": "Flask mutation route `convert` without `@login_required` \u2014 main_final.py:739", "shortDescription": {"text": "Flask mutation route `convert` without `@login_required` \u2014 main_final.py:739"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-963d52a9193cd4dc", "name": "Flask mutation route `compress_doc` without `@login_required` \u2014 main_final.py:970", "shortDescription": {"text": "Flask mutation route `compress_doc` without `@login_required` \u2014 main_final.py:970"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a0cfa8ce059c274c", "name": "Flask mutation route `ppt_thumbs` without `@login_required` \u2014 main_final.py:1258", "shortDescription": {"text": "Flask mutation route `ppt_thumbs` without `@login_required` \u2014 main_final.py:1258"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-04de613af5b3ea6b", "name": "Flask mutation route `batch_ppt_thumbs` without `@login_required` \u2014 main_final.py:1302", "shortDescription": {"text": "Flask mutation route `batch_ppt_thumbs` without `@login_required` \u2014 main_final.py:1302"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-edafca78951ac8b0", "name": "Flask mutation route `batch_mobile_convert` without `@login_required` \u2014 main_final.py:1342", "shortDescription": {"text": "Flask mutation route `batch_mobile_convert` without `@login_required` \u2014 main_final.py:1342"}, "fullDescription": {"text": "Flask route declares POST/PUT/DELETE/PATCH methods without an auth decorator. Add `@login_required` (Flask-Login) or equivalent."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0449057c22115579", "name": "Dangling fetch: GET /pt-test-v2.html (deploy/functions/caddie-v2.js:5)", "shortDescription": {"text": "Dangling fetch: GET /pt-test-v2.html (deploy/functions/caddie-v2.js:5)"}, "fullDescription": {"text": "`deploy/functions/caddie-v2.js:5` calls `GET /pt-test-v2.html` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/pt-test-v2.html`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-029fdb19655e058b", "name": "Dangling fetch: GET /api/noti/read-all (deploy/shared/alarm-view.js:39)", "shortDescription": {"text": "Dangling fetch: GET /api/noti/read-all (deploy/shared/alarm-view.js:39)"}, "fullDescription": {"text": "`deploy/shared/alarm-view.js:39` calls `GET /api/noti/read-all` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:apiCall\nNormalized path used for matching: `/noti/read-all`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cee1b1903574e9ca", "name": "Unused endpoint: ANY /api/login", "shortDescription": {"text": "Unused endpoint: ANY /api/login"}, "fullDescription": {"text": "`main_final.py` declares `ANY /api/login` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-33de9c10cc501140", "name": "Unused endpoint: ANY /api/users", "shortDescription": {"text": "Unused endpoint: ANY /api/users"}, "fullDescription": {"text": "`main_final.py` declares `ANY /api/users` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dc601c535a8c22a5", "name": "Unused endpoint: ANY /api/migrate-columns", "shortDescription": {"text": "Unused endpoint: ANY /api/migrate-columns"}, "fullDescription": {"text": "`main_final.py` declares `ANY /api/migrate-columns` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-27ecd1d9cc23f1fe", "name": "Unused endpoint: ANY /api/save-profile", "shortDescription": {"text": "Unused endpoint: ANY /api/save-profile"}, "fullDescription": {"text": "`main_final.py` declares `ANY /api/save-profile` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f55aaf07f0f3cc90", "name": "Unused endpoint: ANY /api/save-video", "shortDescription": {"text": "Unused endpoint: ANY /api/save-video"}, "fullDescription": {"text": "`main_final.py` declares `ANY /api/save-video` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be538a06f101dd68", "name": "Unused endpoint: ANY /api/signup", "shortDescription": {"text": "Unused endpoint: ANY /api/signup"}, "fullDescription": {"text": "`main_final.py` declares `ANY /api/signup` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-95845282e844e2c0", "name": "Unused endpoint: ANY /api/jobs", "shortDescription": {"text": "Unused endpoint: ANY /api/jobs"}, "fullDescription": {"text": "`main_final.py` declares `ANY /api/jobs` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f36db94ae2aa8a14", "name": "Unused endpoint: ANY /install-fonts", "shortDescription": {"text": "Unused endpoint: ANY /install-fonts"}, "fullDescription": {"text": "`main_final.py` declares `ANY /install-fonts` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-55a0413444f30c9b", "name": "Unused endpoint: ANY /r2-list", "shortDescription": {"text": "Unused endpoint: ANY /r2-list"}, "fullDescription": {"text": "`main_final.py` declares `ANY /r2-list` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-057b5b2c3fadd0f2", "name": "Unused endpoint: ANY /r2-delete", "shortDescription": {"text": "Unused endpoint: ANY /r2-delete"}, "fullDescription": {"text": "`main_final.py` declares `ANY /r2-delete` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b13f82d7ea662100", "name": "Unused endpoint: ANY /presign", "shortDescription": {"text": "Unused endpoint: ANY /presign"}, "fullDescription": {"text": "`main_final.py` declares `ANY /presign` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a88c77b086cf427c", "name": "Unused endpoint: ANY /convert", "shortDescription": {"text": "Unused endpoint: ANY /convert"}, "fullDescription": {"text": "`main_final.py` declares `ANY /convert` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-83314c3c8ca01912", "name": "Unused endpoint: ANY /convert-status", "shortDescription": {"text": "Unused endpoint: ANY /convert-status"}, "fullDescription": {"text": "`main_final.py` declares `ANY /convert-status` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bc0b74ecb7e4243f", "name": "Unused endpoint: ANY /compress-doc", "shortDescription": {"text": "Unused endpoint: ANY /compress-doc"}, "fullDescription": {"text": "`main_final.py` declares `ANY /compress-doc` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4d3add4c8bd725d0", "name": "Unused endpoint: ANY /compress-doc-status", "shortDescription": {"text": "Unused endpoint: ANY /compress-doc-status"}, "fullDescription": {"text": "`main_final.py` declares `ANY /compress-doc-status` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-426681d0c92ce61c", "name": "Unused endpoint: ANY /ppt-thumbs", "shortDescription": {"text": "Unused endpoint: ANY /ppt-thumbs"}, "fullDescription": {"text": "`main_final.py` declares `ANY /ppt-thumbs` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d00f34c906d0c0a8", "name": "Unused endpoint: ANY /ppt-thumbs-status", "shortDescription": {"text": "Unused endpoint: ANY /ppt-thumbs-status"}, "fullDescription": {"text": "`main_final.py` declares `ANY /ppt-thumbs-status` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5b11f0de088eb1b2", "name": "Unused endpoint: ANY /batch-ppt-thumbs", "shortDescription": {"text": "Unused endpoint: ANY /batch-ppt-thumbs"}, "fullDescription": {"text": "`main_final.py` declares `ANY /batch-ppt-thumbs` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-96fd4f64849c47bb", "name": "Unused endpoint: ANY /batch-mobile-convert", "shortDescription": {"text": "Unused endpoint: ANY /batch-mobile-convert"}, "fullDescription": {"text": "`main_final.py` declares `ANY /batch-mobile-convert` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b059f2c53edc8dee", "name": "Unused endpoint: ANY /batch-mobile-status", "shortDescription": {"text": "Unused endpoint: ANY /batch-mobile-status"}, "fullDescription": {"text": "`main_final.py` declares `ANY /batch-mobile-status` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-35edae09e62888ec", "name": "Unused endpoint: ANY /api/admin/ai-knowledge", "shortDescription": {"text": "Unused endpoint: ANY /api/admin/ai-knowledge"}, "fullDescription": {"text": "`main.py` declares `ANY /api/admin/ai-knowledge` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ad287d6dfdf7b472", "name": "Unused endpoint: ANY /api/admin/ai-knowledge/save", "shortDescription": {"text": "Unused endpoint: ANY /api/admin/ai-knowledge/save"}, "fullDescription": {"text": "`main.py` declares `ANY /api/admin/ai-knowledge/save` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3a380ffba40f2e13", "name": "Unused endpoint: ANY /api/admin/ai-knowledge/bulk-preview", "shortDescription": {"text": "Unused endpoint: ANY /api/admin/ai-knowledge/bulk-preview"}, "fullDescription": {"text": "`main.py` declares `ANY /api/admin/ai-knowledge/bulk-preview` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ea390b02718322b9", "name": "Unused endpoint: ANY /api/admin/ai-knowledge/bulk-apply", "shortDescription": {"text": "Unused endpoint: ANY /api/admin/ai-knowledge/bulk-apply"}, "fullDescription": {"text": "`main.py` declares `ANY /api/admin/ai-knowledge/bulk-apply` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5686c8de717bf8b3", "name": "Unused endpoint: ANY /api/admin/ai-knowledge/extract", "shortDescription": {"text": "Unused endpoint: ANY /api/admin/ai-knowledge/extract"}, "fullDescription": {"text": "`main.py` declares `ANY /api/admin/ai-knowledge/extract` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-14f90015cc8a777c", "name": "Unused endpoint: ANY /api/admin/ai-knowledge/extract-url", "shortDescription": {"text": "Unused endpoint: ANY /api/admin/ai-knowledge/extract-url"}, "fullDescription": {"text": "`main.py` declares `ANY /api/admin/ai-knowledge/extract-url` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2987e1829f857778", "name": "Unused endpoint: ANY /api/admin/ai-candidates", "shortDescription": {"text": "Unused endpoint: ANY /api/admin/ai-candidates"}, "fullDescription": {"text": "`main.py` declares `ANY /api/admin/ai-candidates` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1dee10e1fe7fad5f", "name": "Unused endpoint: ANY /api/admin/ai-candidates/decide", "shortDescription": {"text": "Unused endpoint: ANY /api/admin/ai-candidates/decide"}, "fullDescription": {"text": "`main.py` declares `ANY /api/admin/ai-candidates/decide` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a4b48df9c46bb5de", "name": "Unused endpoint: ANY /api/admin/ai-unanswered", "shortDescription": {"text": "Unused endpoint: ANY /api/admin/ai-unanswered"}, "fullDescription": {"text": "`main.py` declares `ANY /api/admin/ai-unanswered` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1c9ae5bc311ed059", "name": "Unused endpoint: ANY /api/admin/ai-unanswered/resolve", "shortDescription": {"text": "Unused endpoint: ANY /api/admin/ai-unanswered/resolve"}, "fullDescription": {"text": "`main.py` declares `ANY /api/admin/ai-unanswered/resolve` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d9e45602b60a67a8", "name": "Unused endpoint: ANY /api/admin/pin/status", "shortDescription": {"text": "Unused endpoint: ANY /api/admin/pin/status"}, "fullDescription": {"text": "`main.py` declares `ANY /api/admin/pin/status` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-da91822e2afd65e6", "name": "Unused endpoint: ANY /api/admin/pin/set", "shortDescription": {"text": "Unused endpoint: ANY /api/admin/pin/set"}, "fullDescription": {"text": "`main.py` declares `ANY /api/admin/pin/set` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-85537025afa74eef", "name": "Unused endpoint: ANY /api/check-uid", "shortDescription": {"text": "Unused endpoint: ANY /api/check-uid"}, "fullDescription": {"text": "`main.py` declares `ANY /api/check-uid` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c86ef09add709cf7", "name": "Unused endpoint: ANY /api/auth/email/send-code", "shortDescription": {"text": "Unused endpoint: ANY /api/auth/email/send-code"}, "fullDescription": {"text": "`main.py` declares `ANY /api/auth/email/send-code` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0ae85e28d0fea119", "name": "Unused endpoint: ANY /api/auth/email/verify-code", "shortDescription": {"text": "Unused endpoint: ANY /api/auth/email/verify-code"}, "fullDescription": {"text": "`main.py` declares `ANY /api/auth/email/verify-code` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-52293579a2715deb", "name": "Unused endpoint: ANY /api/auth/email/reset-password", "shortDescription": {"text": "Unused endpoint: ANY /api/auth/email/reset-password"}, "fullDescription": {"text": "`main.py` declares `ANY /api/auth/email/reset-password` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-50a2f94dc29b42b1", "name": "Unused endpoint: ANY /api/auth/email/signup", "shortDescription": {"text": "Unused endpoint: ANY /api/auth/email/signup"}, "fullDescription": {"text": "`main.py` declares `ANY /api/auth/email/signup` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0243b6326e4878b3", "name": "Unused endpoint: ANY /api/auth/caddie/signup", "shortDescription": {"text": "Unused endpoint: ANY /api/auth/caddie/signup"}, "fullDescription": {"text": "`main.py` declares `ANY /api/auth/caddie/signup` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-afe633488c3402e6", "name": "Unused endpoint: ANY /api/auth/caddie/setup/verify", "shortDescription": {"text": "Unused endpoint: ANY /api/auth/caddie/setup/verify"}, "fullDescription": {"text": "`main.py` declares `ANY /api/auth/caddie/setup/verify` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1eaf5a2d7a1b0f6e", "name": "Unused endpoint: ANY /api/auth/caddie/setup", "shortDescription": {"text": "Unused endpoint: ANY /api/auth/caddie/setup"}, "fullDescription": {"text": "`main.py` declares `ANY /api/auth/caddie/setup` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e4305c3b6a73cad2", "name": "Unused endpoint: ANY /api/auth/caddie/login", "shortDescription": {"text": "Unused endpoint: ANY /api/auth/caddie/login"}, "fullDescription": {"text": "`main.py` declares `ANY /api/auth/caddie/login` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2cf9929d306ac3bc", "name": "Unused endpoint: ANY /api/auth/caddie/me", "shortDescription": {"text": "Unused endpoint: ANY /api/auth/caddie/me"}, "fullDescription": {"text": "`main.py` declares `ANY /api/auth/caddie/me` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f97986148cc43a35", "name": "Unused endpoint: ANY /api/auth/actor/me", "shortDescription": {"text": "Unused endpoint: ANY /api/auth/actor/me"}, "fullDescription": {"text": "`main.py` declares `ANY /api/auth/actor/me` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0c465bb56424456b", "name": "Unused endpoint: ANY /api/auth/admin/me", "shortDescription": {"text": "Unused endpoint: ANY /api/auth/admin/me"}, "fullDescription": {"text": "`main.py` declares `ANY /api/auth/admin/me` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e80e985f8a3b9492", "name": "Unused endpoint: ANY /api/public/jobs", "shortDescription": {"text": "Unused endpoint: ANY /api/public/jobs"}, "fullDescription": {"text": "`main.py` declares `ANY /api/public/jobs` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-866f90ce2ffbd141", "name": "Unused endpoint: ANY /api/jobs/<job_id>", "shortDescription": {"text": "Unused endpoint: ANY /api/jobs/<job_id>"}, "fullDescription": {"text": "`main.py` declares `ANY /api/jobs/<job_id>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-91700c6815b1711a", "name": "Unused endpoint: ANY /api/public/actors", "shortDescription": {"text": "Unused endpoint: ANY /api/public/actors"}, "fullDescription": {"text": "`main.py` declares `ANY /api/public/actors` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dfdade342dec704f", "name": "Unused endpoint: ANY /api/actors/by-member-no/<int:member_no>", "shortDescription": {"text": "Unused endpoint: ANY /api/actors/by-member-no/<int:member_no>"}, "fullDescription": {"text": "`main.py` declares `ANY /api/actors/by-member-no/<int:member_no>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ea22d152e264191d", "name": "Unused endpoint: ANY /api/chat/peer/<uid>", "shortDescription": {"text": "Unused endpoint: ANY /api/chat/peer/<uid>"}, "fullDescription": {"text": "`main.py` declares `ANY /api/chat/peer/<uid>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1a4819c28ac7b6ff", "name": "Unused endpoint: ANY /api/actors/<int:actor_id>", "shortDescription": {"text": "Unused endpoint: ANY /api/actors/<int:actor_id>"}, "fullDescription": {"text": "`main.py` declares `ANY /api/actors/<int:actor_id>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/18050"}, "properties": {"repository": "replaycodi/replay-worker", "repoUrl": "https://github.com/replaycodi/replay-worker", "branch": "main"}, "results": [{"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: replaycodi/replay-worker"}, "properties": {"repobilityId": 429293, "scanner": "foundry_dataset", "fingerprint": "ca2e583aa5f9b942ef7dc69bf24ad37f0831f4b0ac31f1e6c36661f435a0bc1c", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"docs_or_claims": 1, "deployment_env_gap": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 14, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 10, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "replaycodi/replay-worker#2", "issue_number": "2", "quality_tiers": {"unresolved": 3}, "repo_full_name": "replaycodi/replay-worker", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-d1803e89dd2cec3e", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"docs_or_claims": 4}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: needs_more_evidence\nRepo: replaycodi/replay-worker\nThread: replaycodi/replay-worker#2\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: replaycodi/replay-worker\nThread: replaycodi/replay-worker#2\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: replaycodi/replay-worker#2\nRepo: replaycodi/replay-worker\nIssue/PR number: 2\nGraph consistency label: needs_more_evidence\nNodes: 10\nEdges: 14\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'deployment_env_gap': 1, 'docs_or_claims': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/replaycodi/replay-worker", "source_id": "graph-query-motif_query-527190397fb1cc1a", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/unresolved_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "replaycodi/replay-worker", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: replaycodi/replay-worker"}, "properties": {"repobilityId": 429292, "scanner": "foundry_dataset", "fingerprint": "a81628f64760e5b64f7992f989f005c40d3a6a13b777367d94c83f6abdc67259", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"docs_or_claims": 2, "source_or_other": 4, "api_integration_gap": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 33, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 6, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 6, "thread_has_comment_chain": 1, "comment_chain_touches_file": 6, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 18, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 6, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "replaycodi/replay-worker#1", "issue_number": "1", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "replaycodi/replay-worker", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-2d9183297e90a2af", "graph_gold_label": "assumption_check", "changed_file_labels": {"docs_or_claims": 8, "source_or_other": 16}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: assumption_check\nRepo: replaycodi/replay-worker\nThread: replaycodi/replay-worker#1\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: replaycodi/replay-worker\nThread: replaycodi/replay-worker#1\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: replaycodi/replay-worker#1\nRepo: replaycodi/replay-worker\nIssue/PR number: 1\nGraph consistency label: assumption_check\nNodes: 18\nEdges: 33\nNode types: {'pr_file': 6, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'thread_touches_file': 6, 'comment_chain_touches_file': 6, 'issue_chain_touches_file': 6, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'source_or_other': 4, 'not_resolved_or_not_observed': 3, 'docs_or_claims': 2, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'api_integration_gap': 1, 'human_reported_issue_no_linked_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/replaycodi/replay-worker", "source_id": "graph-query-motif_query-7c068f41814ae973", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/unresolved_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "replaycodi/replay-worker", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: replaycodi/replay-worker"}, "properties": {"repobilityId": 402978, "scanner": "foundry_dataset", "fingerprint": "38ed78e514b6135111364bf59329f8b8d1db8578076cf1a4d8b5a1d1e31352bb", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"docs_or_claims": 2, "source_or_other": 4, "api_integration_gap": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "blueprint_human_gap_disagreement": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 33, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 6, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 4, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 6, "thread_has_comment_chain": 1, "comment_chain_touches_file": 6, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 18, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 6, "alignment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 1, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "replaycodi/replay-worker#1", "issue_number": "1", "quality_tiers": {"unresolved": 3, "assumption_check": 1}, "repo_full_name": "replaycodi/replay-worker", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-235a042a7280360a", "graph_gold_label": "assumption_check", "changed_file_labels": {"docs_or_claims": 8, "source_or_other": 16}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: assumption_check\nRepo: replaycodi/replay-worker\nThread: replaycodi/replay-worker#1\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: replaycodi/replay-worker\nThread: replaycodi/replay-worker#1\nGraph gold label: assumption_check\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: replaycodi/replay-worker#1\nRepo: replaycodi/replay-worker\nIssue/PR number: 1\nGraph consistency label: assumption_check\nNodes: 18\nEdges: 33\nNode types: {'pr_file': 6, 'link_quality': 4, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'thread_touches_file': 6, 'comment_chain_touches_file': 6, 'issue_chain_touches_file': 6, 'chain_has_link_quality': 4, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1, 'comment_aligns_finding': 1}\nLabels: {'source_or_other': 4, 'not_resolved_or_not_observed': 3, 'docs_or_claims': 2, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'api_integration_gap': 1, 'human_reported_issue_no_linked_fix': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/replaycodi/replay-worker", "source_id": "graph-query-motif_query-58dd8b4e8619838b", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "replaycodi/replay-worker", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_docs_only_fix", "level": "error", "message": {"text": "Foundry mined docs only runtime fix: replaycodi/replay-worker"}, "properties": {"repobilityId": 406303, "scanner": "foundry_dataset", "fingerprint": "ca28370ebbb6f82132d35ed32b26940ee184a8bf016a5a0b81d6234612e95579", "category": "practices", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Docs-only response to runtime or integration issue", "intent": "Assumption-check examples where docs or claims are not enough proof.", "labels": {"docs_or_claims": 1, "deployment_env_gap": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "docs_only_runtime_fix", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "docs_only_runtime_fix", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 14, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 10, "node_types": {"repo": 1, "thread": 1, "comment": 1, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "replaycodi/replay-worker#2", "issue_number": "2", "quality_tiers": {"unresolved": 3}, "repo_full_name": "replaycodi/replay-worker", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-c861c7a616e9f6e6", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {"docs_or_claims": 4}}, "text": "Graph query export: Docs-only response to runtime or integration issue\nQuery id: docs_only_runtime_fix\nQuery type: motif_query\nIntent: Assumption-check examples where docs or claims are not enough proof.\nMotif: docs_only_runtime_fix\nTraining usage: assumption_check\nGraph gold label: needs_more_evidence\nRepo: replaycodi/replay-worker\nThread: replaycodi/replay-worker#2\nEvidence:\nGraph motif: Runtime/integration complaint answered mostly with docs or claims\nMotif id: docs_only_runtime_fix\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: replaycodi/replay-worker\nThread: replaycodi/replay-worker#2\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: replaycodi/replay-worker#2\nRepo: replaycodi/replay-worker\nIssue/PR number: 2\nGraph consistency label: needs_more_evidence\nNodes: 10\nEdges: 14\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'deployment_env_gap': 1, 'docs_or_claims': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Train models to reject docs-only fixes for runtime, integration, data, or security failures.\n- Add paired examples where the correct fix changes executable paths and adds verification.\nAssumption checks:\n- Do changed files include executable code or only documentation/claims?\n- Does the complaint require runtime behavior that docs cannot prove?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/replaycodi/replay-worker", "source_id": "graph-query-motif_query-d9b65d68d22e85ea", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/docs_only_runtime_fix/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "replaycodi/replay-worker", "source_dataset": "graph_queries/docs_only_runtime_fix", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: replaycodi/replay-worker"}, "properties": {"repobilityId": 390737, "scanner": "foundry_dataset", "fingerprint": "292c5d0186516e29a5612b25e0981023ab3517157505eae791d8fd5666bec1dc", "category": "practices", "severity": "high", "confidence": 0.84, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "comment_chain_pattern_product", "source": "comment_chain_pattern_miner", "product": "bad_chains", "synthetic": false, "thread_key": "replaycodi/replay-worker#2", "human_labels": ["deployment_env_gap", "docs_or_claims"], "issue_number": "2", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "replaycodi/replay-worker", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-2e9e9422ff0f6af6", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 1, "docs": 6, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"docs_or_claims": 1}, "linked_commit_count": 0, "helicopter_view_count": 2, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: replaycodi/replay-worker\nThread: replaycodi/replay-worker#2\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: replaycodi/replay-worker#2\nRepo: replaycodi/replay-worker\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'deployment_env_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-de2c741b209bf476\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/replaycodi/replay-worker/pull/2\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: replaycodi/replay-worker\\nAuthor: replaycodi (User)\\nURL: https://github.com/replaycodi/replay-worker/pull/2\\nTitle: docs: CLAUDE.md\uc5d0 \ud504\ud22c /profile-tour v3.3 \uc218\uc815 \uac00\uc774\ub4dc \ucd94\uac00\\nBody:\\nv3.3 \ubc30\ud3ec \ud6c4 \ubaa8\ubc14\uc77c/PC UI \uc218\uc815 \uc2dc \uc808\ub300 \uaddc\uce59 \uba85\ubb38\ud654:\\r\\n- pt-test.html \uc218\uc815 \uc2dc \uc18c\uc2a4+deploy \uc591\ucabd \ub3d9\uae30\ud654 \ud544\uc218 (line 4 JS \ubcf4\uc874)\\r\\n- profile-tour.html\uc740 deploy\ub9cc \uc874\uc7ac\\r\\n- wrangler pages deploy CWD \uaddc\uce59 (deploy/ \ub0b4\ubd80\uc5d0\uc11c \uc2e4\ud589 \ud544\uc218)\\r\\n- --commit-message \uc601\ubb38 (Windows UTF-8 \uc774\uc288)\\r\\n- --branch=main\uc73c\ub85c \ud504\ub85c\ub355\uc158 \ubc30\ud3ec\\r\\n- _headers\ub294 Function \uc751\ub2f5\uc5d0 \ubbf8\uc801\uc6a9 \u2192 Function \ub0b4 \uc218\ub3d9 \ubcf5\uc81c\\r\\n- \ubc30\ud3ec \ud6c4 curl \uac80\uc99d \uccb4\ud06c\ub9ac\uc2a4\ud2b8 \ud3ec\ud568\\r\\n\\r\\nauto-memory\uc5d0\ub3c4 \uc800\uc7a5:\\r\\n- reference_ptour_v3_3_modification_rules.md (\uc218\uc815 \uaddc\uce59)\\r\\n- feedback_cross_validation_style.md (\ub300\ud45c\ub2d8 \uac80\uc99d \ud504\ub85c\ud1a0\ucf5c)\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-6d9ce1734429a939\",\n    \"filename\": \"CLAUDE.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"modified\",\n    \"additions\": 64,\n    \"deletions\": 2,\n    \"changes\": 66,\n    \"blob_url\": \"https://github.com/replaycodi/replay-worker/blob/56fb4165ec79cf0de03cc30106972ced6a43ed46/CLAUDE.md\"\n  }\n]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-fb76d7daa333472c\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: replaycodi/replay-worker\nGraph label: source_backed_multi_signal_graph\nNodes: 14\nEdges: 22\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 2, \"repo\": 1, \"source_artifact\": 8, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 7, \"artifact_supports_verification\": 1, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 8, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 1, \"docs\": 6, \"generated_claims\": 1}\nHelicopter views: {\"schemas\": 2}\nBundle labels: {\"source_backed_graph_patt\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/replaycodi/replay-worker", "source_id": "comment-chain-pattern-bad_chains-088306828467522c", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/bad_chains/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "replaycodi/replay-worker", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: replaycodi/replay-worker"}, "properties": {"repobilityId": 390736, "scanner": "foundry_dataset", "fingerprint": "2c7043718e828cf81bd66d6de55e1aecd2726a93791ae94db56a34c72d0ae0e3", "category": "practices", "severity": "high", "confidence": 0.84, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "comment_chain_pattern_product", "source": "comment_chain_pattern_miner", "product": "bad_chains", "synthetic": false, "thread_key": "replaycodi/replay-worker#1", "human_labels": ["api_integration_gap", "docs_or_claims", "source_or_other"], "issue_number": "1", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "replaycodi/replay-worker", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-52c8e1ed88d2b95a", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 1, "docs": 6, "generated_claims": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 6, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"docs_or_claims": 2, "source_or_other": 4}, "linked_commit_count": 0, "helicopter_view_count": 2, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 1, "design_schema_api_artifact_count": 0}, "text": "Comment chain pattern product: bad_chains\nRepo: replaycodi/replay-worker\nThread: replaycodi/replay-worker#1\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: replaycodi/replay-worker#1\nRepo: replaycodi/replay-worker\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 6\nLabels: {'api_integration_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 2, 'source_or_other': 4}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-3b34b67c79e7c9ff\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/replaycodi/replay-worker/pull/1\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: replaycodi/replay-worker\\nAuthor: replaycodi (User)\\nURL: https://github.com/replaycodi/replay-worker/pull/1\\nTitle: feat: /profile-tour URL \ud1b5\uc77c v3.3 \u2014 UA \ub77c\uc6b0\ud305 Function + \ubcf4\uc548\ud5e4\ub354 14\uac1c\\nBody:\\n## Summary\\r\\n\\r\\nCloudflare Pages Function\uc73c\ub85c `/profile-tour` \ud558\ub098\uc758 URL\uc5d0\uc11c UA \uae30\ubc18 \uc790\ub3d9 \ubd84\uae30:\\r\\n- \ubaa8\ubc14\uc77c UA (iPhone/Android Mobile/KakaoTalk \ub4f1) \u2192 pt-test.html \ucf58\ud150\uce20 \uc11c\ube59\\r\\n- PC UA \u2192 profile-tour.html (\uae30\uc874 \uadf8\ub300\ub85c)\\r\\n- `?view=pc|mobile` \uc624\ubc84\ub77c\uc774\ub4dc \uc9c0\uc6d0 (QA \ud3b8\uc758)\\r\\n- `/pt-test` \u2192 `/profile-tour` 301 \uc601\uad6c \ub9ac\ub2e4\uc774\ub809\ud2b8 (\uae30\uc874 \ub9c1\ud06c \ud638\ud658)\\r\\n\\r\\n## \ubcc0\uacbd \ud30c\uc77c (5\uac74)\\r\\n\\r\\n**\uc2e0\uaddc**\\r\\n- `deploy/functions/profile-tour.js`: UA \ubd84\uae30 + \uce90\uc2dc/SEO/\ubcf4\uc548 \ud5e4\ub354 14\uac1c \uc218\ub3d9 \ubcf5\uc81c (CF: `_headers` \ubbf8\uc801\uc6a9 \ub300\uc751) + try/catch \ud3f4\ubc31\\r\\n- `deploy/functions/pt-test.js`: 301 \ub9ac\ub2e4\uc774\ub809\ud2b8\\r\\n\\r\\n**\uc218\uc815**\\r\\n- `pt-test.html` + `deploy/pt-test.html` (line 4): `<script>if(location.pathname==='/pt-test.html')location.replace('/profile-tour');</script>` (\uc18c\uc2a4\u2194deploy \ub3d9\uae30\ud654\ub85c cp \uc0ac\uace0 \ubc29\uc9c0)\\r\\n- `CLAUDE.md`: `deploy/_redirects` \uc0dd\uc131 \uae08\uc9c0 \uaddc\uce59 (ASSETS.fetch \u00d7 _redirects \ubb34\ud55c\ub8e8\ud504 \ubc29\uc9c0)\\r\\n\\r\\n## \uae30\uc874 \uae30\ub2a5 \ud30c\uad34 0\uac74\\r\\n\\r\\n| \uc601\uc5ed | \uc601\ud5a5 |\\r\\n|------|------|\\r\\n| `/profile-tour` PC \uc811\uc18d | \ub3d9\uc77c (+\ubcf4\uc548 \ud5e4\ub354 \ucd94\uac00) |\\r\\n| `/pt-test` \ubaa8\ubc14\uc77c \uc811\uc18d | 301 \uacbd\uc720\ud574\ub3c4 \ucd5c\uc885 UI \ub3d9\uc77c |\\r\\n| \uc120\ubc1c \ub370\uc774\ud130 (DB \ub3d9\uae30\ud654) | \uc601\ud5a5 0 |\\r\\n| \uc601\uc0c1/blob/R2 \uc7ac\uc0dd | \uc601\ud5a5 0 |\\r\\n| \uce90\uc2a4\ud305 \ubaa8\ub4dc + \ubc30\uc5ed \uad00\ub9ac | \uc601\ud5a5 0\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-00d68f263e3226ac\",\n    \"filename\": \"CLAUDE.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"modified\",\n    \"additions\": 8,\n    \"deletions\": 0,\n    \"changes\": 8,\n    \"blob_url\": \"https://github.com/replaycodi/replay-worker/blob/fed657c22b46ae62a127596f277d5c414c079482/CLAUDE.md\"\n  },\n  {\n    \"id\": \"github-pr-file-file-1c4efa7ffa6aa41c\",\n    \"filename\": \"deploy/functions/profile-tour.js\",\n    \"label\": \"source_or_other\",\n    \"status\": \"added\",\n    \"additions\": 61,\n    \"deletions\": 0,\n    \"changes\": 61,\n    \"blob_url\": \"https://github.com/replayco\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/replaycodi/replay-worker", "source_id": "comment-chain-pattern-bad_chains-81e2003420216662", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/bad_chains/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "replaycodi/replay-worker", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "scanner-6f26dc7961c60885", "level": "note", "message": {"text": "Possibly dead Python function: api_get"}, "properties": {"repobilityId": "eaad5c2b472746f9", "scanner": "scanner-primary", "fingerprint": "6f26dc7961c60885", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "batch_card_photos.py:28"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0914c74186cdb11e", "level": "note", "message": {"text": "Possibly dead Python function: do_compress_doc"}, "properties": {"repobilityId": "9f07be044027bbe9", "scanner": "scanner-primary", "fingerprint": "0914c74186cdb11e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "main_final.py:1006"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a2c1dfd352c297b9", "level": "note", "message": {"text": "Possibly dead Python function: batch_worker"}, "properties": {"repobilityId": "618c53210cce6707", "scanner": "scanner-primary", "fingerprint": "a2c1dfd352c297b9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "main_final.py:1372"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-11c17e3245431fa4", "level": "note", "message": {"text": "Possibly dead Python function: decorator"}, "properties": {"repobilityId": "ffbcbc9bc189af1c", "scanner": "scanner-primary", "fingerprint": "11c17e3245431fa4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "main.py:4696"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c99592065824ee3c", "level": "note", "message": {"text": "Possibly dead Python function: batch_worker"}, "properties": {"repobilityId": "618c53210cce6707", "scanner": "scanner-primary", "fingerprint": "c99592065824ee3c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "main.py:21774"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-50f9e204e0ea0116", "level": "note", "message": {"text": "Possibly dead Python function: do_film_convert"}, "properties": {"repobilityId": "30de26731a2ecddb", "scanner": "scanner-primary", "fingerprint": "50f9e204e0ea0116", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "main.py:22100"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-72bee8c8fef0d7a7", "level": "note", "message": {"text": "Possibly dead Python function: api_get"}, "properties": {"repobilityId": "eaad5c2b472746f9", "scanner": "scanner-primary", "fingerprint": "72bee8c8fef0d7a7", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "batch_create_actors.py:41"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-082bce69344857eb", "level": "note", "message": {"text": "Possibly dead Python function: encode_video"}, "properties": {"repobilityId": "fffe094979df0df7", "scanner": "scanner-primary", "fingerprint": "082bce69344857eb", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "gpu-worker/poll_worker.py:306"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2e38a0f64ec6a936", "level": "note", "message": {"text": "Possibly dead Python function: batch_worker"}, "properties": {"repobilityId": "618c53210cce6707", "scanner": "scanner-primary", "fingerprint": "2e38a0f64ec6a936", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b035_main.py:5218"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-64a3c6cc8b22d753", "level": "note", "message": {"text": "Possibly dead Python function: do_film_convert"}, "properties": {"repobilityId": "30de26731a2ecddb", "scanner": "scanner-primary", "fingerprint": "64a3c6cc8b22d753", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b035_main.py:5332"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8557487790b7d315", "level": "note", "message": {"text": "Possibly dead Python function: batch_worker"}, "properties": {"repobilityId": "618c53210cce6707", "scanner": "scanner-primary", "fingerprint": "8557487790b7d315", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b037_main.py:5349"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-924e72e757380291", "level": "note", "message": {"text": "Possibly dead Python function: do_film_convert"}, "properties": {"repobilityId": "30de26731a2ecddb", "scanner": "scanner-primary", "fingerprint": "924e72e757380291", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b037_main.py:5463"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-18a6029074dc8989", "level": "note", "message": {"text": "Possibly dead Python function: batch_worker"}, "properties": {"repobilityId": "618c53210cce6707", "scanner": "scanner-primary", "fingerprint": "18a6029074dc8989", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b020_main.py:4545"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0aebba4ec342abc1", "level": "note", "message": {"text": "Possibly dead Python function: do_film_convert"}, "properties": {"repobilityId": "30de26731a2ecddb", "scanner": "scanner-primary", "fingerprint": "0aebba4ec342abc1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b020_main.py:4659"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dcc4948ed79c0e07", "level": "note", "message": {"text": "Possibly dead Python function: batch_worker"}, "properties": {"repobilityId": "618c53210cce6707", "scanner": "scanner-primary", "fingerprint": "dcc4948ed79c0e07", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b041_main.py:5414"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8383c8097b0df632", "level": "note", "message": {"text": "Possibly dead Python function: do_film_convert"}, "properties": {"repobilityId": "30de26731a2ecddb", "scanner": "scanner-primary", "fingerprint": "8383c8097b0df632", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b041_main.py:5528"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-caf686ddfc996010", "level": "note", "message": {"text": "Possibly dead Python function: batch_worker"}, "properties": {"repobilityId": "618c53210cce6707", "scanner": "scanner-primary", "fingerprint": "caf686ddfc996010", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b036_main.py:5340"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d584fac2929a6b78", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 deploy/sw.js:106"}, "properties": {"repobilityId": "7bf88a05b84c2180", "scanner": "scanner-primary", "fingerprint": "d584fac2929a6b78", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-103176d12abaf340", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 deploy/_patch5.js:8"}, "properties": {"repobilityId": "9da2e90a533f6c8d", "scanner": "scanner-primary", "fingerprint": "103176d12abaf340", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6aba9b2aefad33cf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 deploy/_patch6.js:31"}, "properties": {"repobilityId": "85a81a2f91fc2738", "scanner": "scanner-primary", "fingerprint": "6aba9b2aefad33cf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3282d6d661c3c728", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 deploy/_patch34.js:9"}, "properties": {"repobilityId": "06988c676a10e679", "scanner": "scanner-primary", "fingerprint": "3282d6d661c3c728", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-eb27a26cebc5e097", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 deploy/shared/markers.js:196"}, "properties": {"repobilityId": "8b8a4a5548f8ab88", "scanner": "scanner-primary", "fingerprint": "eb27a26cebc5e097", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-dd51bb149ec23689", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 deploy/shared/admin-content.js:378"}, "properties": {"repobilityId": "62d66e1ced2f88e2", "scanner": "scanner-primary", "fingerprint": "dd51bb149ec23689", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-154dd9e9932cdd71", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 deploy/shared/actor-auth.js:58"}, "properties": {"repobilityId": "5a8aacf9ed3de8d9", "scanner": "scanner-primary", "fingerprint": "154dd9e9932cdd71", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9f1a44b60d996b33", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 deploy/shared/chat-firestore.js:208"}, "properties": {"repobilityId": "21e289238d405731", "scanner": "scanner-primary", "fingerprint": "9f1a44b60d996b33", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3092dbe7492dc59f", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 deploy/shared/casting-view.js:456"}, "properties": {"repobilityId": "5afe0741113cc689", "scanner": "scanner-primary", "fingerprint": "3092dbe7492dc59f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-194c76d24b642f01", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 deploy/shared/admin-auth.js:65"}, "properties": {"repobilityId": "3a15b356ae88fa36", "scanner": "scanner-primary", "fingerprint": "194c76d24b642f01", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-edb52feef23ffb57", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 deploy/shared/admin-caddies.js:441"}, "properties": {"repobilityId": "b90a4a01e5ba1329", "scanner": "scanner-primary", "fingerprint": "edb52feef23ffb57", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-838f0e7319969363", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 deploy/shared/actor-media-video-transcode.js:102"}, "properties": {"repobilityId": "0b60de5cbc0027dd", "scanner": "scanner-primary", "fingerprint": "838f0e7319969363", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8927d8c53e226696", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 deploy/shared/admin-films.js:446"}, "properties": {"repobilityId": "f40c98089bb46cf7", "scanner": "scanner-primary", "fingerprint": "8927d8c53e226696", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fc053e15d7c974a5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 deploy/shared/caddie-auth.js:131"}, "properties": {"repobilityId": "29e47fde28fdceb1", "scanner": "scanner-primary", "fingerprint": "fc053e15d7c974a5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b70582765fa8c3af", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 deploy/shared/temperature.js:65"}, "properties": {"repobilityId": "3eed0727aadf44fb", "scanner": "scanner-primary", "fingerprint": "b70582765fa8c3af", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ee6a145715d50c37", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 deploy/shared/actor-audition-view.js:113"}, "properties": {"repobilityId": "3c60551ccc31e7f1", "scanner": "scanner-primary", "fingerprint": "ee6a145715d50c37", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-a26d523383784f1d", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 deploy/shared/audition.js:201"}, "properties": {"repobilityId": "bbaa95f145235e37", "scanner": "scanner-primary", "fingerprint": "a26d523383784f1d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-24f816f4a2f18f85", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 deploy/shared/index-auth.js:73"}, "properties": {"repobilityId": "81c7503e74e985f7", "scanner": "scanner-primary", "fingerprint": "24f816f4a2f18f85", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ec86b4c7405cebbe", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 deploy/shared/actor-media-core.js:86"}, "properties": {"repobilityId": "328563e9be23e469", "scanner": "scanner-primary", "fingerprint": "ec86b4c7405cebbe", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-986851bcd41ca862", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 deploy/shared/admin-actors.js:403"}, "properties": {"repobilityId": "230ed1bae68c8b8c", "scanner": "scanner-primary", "fingerprint": "986851bcd41ca862", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-b3d970606bd89cd8", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 memory/_design_v2_archive/mobile/untitled/project/screens.jsx:997"}, "properties": {"repobilityId": "e39f82bec5ee34fa", "scanner": "scanner-primary", "fingerprint": "b3d970606bd89cd8", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-5c98ccd5b22c4af2", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 memory/_design_v2_archive/pc/screens.jsx:997"}, "properties": {"repobilityId": "12d86c963bcc25f3", "scanner": "scanner-primary", "fingerprint": "5c98ccd5b22c4af2", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-b266ec08c61031d9", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 memory/design_v3_caddie_pc/project/screens.jsx:997"}, "properties": {"repobilityId": "0614506d44a8010f", "scanner": "scanner-primary", "fingerprint": "b266ec08c61031d9", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-d63da3583b14afc0", "level": "warning", "message": {"text": "Dockerfile runs as root: Dockerfile"}, "properties": {"repobilityId": "a2ed1bd120e507db", "scanner": "scanner-primary", "fingerprint": "d63da3583b14afc0", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-e066691601852931", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.11-slim"}, "properties": {"repobilityId": "f391052c9bfd7e8b", "scanner": "scanner-primary", "fingerprint": "e066691601852931", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f2d6bbbcc11d28df", "level": "warning", "message": {"text": "Dockerfile runs as root: gpu-worker/Dockerfile"}, "properties": {"repobilityId": "e88020e074be12b3", "scanner": "scanner-primary", "fingerprint": "f2d6bbbcc11d28df", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-aeed7f937ccc7864", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: nvidia/cuda:12.2.2-runtime-ubuntu22.04"}, "properties": {"repobilityId": "0f608fb1df2444fa", "scanner": "scanner-primary", "fingerprint": "aeed7f937ccc7864", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "gpu-worker/Dockerfile"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-aa5acaa49eb8315b", "level": "note", "message": {"text": "Containers defined but no K8s/orchestration manifest found"}, "properties": {"repobilityId": "b230ea9b68736081", "scanner": "scanner-primary", "fingerprint": "aa5acaa49eb8315b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["coverage", "deployment"]}}, {"ruleId": "scanner-9710c8d059e53154", "level": "none", "message": {"text": "No frontend routes/components detected"}, "properties": {"repobilityId": "44ca61485762e494", "scanner": "scanner-primary", "fingerprint": "9710c8d059e53154", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-41dfaf6c78ef7c06", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in alarm.html:317"}, "properties": {"repobilityId": "73c2debc491298fa", "scanner": "scanner-primary", "fingerprint": "41dfaf6c78ef7c06", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "alarm.html"}, "region": {"startLine": 317}}}]}, {"ruleId": "scanner-26e5e6d3cc635449", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in actor.html:3721"}, "properties": {"repobilityId": "20e97fe09fbded7e", "scanner": "scanner-primary", "fingerprint": "26e5e6d3cc635449", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "actor.html"}, "region": {"startLine": 3721}}}]}, {"ruleId": "scanner-a6351c25ba70d1a6", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in actor.html:4087"}, "properties": {"repobilityId": "41107f4d2013ad24", "scanner": "scanner-primary", "fingerprint": "a6351c25ba70d1a6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "actor.html"}, "region": {"startLine": 4087}}}]}, {"ruleId": "scanner-48f2d5804b52ff65", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in index.html:2293"}, "properties": {"repobilityId": "f91708437a3a5445", "scanner": "scanner-primary", "fingerprint": "48f2d5804b52ff65", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "index.html"}, "region": {"startLine": 2293}}}]}, {"ruleId": "scanner-039c195aeb76eb41", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in demo-admin.html:235"}, "properties": {"repobilityId": "bfc94abaa802d6f6", "scanner": "scanner-primary", "fingerprint": "039c195aeb76eb41", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "demo-admin.html"}, "region": {"startLine": 235}}}]}, {"ruleId": "scanner-aa4942030ec76b8a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in pt-test.html:400"}, "properties": {"repobilityId": "b10aeccdbe4632b8", "scanner": "scanner-primary", "fingerprint": "aa4942030ec76b8a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pt-test.html"}, "region": {"startLine": 400}}}]}, {"ruleId": "scanner-2e76349e523c01d4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in admin.html:3133"}, "properties": {"repobilityId": "6ce12d2fb0d90b99", "scanner": "scanner-primary", "fingerprint": "2e76349e523c01d4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "admin.html"}, "region": {"startLine": 3133}}}]}, {"ruleId": "scanner-4c1a190bf4bbff29", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in caddie.html:3265"}, "properties": {"repobilityId": "726c751f615ec234", "scanner": "scanner-primary", "fingerprint": "4c1a190bf4bbff29", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "caddie.html"}, "region": {"startLine": 3265}}}]}, {"ruleId": "scanner-7645064e0c77ab63", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in caddie.html:4006"}, "properties": {"repobilityId": "8f5a7df6bda0e27e", "scanner": "scanner-primary", "fingerprint": "7645064e0c77ab63", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "caddie.html"}, "region": {"startLine": 4006}}}]}, {"ruleId": "scanner-8e98c9b9e2f72af0", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in caddie.html:4200"}, "properties": {"repobilityId": "3d2ebf3ef5e49f56", "scanner": "scanner-primary", "fingerprint": "8e98c9b9e2f72af0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "caddie.html"}, "region": {"startLine": 4200}}}]}, {"ruleId": "scanner-43af7ca39efb1dc1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in caddie_b044.html:3243"}, "properties": {"repobilityId": "205d7da619e06487", "scanner": "scanner-primary", "fingerprint": "43af7ca39efb1dc1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "caddie_b044.html"}, "region": {"startLine": 3243}}}]}, {"ruleId": "scanner-be20d31f28e5fab2", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in caddie_b044.html:3984"}, "properties": {"repobilityId": "53f755eaa5b50cff", "scanner": "scanner-primary", "fingerprint": "be20d31f28e5fab2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "caddie_b044.html"}, "region": {"startLine": 3984}}}]}, {"ruleId": "scanner-fc6cc31db7cbd436", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in caddie_b044.html:4173"}, "properties": {"repobilityId": "606f1926c47143d2", "scanner": "scanner-primary", "fingerprint": "fc6cc31db7cbd436", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "caddie_b044.html"}, "region": {"startLine": 4173}}}]}, {"ruleId": "scanner-1d13030874376f4b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in profile-tour.html:450"}, "properties": {"repobilityId": "c3507f7a16f86900", "scanner": "scanner-primary", "fingerprint": "1d13030874376f4b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "profile-tour.html"}, "region": {"startLine": 450}}}]}, {"ruleId": "scanner-f28b7be6a7c1f609", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in functions/api/download-video.js:33"}, "properties": {"repobilityId": "e2adb3ad2d423d84", "scanner": "scanner-primary", "fingerprint": "f28b7be6a7c1f609", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "functions/api/download-video.js"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-6a7c134a8d1a84f5", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in scripts/check_convert_jobs.sh:60"}, "properties": {"repobilityId": "accc139d363ea433", "scanner": "scanner-primary", "fingerprint": "6a7c134a8d1a84f5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/check_convert_jobs.sh"}, "region": {"startLine": 60}}}]}, {"ruleId": "scanner-964b69b0d4ea3483", "level": "note", "message": {"text": "Insecure pattern 'document_write' in deploy/share.html:4384"}, "properties": {"repobilityId": "07faf31ac6883ed6", "scanner": "scanner-primary", "fingerprint": "964b69b0d4ea3483", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/share.html"}, "region": {"startLine": 4384}}}]}, {"ruleId": "scanner-0fab69e96a99d6be", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/share.html:2054"}, "properties": {"repobilityId": "01427c0579637e44", "scanner": "scanner-primary", "fingerprint": "0fab69e96a99d6be", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/share.html"}, "region": {"startLine": 2054}}}]}, {"ruleId": "scanner-44c51cc437b5d35d", "level": "note", "message": {"text": "Insecure pattern 'document_write' in deploy/caddie-pc.html:5365"}, "properties": {"repobilityId": "2c31a9134c9d2817", "scanner": "scanner-primary", "fingerprint": "44c51cc437b5d35d", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/caddie-pc.html"}, "region": {"startLine": 5365}}}]}, {"ruleId": "scanner-c3b14a7188617bea", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/caddie-pc.html:1562"}, "properties": {"repobilityId": "d28c10bbb737a8f9", "scanner": "scanner-primary", "fingerprint": "c3b14a7188617bea", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/caddie-pc.html"}, "region": {"startLine": 1562}}}]}, {"ruleId": "scanner-4c1cee65730c7016", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/faq.html:314"}, "properties": {"repobilityId": "fad86fdcf34119be", "scanner": "scanner-primary", "fingerprint": "4c1cee65730c7016", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/faq.html"}, "region": {"startLine": 314}}}]}, {"ruleId": "scanner-f15d10e725db9996", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/profile-tour-v2.html:454"}, "properties": {"repobilityId": "bec49acbb2a5d3c3", "scanner": "scanner-primary", "fingerprint": "f15d10e725db9996", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/profile-tour-v2.html"}, "region": {"startLine": 454}}}]}, {"ruleId": "scanner-7a1334101718b15c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/actors.html:1717"}, "properties": {"repobilityId": "9d6843a7c51efd2a", "scanner": "scanner-primary", "fingerprint": "7a1334101718b15c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/actors.html"}, "region": {"startLine": 1717}}}]}, {"ruleId": "scanner-89f97cc021757a9a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/casting.html:714"}, "properties": {"repobilityId": "68f14df522c3b0a1", "scanner": "scanner-primary", "fingerprint": "89f97cc021757a9a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/casting.html"}, "region": {"startLine": 714}}}]}, {"ruleId": "scanner-f578d94fdaceaae1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/alarm.html:234"}, "properties": {"repobilityId": "64445cc512fbd7ce", "scanner": "scanner-primary", "fingerprint": "f578d94fdaceaae1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/alarm.html"}, "region": {"startLine": 234}}}]}, {"ruleId": "scanner-e2462816dc0f8bf5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/actor.html:2480"}, "properties": {"repobilityId": "9a16f3df0384d65b", "scanner": "scanner-primary", "fingerprint": "e2462816dc0f8bf5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/actor.html"}, "region": {"startLine": 2480}}}]}, {"ruleId": "scanner-351fa9852b8b786a", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in deploy/actor.html:9640"}, "properties": {"repobilityId": "9404e329e2284fd3", "scanner": "scanner-primary", "fingerprint": "351fa9852b8b786a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/actor.html"}, "region": {"startLine": 9640}}}]}, {"ruleId": "scanner-14f48bce9bed45a3", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in deploy/actor.html:5763"}, "properties": {"repobilityId": "3bd52b30c16de94e", "scanner": "scanner-primary", "fingerprint": "14f48bce9bed45a3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/actor.html"}, "region": {"startLine": 5763}}}]}, {"ruleId": "scanner-3b2e7cf3803d532d", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in deploy/actor.html:6833"}, "properties": {"repobilityId": "cf6c62d55439bec4", "scanner": "scanner-primary", "fingerprint": "3b2e7cf3803d532d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/actor.html"}, "region": {"startLine": 6833}}}]}, {"ruleId": "scanner-057856b6a854799c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/index.html:878"}, "properties": {"repobilityId": "7e747fc70ab2db86", "scanner": "scanner-primary", "fingerprint": "057856b6a854799c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/index.html"}, "region": {"startLine": 878}}}]}, {"ruleId": "scanner-12798323e0997de0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/caddie-mobile.html:1119"}, "properties": {"repobilityId": "ff9131435ae9eebf", "scanner": "scanner-primary", "fingerprint": "12798323e0997de0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/caddie-mobile.html"}, "region": {"startLine": 1119}}}]}, {"ruleId": "scanner-ee83f158db818bc3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/demo-admin.html:488"}, "properties": {"repobilityId": "2e7dd6043b6c6f63", "scanner": "scanner-primary", "fingerprint": "ee83f158db818bc3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/demo-admin.html"}, "region": {"startLine": 488}}}]}, {"ruleId": "scanner-7817fde2e76f7806", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/pt-test.html:400"}, "properties": {"repobilityId": "f8077f31a68fb438", "scanner": "scanner-primary", "fingerprint": "7817fde2e76f7806", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/pt-test.html"}, "region": {"startLine": 400}}}]}, {"ruleId": "scanner-916f258ec6a55f84", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/pt-test-v2.html:400"}, "properties": {"repobilityId": "3020f53f52d9746c", "scanner": "scanner-primary", "fingerprint": "916f258ec6a55f84", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/pt-test-v2.html"}, "region": {"startLine": 400}}}]}, {"ruleId": "scanner-a27c5e3137527307", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/admin.html:2081"}, "properties": {"repobilityId": "f231386e244ccb4e", "scanner": "scanner-primary", "fingerprint": "a27c5e3137527307", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/admin.html"}, "region": {"startLine": 2081}}}]}, {"ruleId": "scanner-113ecf4fad135d3c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/_patch5.js:99"}, "properties": {"repobilityId": "5490f1ff3f3ddfd0", "scanner": "scanner-primary", "fingerprint": "113ecf4fad135d3c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/_patch5.js"}, "region": {"startLine": 99}}}]}, {"ruleId": "scanner-edd16b3c9afcf032", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/home.html:1063"}, "properties": {"repobilityId": "e0269af68032c3cb", "scanner": "scanner-primary", "fingerprint": "edd16b3c9afcf032", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/home.html"}, "region": {"startLine": 1063}}}]}, {"ruleId": "scanner-a768a60e6d5ebf8f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/profile-tour.html:453"}, "properties": {"repobilityId": "cf7d293defe34ed4", "scanner": "scanner-primary", "fingerprint": "a768a60e6d5ebf8f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/profile-tour.html"}, "region": {"startLine": 453}}}]}, {"ruleId": "scanner-3335fdc92b01cf79", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in deploy/functions/api/download-video.js:48"}, "properties": {"repobilityId": "c4de5b227acd910f", "scanner": "scanner-primary", "fingerprint": "3335fdc92b01cf79", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/functions/api/download-video.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-20a1dd5b906fdf5d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/markers.js:107"}, "properties": {"repobilityId": "ace2b50a996b3e35", "scanner": "scanner-primary", "fingerprint": "20a1dd5b906fdf5d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/markers.js"}, "region": {"startLine": 107}}}]}, {"ruleId": "scanner-2078e9c71b51b7be", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in deploy/shared/markers.js:205"}, "properties": {"repobilityId": "36462886676a12e6", "scanner": "scanner-primary", "fingerprint": "2078e9c71b51b7be", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/markers.js"}, "region": {"startLine": 205}}}]}, {"ruleId": "scanner-3a66c15fefefd428", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/html-to-image.js:1"}, "properties": {"repobilityId": "26ce8662a4cf960c", "scanner": "scanner-primary", "fingerprint": "3a66c15fefefd428", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/html-to-image.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ebb7a3a77f45c993", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/calendar-view.js:144"}, "properties": {"repobilityId": "64e2136105498e80", "scanner": "scanner-primary", "fingerprint": "ebb7a3a77f45c993", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/calendar-view.js"}, "region": {"startLine": 144}}}]}, {"ruleId": "scanner-fdcc82c5b684b230", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/notifications-v1.js:112"}, "properties": {"repobilityId": "e2c5d4c5f0e5e8c1", "scanner": "scanner-primary", "fingerprint": "fdcc82c5b684b230", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/notifications-v1.js"}, "region": {"startLine": 112}}}]}, {"ruleId": "scanner-9e40785d91af4f6a", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in deploy/shared/auth-core.js:110"}, "properties": {"repobilityId": "3f050c655cb01098", "scanner": "scanner-primary", "fingerprint": "9e40785d91af4f6a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/auth-core.js"}, "region": {"startLine": 110}}}]}, {"ruleId": "scanner-32e04a2b95f6a350", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/admin-content.js:111"}, "properties": {"repobilityId": "827bc3c68c0730a5", "scanner": "scanner-primary", "fingerprint": "32e04a2b95f6a350", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/admin-content.js"}, "region": {"startLine": 111}}}]}, {"ruleId": "scanner-9dd27c5454a08d78", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/recommended-medal.js:64"}, "properties": {"repobilityId": "0cf3950409554c06", "scanner": "scanner-primary", "fingerprint": "9dd27c5454a08d78", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/recommended-medal.js"}, "region": {"startLine": 64}}}]}, {"ruleId": "scanner-1af4eae73d5b1624", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in deploy/shared/recommended-medal.js:13"}, "properties": {"repobilityId": "1d7841cc402953eb", "scanner": "scanner-primary", "fingerprint": "1af4eae73d5b1624", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/recommended-medal.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-99b5267dd5910c78", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/actor-auth.js:284"}, "properties": {"repobilityId": "41877ed6bd7c377c", "scanner": "scanner-primary", "fingerprint": "99b5267dd5910c78", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/actor-auth.js"}, "region": {"startLine": 284}}}]}, {"ruleId": "scanner-c0f64f79dc92542a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/actor-jobs-actions.js:86"}, "properties": {"repobilityId": "8c04300981d63579", "scanner": "scanner-primary", "fingerprint": "c0f64f79dc92542a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/actor-jobs-actions.js"}, "region": {"startLine": 86}}}]}, {"ruleId": "scanner-25f405b7c94f4e19", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/mobile-career.js:114"}, "properties": {"repobilityId": "1b4a7f70097fe7f5", "scanner": "scanner-primary", "fingerprint": "25f405b7c94f4e19", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/mobile-career.js"}, "region": {"startLine": 114}}}]}, {"ruleId": "scanner-59167e2004caf604", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/bucket-view.js:57"}, "properties": {"repobilityId": "8b411636edd1c36e", "scanner": "scanner-primary", "fingerprint": "59167e2004caf604", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/bucket-view.js"}, "region": {"startLine": 57}}}]}, {"ruleId": "scanner-6b51729a939ee5ae", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/grid-view.js:309"}, "properties": {"repobilityId": "d2f12a64004f3ea2", "scanner": "scanner-primary", "fingerprint": "6b51729a939ee5ae", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/grid-view.js"}, "region": {"startLine": 309}}}]}, {"ruleId": "scanner-0fa3909a1acc4482", "level": "error", "message": {"text": "Possible secret in deploy/shared/chat-firestore.js"}, "properties": {"repobilityId": "655b193ebd8596ba", "scanner": "scanner-primary", "fingerprint": "0fa3909a1acc4482", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/chat-firestore.js"}, "region": {"startLine": 52}}}]}, {"ruleId": "scanner-69b40f1e5d324da4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/actor-schedule.js:87"}, "properties": {"repobilityId": "39e1deea133d7b35", "scanner": "scanner-primary", "fingerprint": "69b40f1e5d324da4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/actor-schedule.js"}, "region": {"startLine": 87}}}]}, {"ruleId": "scanner-a841c0164b2d2661", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/auth.js:93"}, "properties": {"repobilityId": "f28745719d6b6861", "scanner": "scanner-primary", "fingerprint": "a841c0164b2d2661", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/auth.js"}, "region": {"startLine": 93}}}]}, {"ruleId": "scanner-73cdbda418debecd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/casting-view.js:354"}, "properties": {"repobilityId": "a3c284aae0aae491", "scanner": "scanner-primary", "fingerprint": "73cdbda418debecd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/casting-view.js"}, "region": {"startLine": 354}}}]}, {"ruleId": "scanner-c7518626c37add19", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/job-form.js:82"}, "properties": {"repobilityId": "06f4ae56a76df6fc", "scanner": "scanner-primary", "fingerprint": "c7518626c37add19", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/job-form.js"}, "region": {"startLine": 82}}}]}, {"ruleId": "scanner-f4722f613a070027", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/caddie-business-card.js:165"}, "properties": {"repobilityId": "7f9da0842919c605", "scanner": "scanner-primary", "fingerprint": "f4722f613a070027", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/caddie-business-card.js"}, "region": {"startLine": 165}}}]}, {"ruleId": "scanner-434fa463377ce0fb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/admin-auth.js:175"}, "properties": {"repobilityId": "af61c30e4191220c", "scanner": "scanner-primary", "fingerprint": "434fa463377ce0fb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/admin-auth.js"}, "region": {"startLine": 175}}}]}, {"ruleId": "scanner-a330312ad5f241d9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/settlement.js:111"}, "properties": {"repobilityId": "4da71fc68f0d7a54", "scanner": "scanner-primary", "fingerprint": "a330312ad5f241d9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/settlement.js"}, "region": {"startLine": 111}}}]}, {"ruleId": "scanner-c2fef58bd5fc75be", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in deploy/shared/settlement.js:402"}, "properties": {"repobilityId": "26c08ad8d518167b", "scanner": "scanner-primary", "fingerprint": "c2fef58bd5fc75be", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/settlement.js"}, "region": {"startLine": 402}}}]}, {"ruleId": "scanner-95fa1b1c738ffd94", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/my-info.js:82"}, "properties": {"repobilityId": "cce8297049a8d212", "scanner": "scanner-primary", "fingerprint": "95fa1b1c738ffd94", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/my-info.js"}, "region": {"startLine": 82}}}]}, {"ruleId": "scanner-1cdaa0ea40b670b6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/actor-popup.js:198"}, "properties": {"repobilityId": "5bc396d8b4901cce", "scanner": "scanner-primary", "fingerprint": "1cdaa0ea40b670b6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/actor-popup.js"}, "region": {"startLine": 198}}}]}, {"ruleId": "scanner-fe0d58bbed61beed", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/actor-media-video-cancel.js:53"}, "properties": {"repobilityId": "2d7b504bee664860", "scanner": "scanner-primary", "fingerprint": "fe0d58bbed61beed", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/actor-media-video-cancel.js"}, "region": {"startLine": 53}}}]}, {"ruleId": "scanner-0bba3ae06f36d037", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/admin-caddies.js:98"}, "properties": {"repobilityId": "91be42691b846daf", "scanner": "scanner-primary", "fingerprint": "0bba3ae06f36d037", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/admin-caddies.js"}, "region": {"startLine": 98}}}]}, {"ruleId": "scanner-c5eb586a71ddf979", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/cropper.min.js:10"}, "properties": {"repobilityId": "6b93cf3c87382f09", "scanner": "scanner-primary", "fingerprint": "c5eb586a71ddf979", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/cropper.min.js"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-94480eb8d2046215", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/actor-media-video-transcode.js:242"}, "properties": {"repobilityId": "b01c319c64a83128", "scanner": "scanner-primary", "fingerprint": "94480eb8d2046215", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/actor-media-video-transcode.js"}, "region": {"startLine": 242}}}]}, {"ruleId": "scanner-5e3c377a6a29746a", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in deploy/shared/actor-media-video-transcode.js:197"}, "properties": {"repobilityId": "076e971cdd02fb77", "scanner": "scanner-primary", "fingerprint": "5e3c377a6a29746a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/actor-media-video-transcode.js"}, "region": {"startLine": 197}}}]}, {"ruleId": "scanner-a78264d5f8f7a5f9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/actor-membership.js:274"}, "properties": {"repobilityId": "75fe17fc8209d534", "scanner": "scanner-primary", "fingerprint": "a78264d5f8f7a5f9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/actor-membership.js"}, "region": {"startLine": 274}}}]}, {"ruleId": "scanner-1698548d121c1aeb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/admin-films.js:102"}, "properties": {"repobilityId": "74b53af431a48d7c", "scanner": "scanner-primary", "fingerprint": "1698548d121c1aeb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/admin-films.js"}, "region": {"startLine": 102}}}]}, {"ruleId": "scanner-64faf13bd5b6b569", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/actor-jobs-view.js:178"}, "properties": {"repobilityId": "274985c7b16ff862", "scanner": "scanner-primary", "fingerprint": "64faf13bd5b6b569", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/actor-jobs-view.js"}, "region": {"startLine": 178}}}]}, {"ruleId": "scanner-469ac46860055778", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/share-link-modal.js:209"}, "properties": {"repobilityId": "183a891a387b279a", "scanner": "scanner-primary", "fingerprint": "469ac46860055778", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/share-link-modal.js"}, "region": {"startLine": 209}}}]}, {"ruleId": "scanner-ecfc7fdc7f97caaa", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/caddie-auth.js:165"}, "properties": {"repobilityId": "ff5c2cc162d1c348", "scanner": "scanner-primary", "fingerprint": "ecfc7fdc7f97caaa", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/caddie-auth.js"}, "region": {"startLine": 165}}}]}, {"ruleId": "scanner-128ded44475747d8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/feedback-utils.js:67"}, "properties": {"repobilityId": "eb501c5f37e09c7a", "scanner": "scanner-primary", "fingerprint": "128ded44475747d8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/feedback-utils.js"}, "region": {"startLine": 67}}}]}, {"ruleId": "scanner-b4eff309e2db1f15", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/chat-floating.js:76"}, "properties": {"repobilityId": "ee03fafc8ef5a8ef", "scanner": "scanner-primary", "fingerprint": "b4eff309e2db1f15", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/chat-floating.js"}, "region": {"startLine": 76}}}]}, {"ruleId": "scanner-96bc2800b69aa953", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/temperature.js:161"}, "properties": {"repobilityId": "ccd8c39a5a8eb413", "scanner": "scanner-primary", "fingerprint": "96bc2800b69aa953", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/temperature.js"}, "region": {"startLine": 161}}}]}, {"ruleId": "scanner-db3bcfafaa37f6ab", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in deploy/shared/jszip.min.js:13"}, "properties": {"repobilityId": "4cd58c9b59eeec0f", "scanner": "scanner-primary", "fingerprint": "db3bcfafaa37f6ab", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/jszip.min.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-8504bb06f2f5c858", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/actor-audition-view.js:199"}, "properties": {"repobilityId": "a7382755f949d36f", "scanner": "scanner-primary", "fingerprint": "8504bb06f2f5c858", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/actor-audition-view.js"}, "region": {"startLine": 199}}}]}, {"ruleId": "scanner-3a22b6283975a70b", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in deploy/shared/actor-audition-view.js:119"}, "properties": {"repobilityId": "08001d5f3cdd72ea", "scanner": "scanner-primary", "fingerprint": "3a22b6283975a70b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/actor-audition-view.js"}, "region": {"startLine": 119}}}]}, {"ruleId": "scanner-91fddcaf0acffc49", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/alarm-view.js:213"}, "properties": {"repobilityId": "09b8a8950465a921", "scanner": "scanner-primary", "fingerprint": "91fddcaf0acffc49", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/alarm-view.js"}, "region": {"startLine": 213}}}]}, {"ruleId": "scanner-daee7dbdc0c6326d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/admin-stats.js:113"}, "properties": {"repobilityId": "6907f7eaeadf0dc2", "scanner": "scanner-primary", "fingerprint": "daee7dbdc0c6326d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/admin-stats.js"}, "region": {"startLine": 113}}}]}, {"ruleId": "scanner-5ee4b24f4508a24d", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in deploy/shared/feedback-center.js:128"}, "properties": {"repobilityId": "f530348406a67cfd", "scanner": "scanner-primary", "fingerprint": "5ee4b24f4508a24d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/feedback-center.js"}, "region": {"startLine": 128}}}]}, {"ruleId": "scanner-c515e210b16a756c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/chat-ui-v2.js:280"}, "properties": {"repobilityId": "c97ec119d94ef422", "scanner": "scanner-primary", "fingerprint": "c515e210b16a756c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/chat-ui-v2.js"}, "region": {"startLine": 280}}}]}, {"ruleId": "scanner-34bdba6b9fc65235", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/mobile-photos.js:190"}, "properties": {"repobilityId": "b9ffc893084ecf14", "scanner": "scanner-primary", "fingerprint": "34bdba6b9fc65235", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/mobile-photos.js"}, "region": {"startLine": 190}}}]}, {"ruleId": "scanner-8c3a70ca43440128", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/audition.js:108"}, "properties": {"repobilityId": "0cd72492c23e8755", "scanner": "scanner-primary", "fingerprint": "8c3a70ca43440128", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/audition.js"}, "region": {"startLine": 108}}}]}, {"ruleId": "scanner-2a5c16b5f46f99f4", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in deploy/shared/audition.js:373"}, "properties": {"repobilityId": "5533f1908615914f", "scanner": "scanner-primary", "fingerprint": "2a5c16b5f46f99f4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/audition.js"}, "region": {"startLine": 373}}}]}, {"ruleId": "scanner-346324716a20eb43", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/job-detail.js:415"}, "properties": {"repobilityId": "4b341f1d71cb1bf9", "scanner": "scanner-primary", "fingerprint": "346324716a20eb43", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/job-detail.js"}, "region": {"startLine": 415}}}]}, {"ruleId": "scanner-df3e9a722c729449", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/index-auth.js:284"}, "properties": {"repobilityId": "5f09250e2f075ab3", "scanner": "scanner-primary", "fingerprint": "df3e9a722c729449", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/index-auth.js"}, "region": {"startLine": 284}}}]}, {"ruleId": "scanner-1b3e71309158693e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/admin-actors.js:248"}, "properties": {"repobilityId": "e76dab7803f5c33f", "scanner": "scanner-primary", "fingerprint": "1b3e71309158693e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/admin-actors.js"}, "region": {"startLine": 248}}}]}, {"ruleId": "scanner-b3f6f85ae7d3de3f", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in deploy/shared/admin-actors.js:450"}, "properties": {"repobilityId": "ba97abaef08e62e0", "scanner": "scanner-primary", "fingerprint": "b3f6f85ae7d3de3f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/admin-actors.js"}, "region": {"startLine": 450}}}]}, {"ruleId": "scanner-98f4568f9177c7d0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/playback.js:108"}, "properties": {"repobilityId": "bfd5ee7009b4d5cd", "scanner": "scanner-primary", "fingerprint": "98f4568f9177c7d0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/playback.js"}, "region": {"startLine": 108}}}]}, {"ruleId": "scanner-a13b6bb17d4bd0e6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/jobs-view.js:175"}, "properties": {"repobilityId": "0f199eb7615f3057", "scanner": "scanner-primary", "fingerprint": "a13b6bb17d4bd0e6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/jobs-view.js"}, "region": {"startLine": 175}}}]}, {"ruleId": "scanner-696281cf6c0d7673", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/admin-payments.js:172"}, "properties": {"repobilityId": "2b150b966328cc13", "scanner": "scanner-primary", "fingerprint": "696281cf6c0d7673", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/admin-payments.js"}, "region": {"startLine": 172}}}]}, {"ruleId": "scanner-6baa1c1c3e0a39d5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/shared/actor-media-video-init.js:52"}, "properties": {"repobilityId": "0e1b064c2cdad45f", "scanner": "scanner-primary", "fingerprint": "6baa1c1c3e0a39d5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/shared/actor-media-video-init.js"}, "region": {"startLine": 52}}}]}, {"ruleId": "scanner-7385a5bdcff4db12", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in deploy/legacy-archive/caddie.html:3266"}, "properties": {"repobilityId": "258d3dad0ae7091e", "scanner": "scanner-primary", "fingerprint": "7385a5bdcff4db12", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/legacy-archive/caddie.html"}, "region": {"startLine": 3266}}}]}, {"ruleId": "scanner-b05005428f63ff94", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in deploy/legacy-archive/caddie.html:4007"}, "properties": {"repobilityId": "9ba2f1aebe2facb5", "scanner": "scanner-primary", "fingerprint": "b05005428f63ff94", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/legacy-archive/caddie.html"}, "region": {"startLine": 4007}}}]}, {"ruleId": "scanner-242a3497a024c9c0", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in deploy/legacy-archive/caddie.html:4201"}, "properties": {"repobilityId": "f60cc19f631672b0", "scanner": "scanner-primary", "fingerprint": "242a3497a024c9c0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "deploy/legacy-archive/caddie.html"}, "region": {"startLine": 4201}}}]}, {"ruleId": "scanner-c55212ac8dd02d97", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in backups/b019_caddie.html:3153"}, "properties": {"repobilityId": "98e2fd7bf1db725d", "scanner": "scanner-primary", "fingerprint": "c55212ac8dd02d97", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b019_caddie.html"}, "region": {"startLine": 3153}}}]}, {"ruleId": "scanner-1a936ddd9dc003d2", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in backups/b019_caddie.html:3894"}, "properties": {"repobilityId": "3554dd9f335fba94", "scanner": "scanner-primary", "fingerprint": "1a936ddd9dc003d2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b019_caddie.html"}, "region": {"startLine": 3894}}}]}, {"ruleId": "scanner-72db30edc7d60ecd", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in backups/b019_caddie.html:4083"}, "properties": {"repobilityId": "4783f83a2d720eeb", "scanner": "scanner-primary", "fingerprint": "72db30edc7d60ecd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b019_caddie.html"}, "region": {"startLine": 4083}}}]}, {"ruleId": "scanner-ed26d998e65a7e8f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in backups/b041_caddie.html:3243"}, "properties": {"repobilityId": "d870db1058c30b0f", "scanner": "scanner-primary", "fingerprint": "ed26d998e65a7e8f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b041_caddie.html"}, "region": {"startLine": 3243}}}]}, {"ruleId": "scanner-d43890e56bdc744c", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in backups/b041_caddie.html:3984"}, "properties": {"repobilityId": "713f923ab81d3bb9", "scanner": "scanner-primary", "fingerprint": "d43890e56bdc744c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b041_caddie.html"}, "region": {"startLine": 3984}}}]}, {"ruleId": "scanner-4915cdedab5f3c25", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in backups/b041_caddie.html:4173"}, "properties": {"repobilityId": "8a281b5ae3136eff", "scanner": "scanner-primary", "fingerprint": "4915cdedab5f3c25", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b041_caddie.html"}, "region": {"startLine": 4173}}}]}, {"ruleId": "scanner-3c3b0a73d71386f4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in backups/b041_actor.html:3246"}, "properties": {"repobilityId": "aa9627b672ae25f5", "scanner": "scanner-primary", "fingerprint": "3c3b0a73d71386f4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b041_actor.html"}, "region": {"startLine": 3246}}}]}, {"ruleId": "scanner-2827e23475cdd1be", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in backups/b041_actor.html:8993"}, "properties": {"repobilityId": "64c6c434c2056c52", "scanner": "scanner-primary", "fingerprint": "2827e23475cdd1be", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b041_actor.html"}, "region": {"startLine": 8993}}}]}, {"ruleId": "scanner-44c2e3d5053172e1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in backups/b037_actor.html:3246"}, "properties": {"repobilityId": "65cc4c1b8ab5a194", "scanner": "scanner-primary", "fingerprint": "44c2e3d5053172e1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b037_actor.html"}, "region": {"startLine": 3246}}}]}, {"ruleId": "scanner-c8f224413ef2c993", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in backups/b037_actor.html:8986"}, "properties": {"repobilityId": "0d3050b0f67e25a0", "scanner": "scanner-primary", "fingerprint": "c8f224413ef2c993", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b037_actor.html"}, "region": {"startLine": 8986}}}]}, {"ruleId": "scanner-0eddb9043e497e99", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in backups/b019_admin.html:3003"}, "properties": {"repobilityId": "13e0cf25138a8019", "scanner": "scanner-primary", "fingerprint": "0eddb9043e497e99", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b019_admin.html"}, "region": {"startLine": 3003}}}]}, {"ruleId": "scanner-88347ab2ba1214d6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in backups/b043_caddie.html:3243"}, "properties": {"repobilityId": "e5de3bde63379858", "scanner": "scanner-primary", "fingerprint": "88347ab2ba1214d6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b043_caddie.html"}, "region": {"startLine": 3243}}}]}, {"ruleId": "scanner-f1a379fe186bc900", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in backups/b043_caddie.html:3984"}, "properties": {"repobilityId": "39d0fddbe91014bd", "scanner": "scanner-primary", "fingerprint": "f1a379fe186bc900", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b043_caddie.html"}, "region": {"startLine": 3984}}}]}, {"ruleId": "scanner-2c63158b3e95938e", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in backups/b043_caddie.html:4173"}, "properties": {"repobilityId": "113905ec69ae2b96", "scanner": "scanner-primary", "fingerprint": "2c63158b3e95938e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b043_caddie.html"}, "region": {"startLine": 4173}}}]}, {"ruleId": "scanner-0a01f4f2205cf038", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in backups/b020_actor.html:3245"}, "properties": {"repobilityId": "b5b944a4d4d4dd46", "scanner": "scanner-primary", "fingerprint": "0a01f4f2205cf038", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b020_actor.html"}, "region": {"startLine": 3245}}}]}, {"ruleId": "scanner-828740bf5713b9f8", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in backups/b020_actor.html:8682"}, "properties": {"repobilityId": "044b2332cc399abf", "scanner": "scanner-primary", "fingerprint": "828740bf5713b9f8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b020_actor.html"}, "region": {"startLine": 8682}}}]}, {"ruleId": "scanner-30efb5303b58e503", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in backups/b043_admin.html:3003"}, "properties": {"repobilityId": "06a9e8bb71942d05", "scanner": "scanner-primary", "fingerprint": "30efb5303b58e503", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b043_admin.html"}, "region": {"startLine": 3003}}}]}, {"ruleId": "scanner-9d8fe7b8d4b3429c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in backups/b043_actor.html:3246"}, "properties": {"repobilityId": "f3b0cfe42e7322f3", "scanner": "scanner-primary", "fingerprint": "9d8fe7b8d4b3429c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b043_actor.html"}, "region": {"startLine": 3246}}}]}, {"ruleId": "scanner-363f19fec4d47eef", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in backups/b043_actor.html:8995"}, "properties": {"repobilityId": "63d7f466530f8ab6", "scanner": "scanner-primary", "fingerprint": "363f19fec4d47eef", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b043_actor.html"}, "region": {"startLine": 8995}}}]}, {"ruleId": "scanner-61fd090e3482ec3c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in backups/b021_actor.html:3246"}, "properties": {"repobilityId": "8ac1426262ed104c", "scanner": "scanner-primary", "fingerprint": "61fd090e3482ec3c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b021_actor.html"}, "region": {"startLine": 3246}}}]}, {"ruleId": "scanner-0d10d831e49ff5f6", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in backups/b021_actor.html:8750"}, "properties": {"repobilityId": "56ccb27a6139ff7a", "scanner": "scanner-primary", "fingerprint": "0d10d831e49ff5f6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b021_actor.html"}, "region": {"startLine": 8750}}}]}, {"ruleId": "scanner-bced14e88a6674da", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in backups/b019_actor.html:3244"}, "properties": {"repobilityId": "d2b4d156574f3b70", "scanner": "scanner-primary", "fingerprint": "bced14e88a6674da", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b019_actor.html"}, "region": {"startLine": 3244}}}]}, {"ruleId": "scanner-3f36be517a9cfa4f", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in backups/b019_actor.html:8681"}, "properties": {"repobilityId": "1b0df65e7da7a227", "scanner": "scanner-primary", "fingerprint": "3f36be517a9cfa4f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b019_actor.html"}, "region": {"startLine": 8681}}}]}, {"ruleId": "scanner-eb5b4a4cd81ac97d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in backups/b034_caddie.html:3242"}, "properties": {"repobilityId": "15e9a68b246d5fb8", "scanner": "scanner-primary", "fingerprint": "eb5b4a4cd81ac97d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b034_caddie.html"}, "region": {"startLine": 3242}}}]}, {"ruleId": "scanner-7913763dcfaf5603", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in backups/b034_caddie.html:3983"}, "properties": {"repobilityId": "99fb17cd0efeafb2", "scanner": "scanner-primary", "fingerprint": "7913763dcfaf5603", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b034_caddie.html"}, "region": {"startLine": 3983}}}]}, {"ruleId": "scanner-f9e7971120a8bafe", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in backups/b034_caddie.html:4172"}, "properties": {"repobilityId": "0de062e330c096cb", "scanner": "scanner-primary", "fingerprint": "f9e7971120a8bafe", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b034_caddie.html"}, "region": {"startLine": 4172}}}]}, {"ruleId": "scanner-f0f9aef010ba73b6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in backups/b035_caddie.html:3242"}, "properties": {"repobilityId": "9af19820110f221e", "scanner": "scanner-primary", "fingerprint": "f0f9aef010ba73b6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b035_caddie.html"}, "region": {"startLine": 3242}}}]}, {"ruleId": "scanner-57bd35942b4b2702", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in backups/b035_caddie.html:3983"}, "properties": {"repobilityId": "5cd68bc9af147a14", "scanner": "scanner-primary", "fingerprint": "57bd35942b4b2702", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b035_caddie.html"}, "region": {"startLine": 3983}}}]}, {"ruleId": "scanner-2f4494bbfb84b196", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in backups/b035_caddie.html:4172"}, "properties": {"repobilityId": "7f5b138f9db077f9", "scanner": "scanner-primary", "fingerprint": "2f4494bbfb84b196", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b035_caddie.html"}, "region": {"startLine": 4172}}}]}, {"ruleId": "scanner-66ca84e4c20b5eee", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in backups/b037_caddie.html:3243"}, "properties": {"repobilityId": "bfa0b0dac9d0bc5f", "scanner": "scanner-primary", "fingerprint": "66ca84e4c20b5eee", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b037_caddie.html"}, "region": {"startLine": 3243}}}]}, {"ruleId": "scanner-161eadd9a5ee5691", "level": "warning", "message": {"text": "Insecure pattern 'direct_outerhtml_assignment' in backups/b037_caddie.html:3984"}, "properties": {"repobilityId": "d8cf27e7bd480c3f", "scanner": "scanner-primary", "fingerprint": "161eadd9a5ee5691", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_outerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b037_caddie.html"}, "region": {"startLine": 3984}}}]}, {"ruleId": "scanner-80f09a6b60290ef2", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in backups/b037_caddie.html:4173"}, "properties": {"repobilityId": "05c024299d09ccd4", "scanner": "scanner-primary", "fingerprint": "80f09a6b60290ef2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b037_caddie.html"}, "region": {"startLine": 4173}}}]}, {"ruleId": "scanner-6adc7db52280de2a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in backups/b041_admin.html:3003"}, "properties": {"repobilityId": "064565b9be5a69cc", "scanner": "scanner-primary", "fingerprint": "6adc7db52280de2a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backups/b041_admin.html"}, "region": {"startLine": 3003}}}]}, {"ruleId": "scanner-f9818c745fdf8f2a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in memory/replay_homepage_design_v1.html:1162"}, "properties": {"repobilityId": "8aaf9f602807e3e9", "scanner": "scanner-primary", "fingerprint": "f9818c745fdf8f2a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "memory/replay_homepage_design_v1.html"}, "region": {"startLine": 1162}}}]}, {"ruleId": "scanner-4c824d19ff1b0b57", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in memory/_design_v2_archive/mobile/untitled/project/screens.jsx:997"}, "properties": {"repobilityId": "839cc82a8efbe1a7", "scanner": "scanner-primary", "fingerprint": "4c824d19ff1b0b57", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "memory/_design_v2_archive/mobile/untitled/project/screens.jsx"}, "region": {"startLine": 997}}}]}, {"ruleId": "scanner-aeea1c42625f1825", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in memory/_design_v2_archive/pc/screens.jsx:997"}, "properties": {"repobilityId": "4272126212079d12", "scanner": "scanner-primary", "fingerprint": "aeea1c42625f1825", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "memory/_design_v2_archive/pc/screens.jsx"}, "region": {"startLine": 997}}}]}, {"ruleId": "scanner-b400a0504ffbdaa9", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in memory/design_v3_caddie_pc/project/screens.jsx:997"}, "properties": {"repobilityId": "daed7bc89b38e71e", "scanner": "scanner-primary", "fingerprint": "b400a0504ffbdaa9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "memory/design_v3_caddie_pc/project/screens.jsx"}, "region": {"startLine": 997}}}]}, {"ruleId": "scanner-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-3ce960fcb8b68798", "level": "note", "message": {"text": "Very large file: main_final.py (1428 lines)"}, "properties": {"repobilityId": "ac1baa357913170a", "scanner": "scanner-primary", "fingerprint": "3ce960fcb8b68798", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a69045af2791eb19", "level": "note", "message": {"text": "Very large file: models.py (2439 lines)"}, "properties": {"repobilityId": "f9d250461a08d929", "scanner": "scanner-primary", "fingerprint": "a69045af2791eb19", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f20e30bb4a0168aa", "level": "note", "message": {"text": "Very large file: deploy/shared/home-card.js (1015 lines)"}, "properties": {"repobilityId": "69ac6f5b4d501415", "scanner": "scanner-primary", "fingerprint": "f20e30bb4a0168aa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4dbba3e26ce620fe", "level": "note", "message": {"text": "Very large file: deploy/shared/job-form.js (1459 lines)"}, "properties": {"repobilityId": "7b15bd9117cd8454", "scanner": "scanner-primary", "fingerprint": "4dbba3e26ce620fe", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-edf96ac1336012b9", "level": "note", "message": {"text": "Very large file: deploy/shared/chat-ui-v2.js (1458 lines)"}, "properties": {"repobilityId": "98b7260a55ac70ce", "scanner": "scanner-primary", "fingerprint": "edf96ac1336012b9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5fbeb45bc1d32838", "level": "note", "message": {"text": "Very large file: deploy/shared/job-card.js (2105 lines)"}, "properties": {"repobilityId": "b4939499219db533", "scanner": "scanner-primary", "fingerprint": "5fbeb45bc1d32838", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1305794704df13f3", "level": "note", "message": {"text": "Very large file: deploy/shared/job-detail.js (887 lines)"}, "properties": {"repobilityId": "df77251e232eac88", "scanner": "scanner-primary", "fingerprint": "1305794704df13f3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-65f8bac8ed868485", "level": "note", "message": {"text": "Very large file: backups/b036_models.py (1009 lines)"}, "properties": {"repobilityId": "40209cafd9aeeb07", "scanner": "scanner-primary", "fingerprint": "65f8bac8ed868485", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-733bbbe85e285a98", "level": "note", "message": {"text": "Very large file: backups/b035_main.py (5581 lines)"}, "properties": {"repobilityId": "7d0a7f978385cdd7", "scanner": "scanner-primary", "fingerprint": "733bbbe85e285a98", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e2d5b5ddc197decb", "level": "note", "message": {"text": "Very large file: backups/b037_main.py (5712 lines)"}, "properties": {"repobilityId": "3aa6680f812e2bc4", "scanner": "scanner-primary", "fingerprint": "e2d5b5ddc197decb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e6bbee65742a5fc4", "level": "note", "message": {"text": "Very large file: backups/b020_main.py (4908 lines)"}, "properties": {"repobilityId": "b86347b8260ac29c", "scanner": "scanner-primary", "fingerprint": "e6bbee65742a5fc4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-23ca2b40f3b9288d", "level": "note", "message": {"text": "Very large file: backups/b041_main.py (5795 lines)"}, "properties": {"repobilityId": "6e1610e5a2718521", "scanner": "scanner-primary", "fingerprint": "23ca2b40f3b9288d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-86e6da4395e19c51", "level": "note", "message": {"text": "Very large file: backups/b037_models.py (1009 lines)"}, "properties": {"repobilityId": "af0f8fb11db521e2", "scanner": "scanner-primary", "fingerprint": "86e6da4395e19c51", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8d51db88a7135c4d", "level": "note", "message": {"text": "Very large file: backups/b036_main.py (5703 lines)"}, "properties": {"repobilityId": "dad3f776f4fc1eef", "scanner": "scanner-primary", "fingerprint": "8d51db88a7135c4d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0eea255a6c73a3fb", "level": "note", "message": {"text": "Very large file: backups/b019_main.py (4908 lines)"}, "properties": {"repobilityId": "124d43ffa609aff6", "scanner": "scanner-primary", "fingerprint": "0eea255a6c73a3fb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9527735bdc307fb7", "level": "note", "message": {"text": "Very large file: backups/b021_main.py (5018 lines)"}, "properties": {"repobilityId": "08c943e113f20aae", "scanner": "scanner-primary", "fingerprint": "9527735bdc307fb7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-691ca9b311e79b3b", "level": "note", "message": {"text": "Very large file: backups/b034_main.py (5581 lines)"}, "properties": {"repobilityId": "c9e6c66e48e138a3", "scanner": "scanner-primary", "fingerprint": "691ca9b311e79b3b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-231f5dc734d35ced", "level": "note", "message": {"text": "Very large file: backups/b043_main.py (5848 lines)"}, "properties": {"repobilityId": "a8774cf33618c883", "scanner": "scanner-primary", "fingerprint": "231f5dc734d35ced", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4d8db5c34924bba5", "level": "note", "message": {"text": "Very large file: memory/_design_v2_archive/mobile/untitled/project/screens.jsx (1253 lines)"}, "properties": {"repobilityId": "9bd016c1133dbca3", "scanner": "scanner-primary", "fingerprint": "4d8db5c34924bba5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-85c46e7514434fc9", "level": "note", "message": {"text": "Very large file: memory/_design_v2_archive/pc/screens.jsx (1253 lines)"}, "properties": {"repobilityId": "cae7d56dc01f0141", "scanner": "scanner-primary", "fingerprint": "85c46e7514434fc9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-099a3e99c2b55c47", "level": "note", "message": {"text": "Very large file: memory/design_v3_caddie_pc/project/screens.jsx (1253 lines)"}, "properties": {"repobilityId": "39d8ec3f5c37fc46", "scanner": "scanner-primary", "fingerprint": "099a3e99c2b55c47", "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": "986cb47dec7b1d1a", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-01f96f71d9907a8c", "level": "note", "message": {"text": "README lacks setup or run instructions"}, "properties": {"repobilityId": "083ea90d743b268d", "scanner": "scanner-primary", "fingerprint": "01f96f71d9907a8c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["docs", "readme", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "ad79b67a73bcd1a2", "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": "8d219000dc43d3f9", "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": "a6eef6ab2942c02d", "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": "warning", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "c965e893f63606b7", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "a8ee0fb59817529a", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "c3a1126d0472d661", "scanner": "scanner-primary", "fingerprint": "ea8f3013f588db25", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-8424db9c75e04ba4", "level": "none", "message": {"text": "Very short observed git history"}, "properties": {"repobilityId": "d78f0d49b8fdc7f2", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-8210d2820e4584e9", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: gpu-worker/CLAUDE.md"}, "properties": {"repobilityId": "4ca3d20b07fd3111", "scanner": "scanner-primary", "fingerprint": "8210d2820e4584e9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "gpu-worker/CLAUDE.md"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-2a7e860f8ce8c6f4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: gpu-worker/CLAUDE.md"}, "properties": {"repobilityId": "aafb4182e4211f53", "scanner": "scanner-primary", "fingerprint": "2a7e860f8ce8c6f4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "gpu-worker/CLAUDE.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b5ff8cbda03cd3ec", "level": "warning", "message": {"text": "Agent instruction contains unpinned remote install: .claude/settings.local.json"}, "properties": {"repobilityId": "b05139c0c155b49c", "scanner": "scanner-primary", "fingerprint": "b5ff8cbda03cd3ec", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "supply-chain", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/settings.local.json"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-148ecd994c2d2a68", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/projects/C--Users-user-Desktop-replay/memory/handover_session40.md"}, "properties": {"repobilityId": "df7df27ef182fc46", "scanner": "scanner-primary", "fingerprint": "148ecd994c2d2a68", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/projects/C--Users-user-Desktop-replay/memory/handover_session40.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8cd1c239f8cac28c", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/projects/C--Users-user-Desktop-replay/memory/handover_session38.md"}, "properties": {"repobilityId": "f55772b4192b4ed5", "scanner": "scanner-primary", "fingerprint": "8cd1c239f8cac28c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/projects/C--Users-user-Desktop-replay/memory/handover_session38.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2d8b45172d95d0b5", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/projects/C--Users-user-Desktop-replay/memory/handover_session37.md"}, "properties": {"repobilityId": "32db4f4a0c11053d", "scanner": "scanner-primary", "fingerprint": "2d8b45172d95d0b5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/projects/C--Users-user-Desktop-replay/memory/handover_session37.md"}, "region": {"startLine": 161}}}]}, {"ruleId": "scanner-03e852607c5f02f9", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/projects/C--Users-user-Desktop-replay/memory/handover_session37.md"}, "properties": {"repobilityId": "135beff64cb07477", "scanner": "scanner-primary", "fingerprint": "03e852607c5f02f9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/projects/C--Users-user-Desktop-replay/memory/handover_session37.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-50877e17121f386c", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in main_final.py:661"}, "properties": {"repobilityId": "3c0d6b4906020b84", "scanner": "scanner-primary", "fingerprint": "50877e17121f386c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a88da9ece6927eb9", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 main_final.py:10"}, "properties": {"repobilityId": "adef5c64b7d0dd8f", "scanner": "scanner-primary", "fingerprint": "a88da9ece6927eb9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7989d9afd9835b5b", "level": "note", "message": {"text": "Legacy-named symbol `qa_bank_v1` in qa_grade_workflow.js:11"}, "properties": {"repobilityId": "f362ae7dc9e77308", "scanner": "scanner-primary", "fingerprint": "7989d9afd9835b5b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2bef298c79e96cfa", "level": "none", "message": {"text": "Commented-code block (6 lines) in models.py:1046"}, "properties": {"repobilityId": "a444f1e6939ca872", "scanner": "scanner-primary", "fingerprint": "2bef298c79e96cfa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e354178f66cad30e", "level": "note", "message": {"text": "Legacy-named symbol `qa_bank_v1` in qa_regrade_workflow.js:11"}, "properties": {"repobilityId": "1fc8480d27b0ef19", "scanner": "scanner-primary", "fingerprint": "e354178f66cad30e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-919e4f91a937f552", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 functions/api/download-video.js:16"}, "properties": {"repobilityId": "75641b181504d67e", "scanner": "scanner-primary", "fingerprint": "919e4f91a937f552", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5c56c7c8288073d8", "level": "note", "message": {"text": "Legacy-named symbol `PLAN_v1` in scripts/migrate_tenant.py:6"}, "properties": {"repobilityId": "69fb0954b0477d25", "scanner": "scanner-primary", "fingerprint": "5c56c7c8288073d8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ba535ee7e6666aa7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/functions/terms.js:11"}, "properties": {"repobilityId": "b1b850fe6a87e6b0", "scanner": "scanner-primary", "fingerprint": "ba535ee7e6666aa7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1b511480ac46fcc7", "level": "none", "message": {"text": "Commented-code block (5 lines) in deploy/functions/profile-tour-v2.js:4"}, "properties": {"repobilityId": "847453c98acb3b67", "scanner": "scanner-primary", "fingerprint": "1b511480ac46fcc7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7fed23574a4d9476", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/functions/profile-tour-v2.js:6"}, "properties": {"repobilityId": "80902d0d61cbdde3", "scanner": "scanner-primary", "fingerprint": "7fed23574a4d9476", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3a8ab93dacabfd87", "level": "none", "message": {"text": "Commented-code block (5 lines) in deploy/functions/profile-tour.js:5"}, "properties": {"repobilityId": "60c803c1cb8f80f0", "scanner": "scanner-primary", "fingerprint": "3a8ab93dacabfd87", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9564ebc08acfee23", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/functions/profile-tour.js:7"}, "properties": {"repobilityId": "5e073b3319914657", "scanner": "scanner-primary", "fingerprint": "9564ebc08acfee23", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-88448b4c186a177c", "level": "none", "message": {"text": "Commented-code block (6 lines) in deploy/functions/[id].js:3"}, "properties": {"repobilityId": "a6c21e108745ace0", "scanner": "scanner-primary", "fingerprint": "88448b4c186a177c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a1d0d3aaeb07a6fd", "level": "none", "message": {"text": "Commented-code block (5 lines) in deploy/functions/caddie-v2.js:9"}, "properties": {"repobilityId": "5c76a5d9d064f0d1", "scanner": "scanner-primary", "fingerprint": "a1d0d3aaeb07a6fd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-621ec6872ebd005b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/functions/caddie-v2.js:5"}, "properties": {"repobilityId": "1ab8aa0bf5fc6231", "scanner": "scanner-primary", "fingerprint": "621ec6872ebd005b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d0e41ecab777cba7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/functions/privacy.js:11"}, "properties": {"repobilityId": "a097953a7c042c4b", "scanner": "scanner-primary", "fingerprint": "d0e41ecab777cba7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ed3adffcbb021d37", "level": "none", "message": {"text": "Commented-code block (6 lines) in deploy/functions/_csp.js:12"}, "properties": {"repobilityId": "3313679ca4e0fb17", "scanner": "scanner-primary", "fingerprint": "ed3adffcbb021d37", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-842052ee5be57832", "level": "none", "message": {"text": "Commented-code block (7 lines) in deploy/functions/j/[code].js:3"}, "properties": {"repobilityId": "8bb78ea1b72d4844", "scanner": "scanner-primary", "fingerprint": "842052ee5be57832", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a12f0ede55d8840", "level": "none", "message": {"text": "Commented-code block (5 lines) in deploy/functions/api/download-video.js:16"}, "properties": {"repobilityId": "54498dc6315c17c6", "scanner": "scanner-primary", "fingerprint": "9a12f0ede55d8840", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ddbe433145118d28", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/functions/api/download-video.js:17"}, "properties": {"repobilityId": "96e77a650745db25", "scanner": "scanner-primary", "fingerprint": "ddbe433145118d28", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e76f510f3c3315ee", "level": "none", "message": {"text": "Commented-code block (7 lines) in deploy/functions/s/[token].js:6"}, "properties": {"repobilityId": "c878413cafa16206", "scanner": "scanner-primary", "fingerprint": "e76f510f3c3315ee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d3f390ac19d4ed7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/functions/s/[token].js:120"}, "properties": {"repobilityId": "ad5600589c158bfd", "scanner": "scanner-primary", "fingerprint": "0d3f390ac19d4ed7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-df6c23c2341bcce4", "level": "none", "message": {"text": "Commented-code block (10 lines) in deploy/shared/markers.js:66"}, "properties": {"repobilityId": "60589685f786e205", "scanner": "scanner-primary", "fingerprint": "df6c23c2341bcce4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a9731a936290e1e2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/actor-download.js:203"}, "properties": {"repobilityId": "29e97a725889bf8f", "scanner": "scanner-primary", "fingerprint": "a9731a936290e1e2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ed5c66315342b7f7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/html-to-image.js:1"}, "properties": {"repobilityId": "bb761f53cea8243f", "scanner": "scanner-primary", "fingerprint": "ed5c66315342b7f7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a781d531357b8e9e", "level": "none", "message": {"text": "Commented-code block (7 lines) in deploy/shared/auth-core.js:243"}, "properties": {"repobilityId": "923d282655ec2ca7", "scanner": "scanner-primary", "fingerprint": "a781d531357b8e9e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b585c49a602d24f5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/auth-core.js:270"}, "properties": {"repobilityId": "5dc33aea3fcee593", "scanner": "scanner-primary", "fingerprint": "b585c49a602d24f5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b956ce37f8073035", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/admin-content.js:70"}, "properties": {"repobilityId": "492e7d83fca795ff", "scanner": "scanner-primary", "fingerprint": "b956ce37f8073035", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a6685b34986f9ccd", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/actor-auth.js:134"}, "properties": {"repobilityId": "ec336f475a930db5", "scanner": "scanner-primary", "fingerprint": "a6685b34986f9ccd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6e53b4cfb8858682", "level": "none", "message": {"text": "Commented-code block (5 lines) in deploy/shared/grid-view.js:257"}, "properties": {"repobilityId": "7b8a4872873c5d48", "scanner": "scanner-primary", "fingerprint": "6e53b4cfb8858682", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b1afe3e7c29b9352", "level": "none", "message": {"text": "Commented-code block (7 lines) in deploy/shared/chat-firestore.js:60"}, "properties": {"repobilityId": "d34cefc0a0de920c", "scanner": "scanner-primary", "fingerprint": "b1afe3e7c29b9352", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bb8a119f7f2aabcb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/chat-firestore.js:192"}, "properties": {"repobilityId": "6dba0d98f36259a6", "scanner": "scanner-primary", "fingerprint": "bb8a119f7f2aabcb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3dc859a6c288def7", "level": "none", "message": {"text": "Commented-code block (6 lines) in deploy/shared/actor-schedule.js:111"}, "properties": {"repobilityId": "8d3b95ea94e3b583", "scanner": "scanner-primary", "fingerprint": "3dc859a6c288def7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1e37a1e680dbfaaf", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/auth.js:75"}, "properties": {"repobilityId": "48b52585eb6b621f", "scanner": "scanner-primary", "fingerprint": "1e37a1e680dbfaaf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-88dc016e141bae9c", "level": "none", "message": {"text": "Commented-code block (5 lines) in deploy/shared/casting-view.js:485"}, "properties": {"repobilityId": "4fd4c912f3abd97f", "scanner": "scanner-primary", "fingerprint": "88dc016e141bae9c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-18b112414a0fa0bb", "level": "none", "message": {"text": "Commented-code block (7 lines) in deploy/shared/job-form.js:185"}, "properties": {"repobilityId": "49e37c201a6269b7", "scanner": "scanner-primary", "fingerprint": "18b112414a0fa0bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4db57bedabd8ecbe", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/admin-auth.js:140"}, "properties": {"repobilityId": "a1de7466f4959274", "scanner": "scanner-primary", "fingerprint": "4db57bedabd8ecbe", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d58a44c852f0d2ac", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/chat-attach.js:100"}, "properties": {"repobilityId": "9d7dd594642d5994", "scanner": "scanner-primary", "fingerprint": "d58a44c852f0d2ac", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5bf38c8fc246d887", "level": "none", "message": {"text": "Commented-code block (5 lines) in deploy/shared/actor-feedback-read.js:212"}, "properties": {"repobilityId": "236e84453aae5ab2", "scanner": "scanner-primary", "fingerprint": "5bf38c8fc246d887", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-30a0c7126d8b2eff", "level": "note", "message": {"text": "Legacy-named symbol `pre_convert_backup` in deploy/shared/actor-media-video-cancel.js:16"}, "properties": {"repobilityId": "5d832ae9b604b87f", "scanner": "scanner-primary", "fingerprint": "30a0c7126d8b2eff", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-20a45f0024918708", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/admin-caddies.js:13"}, "properties": {"repobilityId": "9f5496f95b9977a6", "scanner": "scanner-primary", "fingerprint": "20a45f0024918708", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cc7654111742c3a3", "level": "note", "message": {"text": "Legacy-named symbol `pre_convert_backup` in deploy/shared/actor-media-video-transcode.js:19"}, "properties": {"repobilityId": "e9f6f006094ed5db", "scanner": "scanner-primary", "fingerprint": "cc7654111742c3a3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-58cf6557624a9514", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/actor-media-video-transcode.js:125"}, "properties": {"repobilityId": "c716102545c4ef9b", "scanner": "scanner-primary", "fingerprint": "58cf6557624a9514", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d3fd6a0e88e86c89", "level": "none", "message": {"text": "Commented-code block (8 lines) in deploy/shared/download-system.js:85"}, "properties": {"repobilityId": "2b56c1bae3a96342", "scanner": "scanner-primary", "fingerprint": "d3fd6a0e88e86c89", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-955d619ac916b492", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/download-system.js:86"}, "properties": {"repobilityId": "66896542d89c9895", "scanner": "scanner-primary", "fingerprint": "955d619ac916b492", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8473b2607807d7b3", "level": "none", "message": {"text": "Commented-code block (11 lines) in deploy/shared/pt-engine.js:328"}, "properties": {"repobilityId": "5da2588cd8a98970", "scanner": "scanner-primary", "fingerprint": "8473b2607807d7b3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-290fc3ff328e1a45", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/pt-engine.js:261"}, "properties": {"repobilityId": "d4513d3fbda934dc", "scanner": "scanner-primary", "fingerprint": "290fc3ff328e1a45", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f1efa1bd11e98695", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/admin-films.js:330"}, "properties": {"repobilityId": "6c222c69ca8759db", "scanner": "scanner-primary", "fingerprint": "f1efa1bd11e98695", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a32ad34460db8325", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/actor-jobs-view.js:181"}, "properties": {"repobilityId": "4e659abb60415e37", "scanner": "scanner-primary", "fingerprint": "a32ad34460db8325", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a5e6f5370042248e", "level": "none", "message": {"text": "Commented-code block (6 lines) in deploy/shared/caddie-auth.js:138"}, "properties": {"repobilityId": "9491447c380b491b", "scanner": "scanner-primary", "fingerprint": "a5e6f5370042248e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2544ac08d136977e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/caddie-auth.js:248"}, "properties": {"repobilityId": "d5b080f56697c50f", "scanner": "scanner-primary", "fingerprint": "2544ac08d136977e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a62384db4e2549b1", "level": "none", "message": {"text": "Commented-code block (10 lines) in deploy/shared/feedback-utils.js:40"}, "properties": {"repobilityId": "059f272f8c8b54ff", "scanner": "scanner-primary", "fingerprint": "a62384db4e2549b1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b6af74ab58472b47", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/chat-floating.js:324"}, "properties": {"repobilityId": "a61fcbc83d2a0448", "scanner": "scanner-primary", "fingerprint": "b6af74ab58472b47", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2758ec09cde4163e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/actor-audition-view.js:154"}, "properties": {"repobilityId": "4b4bc1021756e44d", "scanner": "scanner-primary", "fingerprint": "2758ec09cde4163e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7da77bd6541d9ea1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/admin-actions.js:101"}, "properties": {"repobilityId": "64138b97e6881ab4", "scanner": "scanner-primary", "fingerprint": "7da77bd6541d9ea1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f3a107dfdb35905d", "level": "none", "message": {"text": "Commented-code block (6 lines) in deploy/shared/chat-ui-v2.js:690"}, "properties": {"repobilityId": "b727de3f3906feec", "scanner": "scanner-primary", "fingerprint": "f3a107dfdb35905d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f5c45aff5d58a96e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/chat-ui-v2.js:719"}, "properties": {"repobilityId": "88d51cac4e2e18a2", "scanner": "scanner-primary", "fingerprint": "f5c45aff5d58a96e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-16e83d062d09132c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/actor-media-docs.js:191"}, "properties": {"repobilityId": "0fe5c01218a10dbd", "scanner": "scanner-primary", "fingerprint": "16e83d062d09132c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-65c3caea48f611cb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/index-auth.js:381"}, "properties": {"repobilityId": "3e80e1211ff2e9e6", "scanner": "scanner-primary", "fingerprint": "65c3caea48f611cb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-43147c6d86ef3a85", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/admin-actors.js:431"}, "properties": {"repobilityId": "a6ac01594657f35a", "scanner": "scanner-primary", "fingerprint": "43147c6d86ef3a85", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-677695c17a6267e0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 deploy/shared/actor-media-video-init.js:43"}, "properties": {"repobilityId": "c40322901625caee", "scanner": "scanner-primary", "fingerprint": "677695c17a6267e0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b88728ad1e31a2c8", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in backups/b035_main.py:3781"}, "properties": {"repobilityId": "789a56ad00712857", "scanner": "scanner-primary", "fingerprint": "b88728ad1e31a2c8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-61bf79a8ecbffdae", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in backups/b037_main.py:3912"}, "properties": {"repobilityId": "4b2ba06e30a9ec1e", "scanner": "scanner-primary", "fingerprint": "61bf79a8ecbffdae", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e6ecae1b75fbabe2", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in backups/b020_main.py:3109"}, "properties": {"repobilityId": "d1dafeac98d95911", "scanner": "scanner-primary", "fingerprint": "e6ecae1b75fbabe2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d42fad9d31ef1d0b", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in backups/b041_main.py:3977"}, "properties": {"repobilityId": "ce3abb3691c24e97", "scanner": "scanner-primary", "fingerprint": "d42fad9d31ef1d0b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c65259a529bd3602", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in backups/b036_main.py:3903"}, "properties": {"repobilityId": "2136bf0db47ad461", "scanner": "scanner-primary", "fingerprint": "c65259a529bd3602", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2b76e9c7aa433683", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in backups/b019_main.py:3109"}, "properties": {"repobilityId": "da5a75296954ce3e", "scanner": "scanner-primary", "fingerprint": "2b76e9c7aa433683", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7c0e9484f33a5385", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in backups/b021_main.py:3218"}, "properties": {"repobilityId": "1108fae56749100f", "scanner": "scanner-primary", "fingerprint": "7c0e9484f33a5385", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7488a5b4de220a8d", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in backups/b034_main.py:3781"}, "properties": {"repobilityId": "149303b55dfd1a32", "scanner": "scanner-primary", "fingerprint": "7488a5b4de220a8d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e2f9fa888a5dca53", "level": "note", "message": {"text": "Legacy-named symbol `list_objects_v2` in backups/b043_main.py:3987"}, "properties": {"repobilityId": "8a84c01b941d3239", "scanner": "scanner-primary", "fingerprint": "e2f9fa888a5dca53", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a0200e11cdf25ea4", "level": "note", "message": {"text": "Legacy-named symbol `\ud30c\ub3c4\uc758\ub05d_\uc2dc\ub189\uc2dc\uc2a4_v2` in memory/_design_v2_archive/mobile/untitled/project/screens.jsx:507"}, "properties": {"repobilityId": "3b951e384f26a74e", "scanner": "scanner-primary", "fingerprint": "a0200e11cdf25ea4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-463dce1f78dacae3", "level": "none", "message": {"text": "Commented-code block (5 lines) in memory/_design_v2_archive/mobile/untitled/project/design-canvas.jsx:20"}, "properties": {"repobilityId": "c74684ac4f04e9b6", "scanner": "scanner-primary", "fingerprint": "463dce1f78dacae3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de2568aa03277e5d", "level": "note", "message": {"text": "Legacy-named symbol `\ud30c\ub3c4\uc758\ub05d_\uc2dc\ub189\uc2dc\uc2a4_v2` in memory/_design_v2_archive/pc/screens.jsx:507"}, "properties": {"repobilityId": "7e25310d481aba94", "scanner": "scanner-primary", "fingerprint": "de2568aa03277e5d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-eb56867f990cf144", "level": "note", "message": {"text": "Legacy-named symbol `\ud30c\ub3c4\uc758\ub05d_\uc2dc\ub189\uc2dc\uc2a4_v2` in memory/_design_v2_archive/pc/desktop.jsx:235"}, "properties": {"repobilityId": "00e5ab118d5f0704", "scanner": "scanner-primary", "fingerprint": "eb56867f990cf144", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1950b7bcfaa2ffe5", "level": "note", "message": {"text": "Legacy-named symbol `\ud30c\ub3c4\uc758\ub05d_\uc2dc\ub189\uc2dc\uc2a4_v2` in memory/design_v3_caddie_pc/project/screens.jsx:507"}, "properties": {"repobilityId": "2305f637cd02581a", "scanner": "scanner-primary", "fingerprint": "1950b7bcfaa2ffe5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e733bc84d22ff07f", "level": "none", "message": {"text": "Commented-code block (5 lines) in memory/design_v3_caddie_pc/project/design-canvas.jsx:20"}, "properties": {"repobilityId": "4586a29d011302a5", "scanner": "scanner-primary", "fingerprint": "e733bc84d22ff07f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f297e92f7c150b03", "level": "note", "message": {"text": "Legacy-named symbol `\ud30c\ub3c4\uc758\ub05d_\uc2dc\ub189\uc2dc\uc2a4_v2` in memory/design_v3_caddie_pc/project/desktop.jsx:235"}, "properties": {"repobilityId": "98119b119dd74e7c", "scanner": "scanner-primary", "fingerprint": "f297e92f7c150b03", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-59b992d62d86a65a", "level": "note", "message": {"text": "25 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "58b9516d72ffa8ba", "scanner": "scanner-primary", "fingerprint": "59b992d62d86a65a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "ebdc97add7cda0b3", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "47c9751f306dc619", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "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": "73e1759e4016de67", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-805362a4b2e61548", "level": "note", "message": {"text": "Near-duplicate function bodies in 28 places"}, "properties": {"repobilityId": "c009c463cf51f384", "scanner": "scanner-primary", "fingerprint": "805362a4b2e61548", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "f73713aeec2cb2b8", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "330a2393f6620afd", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-02525d39071dd2c7", "level": "note", "message": {"text": "Near-duplicate function bodies in 5 places"}, "properties": {"repobilityId": "374c8a4691c89c47", "scanner": "scanner-primary", "fingerprint": "02525d39071dd2c7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-a1df580af9537a61", "level": "note", "message": {"text": "Near-duplicate function bodies in 65 places"}, "properties": {"repobilityId": "dc39dd7f63d808c5", "scanner": "scanner-primary", "fingerprint": "a1df580af9537a61", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-46969939caf8120b", "level": "note", "message": {"text": "Near-duplicate function bodies in 9 places"}, "properties": {"repobilityId": "c978f9f03a000562", "scanner": "scanner-primary", "fingerprint": "46969939caf8120b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-46969939caf8120b", "level": "note", "message": {"text": "Near-duplicate function bodies in 9 places"}, "properties": {"repobilityId": "dba5c841d6d72c9c", "scanner": "scanner-primary", "fingerprint": "46969939caf8120b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-46969939caf8120b", "level": "note", "message": {"text": "Near-duplicate function bodies in 9 places"}, "properties": {"repobilityId": "914d98aefe292c75", "scanner": "scanner-primary", "fingerprint": "46969939caf8120b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-46969939caf8120b", "level": "note", "message": {"text": "Near-duplicate function bodies in 9 places"}, "properties": {"repobilityId": "a2288ec0d2f037d5", "scanner": "scanner-primary", "fingerprint": "46969939caf8120b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-46969939caf8120b", "level": "note", "message": {"text": "Near-duplicate function bodies in 9 places"}, "properties": {"repobilityId": "6ba0e7a4e7ef60d8", "scanner": "scanner-primary", "fingerprint": "46969939caf8120b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-46969939caf8120b", "level": "note", "message": {"text": "Near-duplicate function bodies in 9 places"}, "properties": {"repobilityId": "a1048b6975c25c2e", "scanner": "scanner-primary", "fingerprint": "46969939caf8120b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-46969939caf8120b", "level": "note", "message": {"text": "Near-duplicate function bodies in 9 places"}, "properties": {"repobilityId": "795f9468b136064c", "scanner": "scanner-primary", "fingerprint": "46969939caf8120b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-46969939caf8120b", "level": "note", "message": {"text": "Near-duplicate function bodies in 9 places"}, "properties": {"repobilityId": "d123651b5bc280f7", "scanner": "scanner-primary", "fingerprint": "46969939caf8120b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-46969939caf8120b", "level": "note", "message": {"text": "Near-duplicate function bodies in 9 places"}, "properties": {"repobilityId": "88a63712a8ffa855", "scanner": "scanner-primary", "fingerprint": "46969939caf8120b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-46969939caf8120b", "level": "note", "message": {"text": "Near-duplicate function bodies in 9 places"}, "properties": {"repobilityId": "373c0dc90a857b9e", "scanner": "scanner-primary", "fingerprint": "46969939caf8120b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-46969939caf8120b", "level": "note", "message": {"text": "Near-duplicate function bodies in 9 places"}, "properties": {"repobilityId": "696a01e282427ca3", "scanner": "scanner-primary", "fingerprint": "46969939caf8120b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-959dc775c4241ad4", "level": "note", "message": {"text": "Near-duplicate function bodies in 18 places"}, "properties": {"repobilityId": "e837aaa275aa38d8", "scanner": "scanner-primary", "fingerprint": "959dc775c4241ad4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-4b7c693578456ca1", "level": "error", "message": {"text": "Flask mutation route `api_login` without `@login_required` \u2014 main_final.py:130"}, "properties": {"repobilityId": "d534b5bad5126da8", "scanner": "scanner-primary", "fingerprint": "4b7c693578456ca1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "main_final.py"}, "region": {"startLine": 130}}}]}, {"ruleId": "scanner-ef9048993cd62864", "level": "error", "message": {"text": "Flask mutation route `api_migrate_columns` without `@login_required` \u2014 main_final.py:290"}, "properties": {"repobilityId": "e9513366a8697c83", "scanner": "scanner-primary", "fingerprint": "ef9048993cd62864", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "main_final.py"}, "region": {"startLine": 290}}}]}, {"ruleId": "scanner-b7adc0ab458399db", "level": "error", "message": {"text": "Flask mutation route `api_save_profile` without `@login_required` \u2014 main_final.py:349"}, "properties": {"repobilityId": "f8b53e2443187f22", "scanner": "scanner-primary", "fingerprint": "b7adc0ab458399db", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "main_final.py"}, "region": {"startLine": 349}}}]}, {"ruleId": "scanner-6885c31f84abf723", "level": "error", "message": {"text": "Flask mutation route `api_save_video` without `@login_required` \u2014 main_final.py:439"}, "properties": {"repobilityId": "f501918705ff934a", "scanner": "scanner-primary", "fingerprint": "6885c31f84abf723", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "main_final.py"}, "region": {"startLine": 439}}}]}, {"ruleId": "scanner-b5de16886f9c05c3", "level": "error", "message": {"text": "Flask mutation route `api_signup` without `@login_required` \u2014 main_final.py:502"}, "properties": {"repobilityId": "8d3ba401d47cce2f", "scanner": "scanner-primary", "fingerprint": "b5de16886f9c05c3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "main_final.py"}, "region": {"startLine": 502}}}]}, {"ruleId": "scanner-adb6710dd5c717cf", "level": "error", "message": {"text": "Flask mutation route `install_fonts` without `@login_required` \u2014 main_final.py:640"}, "properties": {"repobilityId": "505b09dcd22e53a0", "scanner": "scanner-primary", "fingerprint": "adb6710dd5c717cf", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "main_final.py"}, "region": {"startLine": 640}}}]}, {"ruleId": "scanner-4a018e08021b22ff", "level": "error", "message": {"text": "Flask mutation route `r2_delete` without `@login_required` \u2014 main_final.py:673"}, "properties": {"repobilityId": "d6cdee784b24abd2", "scanner": "scanner-primary", "fingerprint": "4a018e08021b22ff", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "main_final.py"}, "region": {"startLine": 673}}}]}, {"ruleId": "scanner-1133a45a36ea08a5", "level": "error", "message": {"text": "Flask mutation route `presign` without `@login_required` \u2014 main_final.py:695"}, "properties": {"repobilityId": "8950d25729575bf7", "scanner": "scanner-primary", "fingerprint": "1133a45a36ea08a5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "main_final.py"}, "region": {"startLine": 695}}}]}, {"ruleId": "scanner-859a6248b35cd91a", "level": "error", "message": {"text": "Flask mutation route `convert` without `@login_required` \u2014 main_final.py:739"}, "properties": {"repobilityId": "0d3351823540ebda", "scanner": "scanner-primary", "fingerprint": "859a6248b35cd91a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "main_final.py"}, "region": {"startLine": 739}}}]}, {"ruleId": "scanner-963d52a9193cd4dc", "level": "error", "message": {"text": "Flask mutation route `compress_doc` without `@login_required` \u2014 main_final.py:970"}, "properties": {"repobilityId": "40cebc0d52cfae00", "scanner": "scanner-primary", "fingerprint": "963d52a9193cd4dc", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "main_final.py"}, "region": {"startLine": 970}}}]}, {"ruleId": "scanner-a0cfa8ce059c274c", "level": "error", "message": {"text": "Flask mutation route `ppt_thumbs` without `@login_required` \u2014 main_final.py:1258"}, "properties": {"repobilityId": "ab00c4e70c4c91b2", "scanner": "scanner-primary", "fingerprint": "a0cfa8ce059c274c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "main_final.py"}, "region": {"startLine": 1258}}}]}, {"ruleId": "scanner-04de613af5b3ea6b", "level": "error", "message": {"text": "Flask mutation route `batch_ppt_thumbs` without `@login_required` \u2014 main_final.py:1302"}, "properties": {"repobilityId": "3123544b920ba02e", "scanner": "scanner-primary", "fingerprint": "04de613af5b3ea6b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "main_final.py"}, "region": {"startLine": 1302}}}]}, {"ruleId": "scanner-edafca78951ac8b0", "level": "error", "message": {"text": "Flask mutation route `batch_mobile_convert` without `@login_required` \u2014 main_final.py:1342"}, "properties": {"repobilityId": "b897986e89c0155b", "scanner": "scanner-primary", "fingerprint": "edafca78951ac8b0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.flask.unauth_route"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "main_final.py"}, "region": {"startLine": 1342}}}]}, {"ruleId": "scanner-0449057c22115579", "level": "error", "message": {"text": "Dangling fetch: GET /pt-test-v2.html (deploy/functions/caddie-v2.js:5)"}, "properties": {"repobilityId": "971bd909196580b2", "scanner": "scanner-primary", "fingerprint": "0449057c22115579", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-029fdb19655e058b", "level": "error", "message": {"text": "Dangling fetch: GET /api/noti/read-all (deploy/shared/alarm-view.js:39)"}, "properties": {"repobilityId": "8bd80c0f9a7de8bc", "scanner": "scanner-primary", "fingerprint": "029fdb19655e058b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:apiCall"]}}, {"ruleId": "scanner-cee1b1903574e9ca", "level": "note", "message": {"text": "Unused endpoint: ANY /api/login"}, "properties": {"repobilityId": "e3873853ac4e5149", "scanner": "scanner-primary", "fingerprint": "cee1b1903574e9ca", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-33de9c10cc501140", "level": "note", "message": {"text": "Unused endpoint: ANY /api/users"}, "properties": {"repobilityId": "0a1f08ef9a1b7c65", "scanner": "scanner-primary", "fingerprint": "33de9c10cc501140", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-dc601c535a8c22a5", "level": "note", "message": {"text": "Unused endpoint: ANY /api/migrate-columns"}, "properties": {"repobilityId": "b297782b05eebb9f", "scanner": "scanner-primary", "fingerprint": "dc601c535a8c22a5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-27ecd1d9cc23f1fe", "level": "note", "message": {"text": "Unused endpoint: ANY /api/save-profile"}, "properties": {"repobilityId": "27ff160f42f9cc7d", "scanner": "scanner-primary", "fingerprint": "27ecd1d9cc23f1fe", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f55aaf07f0f3cc90", "level": "note", "message": {"text": "Unused endpoint: ANY /api/save-video"}, "properties": {"repobilityId": "858b7e794185dedd", "scanner": "scanner-primary", "fingerprint": "f55aaf07f0f3cc90", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-be538a06f101dd68", "level": "note", "message": {"text": "Unused endpoint: ANY /api/signup"}, "properties": {"repobilityId": "d3a540b34fab9b23", "scanner": "scanner-primary", "fingerprint": "be538a06f101dd68", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-95845282e844e2c0", "level": "note", "message": {"text": "Unused endpoint: ANY /api/jobs"}, "properties": {"repobilityId": "85707dcc6784a882", "scanner": "scanner-primary", "fingerprint": "95845282e844e2c0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f36db94ae2aa8a14", "level": "note", "message": {"text": "Unused endpoint: ANY /install-fonts"}, "properties": {"repobilityId": "139338ea777090a3", "scanner": "scanner-primary", "fingerprint": "f36db94ae2aa8a14", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-55a0413444f30c9b", "level": "note", "message": {"text": "Unused endpoint: ANY /r2-list"}, "properties": {"repobilityId": "2f14bd2b2436749c", "scanner": "scanner-primary", "fingerprint": "55a0413444f30c9b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-057b5b2c3fadd0f2", "level": "note", "message": {"text": "Unused endpoint: ANY /r2-delete"}, "properties": {"repobilityId": "1ae7b20704202071", "scanner": "scanner-primary", "fingerprint": "057b5b2c3fadd0f2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b13f82d7ea662100", "level": "note", "message": {"text": "Unused endpoint: ANY /presign"}, "properties": {"repobilityId": "aff72b097bfb6910", "scanner": "scanner-primary", "fingerprint": "b13f82d7ea662100", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a88c77b086cf427c", "level": "note", "message": {"text": "Unused endpoint: ANY /convert"}, "properties": {"repobilityId": "d5c9f4dff1e80477", "scanner": "scanner-primary", "fingerprint": "a88c77b086cf427c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-83314c3c8ca01912", "level": "note", "message": {"text": "Unused endpoint: ANY /convert-status"}, "properties": {"repobilityId": "45b8ef7c16cdf71a", "scanner": "scanner-primary", "fingerprint": "83314c3c8ca01912", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bc0b74ecb7e4243f", "level": "note", "message": {"text": "Unused endpoint: ANY /compress-doc"}, "properties": {"repobilityId": "98d01571f0e2e6a7", "scanner": "scanner-primary", "fingerprint": "bc0b74ecb7e4243f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4d3add4c8bd725d0", "level": "note", "message": {"text": "Unused endpoint: ANY /compress-doc-status"}, "properties": {"repobilityId": "d17ebb231cfdd553", "scanner": "scanner-primary", "fingerprint": "4d3add4c8bd725d0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-426681d0c92ce61c", "level": "note", "message": {"text": "Unused endpoint: ANY /ppt-thumbs"}, "properties": {"repobilityId": "bb798d7f76d22ea5", "scanner": "scanner-primary", "fingerprint": "426681d0c92ce61c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d00f34c906d0c0a8", "level": "note", "message": {"text": "Unused endpoint: ANY /ppt-thumbs-status"}, "properties": {"repobilityId": "6e3b32edefc90973", "scanner": "scanner-primary", "fingerprint": "d00f34c906d0c0a8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5b11f0de088eb1b2", "level": "note", "message": {"text": "Unused endpoint: ANY /batch-ppt-thumbs"}, "properties": {"repobilityId": "77741e7408c0cc3b", "scanner": "scanner-primary", "fingerprint": "5b11f0de088eb1b2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-96fd4f64849c47bb", "level": "note", "message": {"text": "Unused endpoint: ANY /batch-mobile-convert"}, "properties": {"repobilityId": "d6bf94ea5ced9e63", "scanner": "scanner-primary", "fingerprint": "96fd4f64849c47bb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b059f2c53edc8dee", "level": "note", "message": {"text": "Unused endpoint: ANY /batch-mobile-status"}, "properties": {"repobilityId": "d5458a61088a66a6", "scanner": "scanner-primary", "fingerprint": "b059f2c53edc8dee", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-35edae09e62888ec", "level": "note", "message": {"text": "Unused endpoint: ANY /api/admin/ai-knowledge"}, "properties": {"repobilityId": "f87d972a37f4a7ea", "scanner": "scanner-primary", "fingerprint": "35edae09e62888ec", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ad287d6dfdf7b472", "level": "note", "message": {"text": "Unused endpoint: ANY /api/admin/ai-knowledge/save"}, "properties": {"repobilityId": "e2f22b6c52961b9c", "scanner": "scanner-primary", "fingerprint": "ad287d6dfdf7b472", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3a380ffba40f2e13", "level": "note", "message": {"text": "Unused endpoint: ANY /api/admin/ai-knowledge/bulk-preview"}, "properties": {"repobilityId": "c913af9023586073", "scanner": "scanner-primary", "fingerprint": "3a380ffba40f2e13", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ea390b02718322b9", "level": "note", "message": {"text": "Unused endpoint: ANY /api/admin/ai-knowledge/bulk-apply"}, "properties": {"repobilityId": "013e05958a2ad431", "scanner": "scanner-primary", "fingerprint": "ea390b02718322b9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5686c8de717bf8b3", "level": "note", "message": {"text": "Unused endpoint: ANY /api/admin/ai-knowledge/extract"}, "properties": {"repobilityId": "8761b062ecf237ee", "scanner": "scanner-primary", "fingerprint": "5686c8de717bf8b3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-14f90015cc8a777c", "level": "note", "message": {"text": "Unused endpoint: ANY /api/admin/ai-knowledge/extract-url"}, "properties": {"repobilityId": "afcbd1b5f3c455a8", "scanner": "scanner-primary", "fingerprint": "14f90015cc8a777c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2987e1829f857778", "level": "note", "message": {"text": "Unused endpoint: ANY /api/admin/ai-candidates"}, "properties": {"repobilityId": "6b6fb24d052559c2", "scanner": "scanner-primary", "fingerprint": "2987e1829f857778", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1dee10e1fe7fad5f", "level": "note", "message": {"text": "Unused endpoint: ANY /api/admin/ai-candidates/decide"}, "properties": {"repobilityId": "81b41c11b3f1f5f0", "scanner": "scanner-primary", "fingerprint": "1dee10e1fe7fad5f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a4b48df9c46bb5de", "level": "note", "message": {"text": "Unused endpoint: ANY /api/admin/ai-unanswered"}, "properties": {"repobilityId": "3cbc6d04591197c7", "scanner": "scanner-primary", "fingerprint": "a4b48df9c46bb5de", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1c9ae5bc311ed059", "level": "note", "message": {"text": "Unused endpoint: ANY /api/admin/ai-unanswered/resolve"}, "properties": {"repobilityId": "994f08802f367c19", "scanner": "scanner-primary", "fingerprint": "1c9ae5bc311ed059", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d9e45602b60a67a8", "level": "note", "message": {"text": "Unused endpoint: ANY /api/admin/pin/status"}, "properties": {"repobilityId": "f79dc9fe063bc6f1", "scanner": "scanner-primary", "fingerprint": "d9e45602b60a67a8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-da91822e2afd65e6", "level": "note", "message": {"text": "Unused endpoint: ANY /api/admin/pin/set"}, "properties": {"repobilityId": "cb1a0f8c28ea1df4", "scanner": "scanner-primary", "fingerprint": "da91822e2afd65e6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-85537025afa74eef", "level": "note", "message": {"text": "Unused endpoint: ANY /api/check-uid"}, "properties": {"repobilityId": "44d0621f85cae676", "scanner": "scanner-primary", "fingerprint": "85537025afa74eef", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c86ef09add709cf7", "level": "note", "message": {"text": "Unused endpoint: ANY /api/auth/email/send-code"}, "properties": {"repobilityId": "f3287da694a32f66", "scanner": "scanner-primary", "fingerprint": "c86ef09add709cf7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0ae85e28d0fea119", "level": "note", "message": {"text": "Unused endpoint: ANY /api/auth/email/verify-code"}, "properties": {"repobilityId": "e99625718da612d2", "scanner": "scanner-primary", "fingerprint": "0ae85e28d0fea119", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-52293579a2715deb", "level": "note", "message": {"text": "Unused endpoint: ANY /api/auth/email/reset-password"}, "properties": {"repobilityId": "d12cf80562d88e6e", "scanner": "scanner-primary", "fingerprint": "52293579a2715deb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-50a2f94dc29b42b1", "level": "note", "message": {"text": "Unused endpoint: ANY /api/auth/email/signup"}, "properties": {"repobilityId": "043973c25c0fe3f6", "scanner": "scanner-primary", "fingerprint": "50a2f94dc29b42b1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0243b6326e4878b3", "level": "note", "message": {"text": "Unused endpoint: ANY /api/auth/caddie/signup"}, "properties": {"repobilityId": "d686ca89a07b02e3", "scanner": "scanner-primary", "fingerprint": "0243b6326e4878b3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-afe633488c3402e6", "level": "note", "message": {"text": "Unused endpoint: ANY /api/auth/caddie/setup/verify"}, "properties": {"repobilityId": "396b6c72916b7cf5", "scanner": "scanner-primary", "fingerprint": "afe633488c3402e6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1eaf5a2d7a1b0f6e", "level": "note", "message": {"text": "Unused endpoint: ANY /api/auth/caddie/setup"}, "properties": {"repobilityId": "69a3f09b26edf53c", "scanner": "scanner-primary", "fingerprint": "1eaf5a2d7a1b0f6e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e4305c3b6a73cad2", "level": "note", "message": {"text": "Unused endpoint: ANY /api/auth/caddie/login"}, "properties": {"repobilityId": "85ecae65de14469f", "scanner": "scanner-primary", "fingerprint": "e4305c3b6a73cad2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2cf9929d306ac3bc", "level": "note", "message": {"text": "Unused endpoint: ANY /api/auth/caddie/me"}, "properties": {"repobilityId": "e03f31ddfa509869", "scanner": "scanner-primary", "fingerprint": "2cf9929d306ac3bc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f97986148cc43a35", "level": "note", "message": {"text": "Unused endpoint: ANY /api/auth/actor/me"}, "properties": {"repobilityId": "090a22408108ee08", "scanner": "scanner-primary", "fingerprint": "f97986148cc43a35", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0c465bb56424456b", "level": "note", "message": {"text": "Unused endpoint: ANY /api/auth/admin/me"}, "properties": {"repobilityId": "3ac7607c9d6c972b", "scanner": "scanner-primary", "fingerprint": "0c465bb56424456b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e80e985f8a3b9492", "level": "note", "message": {"text": "Unused endpoint: ANY /api/public/jobs"}, "properties": {"repobilityId": "8a0c9f07e6cc1f45", "scanner": "scanner-primary", "fingerprint": "e80e985f8a3b9492", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-866f90ce2ffbd141", "level": "note", "message": {"text": "Unused endpoint: ANY /api/jobs/<job_id>"}, "properties": {"repobilityId": "5842f6526f6e3b52", "scanner": "scanner-primary", "fingerprint": "866f90ce2ffbd141", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-91700c6815b1711a", "level": "note", "message": {"text": "Unused endpoint: ANY /api/public/actors"}, "properties": {"repobilityId": "a2d3fd19f6dbc614", "scanner": "scanner-primary", "fingerprint": "91700c6815b1711a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-dfdade342dec704f", "level": "note", "message": {"text": "Unused endpoint: ANY /api/actors/by-member-no/<int:member_no>"}, "properties": {"repobilityId": "609bb3269e3b2e62", "scanner": "scanner-primary", "fingerprint": "dfdade342dec704f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ea22d152e264191d", "level": "note", "message": {"text": "Unused endpoint: ANY /api/chat/peer/<uid>"}, "properties": {"repobilityId": "ef89b4b77ae36ba3", "scanner": "scanner-primary", "fingerprint": "ea22d152e264191d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1a4819c28ac7b6ff", "level": "note", "message": {"text": "Unused endpoint: ANY /api/actors/<int:actor_id>"}, "properties": {"repobilityId": "5b6ee81f67636f5a", "scanner": "scanner-primary", "fingerprint": "1a4819c28ac7b6ff", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}