{"version": "2.1.0", "$schema": "https://json.schemastore.org/sarif-2.1.0.json", "runs": [{"tool": {"driver": {"name": "Repobility", "informationUri": "https://repobility.com", "rules": [{"id": "scanner-91ac206d36f78148", "name": "Possibly dead Python function: init_func", "shortDescription": {"text": "Possibly dead Python function: init_func"}, "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-c4fd09f542eb69f6", "name": "Possibly dead Python function: init_func", "shortDescription": {"text": "Possibly dead Python function: init_func"}, "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-56ccee571a2b0584", "name": "Possibly dead Python function: remove_spectral_norm", "shortDescription": {"text": "Possibly dead Python function: remove_spectral_norm"}, "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-3227ab5ecb572506", "name": "Possibly dead Python function: use_spectral_norm", "shortDescription": {"text": "Possibly dead Python function: use_spectral_norm"}, "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-70cd82120106d908", "name": "Possibly dead Python function: freeze_bn", "shortDescription": {"text": "Possibly dead Python function: freeze_bn"}, "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-157af7f8a14ea790", "name": "Possibly dead Python function: fetch_dataloader", "shortDescription": {"text": "Possibly dead Python function: fetch_dataloader"}, "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-cef6a1ab26c08182", "name": "Possibly dead Python function: demo", "shortDescription": {"text": "Possibly dead Python function: demo"}, "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-822eb3d007de15f4", "name": "Possibly dead Python function: RAFT_infer", "shortDescription": {"text": "Possibly dead Python function: RAFT_infer"}, "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-a2b8e2cc9d0ceeb6", "name": "Possibly dead Python function: unpad", "shortDescription": {"text": "Possibly dead Python function: unpad"}, "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-40a8245a2b6c12de", "name": "Possibly dead Python function: forward_interpolate", "shortDescription": {"text": "Possibly dead Python function: forward_interpolate"}, "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-1b41db77fb56637f", "name": "Possibly dead Python function: writeFlow", "shortDescription": {"text": "Possibly dead Python function: writeFlow"}, "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-6edf7cb65c7b1197", "name": "Possibly dead Python function: readDispKITTI", "shortDescription": {"text": "Possibly dead Python function: readDispKITTI"}, "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-3bb86daf18a8b0ee", "name": "Possibly dead Python function: writeFlowKITTI", "shortDescription": {"text": "Possibly dead Python function: writeFlowKITTI"}, "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-c4de7c5a3848bf89", "name": "Possibly dead Python function: resize_flow", "shortDescription": {"text": "Possibly dead Python function: resize_flow"}, "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-ef18ba1d43f10abd", "name": "Possibly dead Python function: resize_flow_pytorch", "shortDescription": {"text": "Possibly dead Python function: resize_flow_pytorch"}, "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-89df0899b2b4ef53", "name": "Possibly dead Python function: flowread", "shortDescription": {"text": "Possibly dead Python function: flowread"}, "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-0118c738d98c921e", "name": "Possibly dead Python function: flowwrite", "shortDescription": {"text": "Possibly dead Python function: flowwrite"}, "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-31148b5ca0d344b6", "name": "Possibly dead Python function: img2tensor", "shortDescription": {"text": "Possibly dead Python function: img2tensor"}, "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-f4edb1804acc16a2", "name": "Possibly dead Python function: tensor2img", "shortDescription": {"text": "Possibly dead Python function: tensor2img"}, "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-725bfa6d39fc2034", "name": "Possibly dead Python function: tensor2img_fast", "shortDescription": {"text": "Possibly dead Python function: tensor2img_fast"}, "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-80df9c92d19b7d14", "name": "Possibly dead Python function: imfrombytes", "shortDescription": {"text": "Possibly dead Python function: imfrombytes"}, "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-d1db31e48e36f341", "name": "Possibly dead Python function: crop_border", "shortDescription": {"text": "Possibly dead Python function: crop_border"}, "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-027ccddd76de0ab0", "name": "Possibly dead Python function: download_file_from_google_drive", "shortDescription": {"text": "Possibly dead Python function: download_file_from_google_drive"}, "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-5b115f65652ab962", "name": "Possibly dead Python function: load_file_from_url", "shortDescription": {"text": "Possibly dead Python function: load_file_from_url"}, "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-d8cd0623ce6d74be", "name": "Possibly dead Python function: read_dirnames_under_root", "shortDescription": {"text": "Possibly dead Python function: read_dirnames_under_root"}, "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-340a09b7895b6f7d", "name": "Possibly dead Python function: create_random_shape_with_random_motion_zoom_rotation", "shortDescription": {"text": "Possibly dead Python function: create_random_shape_with_random_motion_zoom_rotation"}, "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-6b8e50e25e7122a2", "name": "Possibly dead Python function: gpu_is_available", "shortDescription": {"text": "Possibly dead Python function: gpu_is_available"}, "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-76b09101280e8416", "name": "Stray `console.log` in TS/JS \u2014 reverse-engineer/sidepanel.js:156", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 reverse-engineer/sidepanel.js:156"}, "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-0e28a52d36bf976c", "name": "Stray `console.log` in TS/JS \u2014 extension-magnific/background.js:41", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension-magnific/background.js:41"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7029cc54476d3d25", "name": "Stray `console.log` in TS/JS \u2014 extension-magnific/magnific-content.js:36", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension-magnific/magnific-content.js:36"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9421a2596e51ffcc", "name": "Stray `console.log` in TS/JS \u2014 extension-magnific/overlay-killer.js:202", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension-magnific/overlay-killer.js:202"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0d232ef2b8f5facf", "name": "Stray `console.log` in TS/JS \u2014 extension-magnific/bridge.js:86", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension-magnific/bridge.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-ac6a281e8643fc29", "name": "Stray `console.log` in TS/JS \u2014 extension-magnific/usersnap-shim.js:61", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension-magnific/usersnap-shim.js:61"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c38b79de39fe7ccc", "name": "`truncate` class without `title=` for hover reveal \u2014 components/Plans.tsx:995", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/Plans.tsx:995"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9f00109ddac70e52", "name": "`truncate` class without `title=` for hover reveal \u2014 components/AvatarFirstSlot.tsx:147", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/AvatarFirstSlot.tsx:147"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ad373d3bef6c3325", "name": "`truncate` class without `title=` for hover reveal \u2014 components/BatchFileUpload.tsx:108", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/BatchFileUpload.tsx:108"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-727701c4785bbb10", "name": "`truncate` class without `title=` for hover reveal \u2014 components/ToolsHub.tsx:1331", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/ToolsHub.tsx:1331"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b42ff23982b72b5c", "name": "`truncate` class without `title=` for hover reveal \u2014 components/GlobalSearch.tsx:687", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/GlobalSearch.tsx:687"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9d1e808944d24770", "name": "`truncate` class without `title=` for hover reveal \u2014 components/BatchJobCard3D.tsx:446", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/BatchJobCard3D.tsx:446"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6eaddbe47ca030d1", "name": "`truncate` class without `title=` for hover reveal \u2014 components/AudioPlayer.tsx:90", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/AudioPlayer.tsx:90"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a4ad07b77eb7ec81", "name": "`truncate` class without `title=` for hover reveal \u2014 components/CompactVoiceSelector.tsx:126", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/CompactVoiceSelector.tsx:126"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fd961a6cb26b30bc", "name": "`truncate` class without `title=` for hover reveal \u2014 components/TopBar.tsx:90", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/TopBar.tsx:90"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bc19d8d7de04cb09", "name": "`truncate` class without `title=` for hover reveal \u2014 components/CompactAvatarPicker.tsx:139", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/CompactAvatarPicker.tsx:139"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2b4f717e59693af6", "name": "`truncate` class without `title=` for hover reveal \u2014 components/Sidebar.tsx:329", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/Sidebar.tsx:329"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-013595686dba9790", "name": "`truncate` class without `title=` for hover reveal \u2014 components/Header.tsx:154", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/Header.tsx:154"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1057ccb6efc21818", "name": "`truncate` class without `title=` for hover reveal \u2014 components/HeyGenAvatarPicker.tsx:374", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/HeyGenAvatarPicker.tsx:374"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-040d101d8f961915", "name": "Stray `console.log` in TS/JS \u2014 components/HeyGenAvatarPicker.tsx:227", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 components/HeyGenAvatarPicker.tsx:227"}, "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-af4e4dc37c1012b6", "name": "`truncate` class without `title=` for hover reveal \u2014 components/tool-kit/index.tsx:331", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/tool-kit/index.tsx:331"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fa53ecf8958969b6", "name": "`truncate` class without `title=` for hover reveal \u2014 components/tools/RemoverLegendaTool.tsx:551", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/tools/RemoverLegendaTool.tsx:551"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ddc8604149483bd7", "name": "Icon-only button without accessible name \u2014 components/tools/LipSyncTool.tsx:1108", "shortDescription": {"text": "Icon-only button without accessible name \u2014 components/tools/LipSyncTool.tsx:1108"}, "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-9863834f94dddc9d", "name": "`truncate` class without `title=` for hover reveal \u2014 components/tools/LipSyncTool.tsx:1093", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/tools/LipSyncTool.tsx:1093"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-27d1e7e62af2ffdf", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/page.tsx:40", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/page.tsx:40"}, "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-37708c35aef8274c", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/layout.tsx:213", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/layout.tsx:213"}, "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-95b353ce161b48d8", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/recursos/[slug]/page.tsx:77", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/recursos/[slug]/page.tsx:77"}, "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-2ec1b1f1b9b0e9aa", "name": "Stray `console.log` in TS/JS \u2014 app/api/auth/sms/send-code/route.ts:144", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/auth/sms/send-code/route.ts:144"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f660549c60428893", "name": "`truncate` class without `title=` for hover reveal \u2014 app/admin/dashboard/page.tsx:507", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/dashboard/page.tsx:507"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-75ac6c70837b011c", "name": "`truncate` class without `title=` for hover reveal \u2014 app/tools/decupagem/page.tsx:355", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/tools/decupagem/page.tsx:355"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6696c720e601f398", "name": "`truncate` class without `title=` for hover reveal \u2014 app/tools/downloader/page.tsx:850", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/tools/downloader/page.tsx:850"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-be1da9bd7fc46aee", "name": "`truncate` class without `title=` for hover reveal \u2014 app/tools/lipsync-history/page.tsx:396", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/tools/lipsync-history/page.tsx:396"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-70578efb59711ccb", "name": "`truncate` class without `title=` for hover reveal \u2014 app/tools/separador-audio/page.tsx:327", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/tools/separador-audio/page.tsx:327"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c89f7c0d92dea4b9", "name": "`truncate` class without `title=` for hover reveal \u2014 app/tools/normalizador/page.tsx:288", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/tools/normalizador/page.tsx:288"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1cd08784c2f473d7", "name": "`truncate` class without `title=` for hover reveal \u2014 app/tools/acelerador/page.tsx:364", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/tools/acelerador/page.tsx:364"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-204983766d1f6416", "name": "`truncate` class without `title=` for hover reveal \u2014 app/tools/clickup-pilot/page.tsx:6062", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/tools/clickup-pilot/page.tsx:6062"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ac392c49b4493963", "name": "Stray `console.log` in TS/JS \u2014 app/tools/clickup-pilot/page.tsx:1491", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/tools/clickup-pilot/page.tsx:1491"}, "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-e0150137d2b23ad0", "name": "`truncate` class without `title=` for hover reveal \u2014 app/tools/auto-broll/page.tsx:1750", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/tools/auto-broll/page.tsx:1750"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1ab83c71f028380a", "name": "Stray `console.log` in TS/JS \u2014 app/tools/auto-broll/page.tsx:359", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/tools/auto-broll/page.tsx:359"}, "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-1703e12c9bc7aaba", "name": "`truncate` class without `title=` for hover reveal \u2014 app/tools/compressor/page.tsx:662", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/tools/compressor/page.tsx:662"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-98ffc4c3725eaaa2", "name": "`truncate` class without `title=` for hover reveal \u2014 app/tools/points/page.tsx:431", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/tools/points/page.tsx:431"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f29a2abc7629f8a7", "name": "Stray `console.log` in TS/JS \u2014 app/tools/points/page.tsx:119", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/tools/points/page.tsx:119"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-05c8b515a0a3c83a", "name": "`truncate` class without `title=` for hover reveal \u2014 app/tools/ltx-video/page.tsx:377", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/tools/ltx-video/page.tsx:377"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-95c6345d3ea0daa6", "name": "`truncate` class without `title=` for hover reveal \u2014 app/tools/heygen-auto/page.tsx:2042", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/tools/heygen-auto/page.tsx:2042"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9e2d25f5401bf038", "name": "Stray `console.log` in TS/JS \u2014 app/tools/heygen-auto/page.tsx:897", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/tools/heygen-auto/page.tsx:897"}, "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-bb2e67b12c5cd0b0", "name": "Stray `console.log` in TS/JS \u2014 lib/va-pipeline.ts:501", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/va-pipeline.ts:501"}, "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-cad8d5e8e8ce4e4c", "name": "Stray `console.log` in TS/JS \u2014 lib/decupagem-matcher.test.ts:81", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/decupagem-matcher.test.ts:81"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ec30d8c251b19fa6", "name": "Stray `console.log` in TS/JS \u2014 lib/doc-to-disparos.real.test.ts:19", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/doc-to-disparos.real.test.ts:19"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5747f1d9892fabf4", "name": "Stray `console.log` in TS/JS \u2014 lib/audio-engine.test.ts:22", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/audio-engine.test.ts:22"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cfbdc606eb5e6630", "name": "Stray `console.log` in TS/JS \u2014 lib/clickup-pilot-pipeline.ts:118", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/clickup-pilot-pipeline.ts:118"}, "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-55ae48afe2755245", "name": "Stray `console.log` in TS/JS \u2014 lib/magnific-pipeline-v2.ts:360", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/magnific-pipeline-v2.ts:360"}, "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-8fd0b803b0debf0f", "name": "Stray `console.log` in TS/JS \u2014 lib/heygen-api-direct.ts:599", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/heygen-api-direct.ts:599"}, "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-fcda9c3fed1824e0", "name": "Stray `console.log` in TS/JS \u2014 lib/magnific-api-client.ts:142", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/magnific-api-client.ts:142"}, "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-1c76397d8b316943", "name": "Stray `console.log` in TS/JS \u2014 lib/doc-to-disparos.test.ts:24", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/doc-to-disparos.test.ts:24"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8dbde7dd5c9a8c04", "name": "Stray `console.log` in TS/JS \u2014 lib/heygen-extension-bridge.ts:268", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/heygen-extension-bridge.ts:268"}, "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-ae4c859df8e713a2", "name": "Stray `console.log` in TS/JS \u2014 extension/background.js:132", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension/background.js:132"}, "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-86e5cafda4f0832d", "name": "Stray `console.log` in TS/JS \u2014 extension/inject.js:68", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension/inject.js:68"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-52ab060ca011f0a4", "name": "Stray `console.log` in TS/JS \u2014 extension/bridge.js:172", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension/bridge.js:172"}, "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-1d4dba1c2feaa6d9", "name": "Stray `console.log` in TS/JS \u2014 extension/heygen-content.js:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension/heygen-content.js:33"}, "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-65b9a24c55a3d2ee", "name": "Stray `console.log` in TS/JS \u2014 extension-freepik-sync/background.js:69", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension-freepik-sync/background.js:69"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-005a4ea918193a3d", "name": "Stray `console.log` in TS/JS \u2014 engine/server.ts:296", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 engine/server.ts:296"}, "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-b4786651325c9aa5", "name": "Insecure pattern 'direct_innerhtml_assignment' in reverse-engineer/sidepanel.js:221", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in reverse-engineer/sidepanel.js:221"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dc778c01577f52ff", "name": "Insecure pattern 'direct_innerhtml_assignment' in standalone/tiktok-url-collector/bookmarklet.min.js:1", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in standalone/tiktok-url-collector/bookmarklet.min.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-e86257c556a836bf", "name": "Insecure pattern 'direct_innerhtml_assignment' in standalone/tiktok-url-collector/bookmarklet.js:102", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in standalone/tiktok-url-collector/bookmarklet.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-55c8aef8bc1de441", "name": "Insecure pattern 'node_child_process' in scripts/test-replicate-wav2lip.mjs:17", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/test-replicate-wav2lip.mjs:17"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-aba5401d1efb3ec2", "name": "Insecure pattern 'node_child_process' in scripts/test-lipsync-final.mjs:19", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/test-lipsync-final.mjs:19"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-665597dc009d7b63", "name": "Insecure pattern 'node_child_process' in scripts/test-lipsync-chunked.mjs:15", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/test-lipsync-chunked.mjs:15"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-112e43cc09191481", "name": "Insecure pattern 'node_child_process' in scripts/test-modal-wav2lip.mjs:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/test-modal-wav2lip.mjs:7"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-de909b86760be9c1", "name": "Insecure pattern 'node_child_process' in scripts/test-modal-musetalk.mjs:6", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/test-modal-musetalk.mjs:6"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f88214dac6b63324", "name": "Insecure pattern 'node_child_process' in scripts/test-fal-musetalk.mjs:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/test-fal-musetalk.mjs:7"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e8cc5d382109034e", "name": "Insecure pattern 'node_child_process' in scripts/test-musetalk.mjs:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/test-musetalk.mjs:7"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f1f6c95ec0b8395a", "name": "Insecure pattern 'node_child_process' in scripts/test-pixverse-chunk.mjs:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/test-pixverse-chunk.mjs:7"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-54317eea137dd3c3", "name": "Insecure pattern 'dangerous_innerhtml' in app/page.tsx:40", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/page.tsx:40"}, "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-c58731482f77865b", "name": "Insecure pattern 'dangerous_innerhtml' in app/layout.tsx:213", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/layout.tsx:213"}, "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-d6f34e7560cfa009", "name": "Insecure pattern 'dangerous_innerhtml' in app/recursos/[slug]/page.tsx:77", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/recursos/[slug]/page.tsx:77"}, "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-1f6d35bb0d2cc068", "name": "Insecure pattern 'cors_wildcard' in app/api/temp-store/route.ts:25", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in app/api/temp-store/route.ts:25"}, "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-84fa2dad628fcfab", "name": "Insecure pattern 'node_child_process' in lib/downloader-core.ts:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in lib/downloader-core.ts:13"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6a4395ab5b45421e", "name": "Insecure pattern 'direct_innerhtml_assignment' in extension/heygen-content.js:1979", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in extension/heygen-content.js:1979"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-aedeca7612bc486d", "name": "Insecure pattern 'node_child_process' in engine/package-remover.mjs:15", "shortDescription": {"text": "Insecure pattern 'node_child_process' in engine/package-remover.mjs:15"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d613bdb4506fcf98", "name": "Insecure pattern 'node_child_process' in engine/package.mjs:14", "shortDescription": {"text": "Insecure pattern 'node_child_process' in engine/package.mjs:14"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b4dfe33474576b00", "name": "Insecure pattern 'node_child_process' in engine/pkg/server.cjs:185", "shortDescription": {"text": "Insecure pattern 'node_child_process' in engine/pkg/server.cjs:185"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6b1d52a2667a3747", "name": "Insecure pattern 'direct_innerhtml_assignment' in extension-downloader/content.js:125", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in extension-downloader/content.js:125"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c01a9941c8ef1dfa", "name": "Insecure pattern 'direct_innerhtml_assignment' in extension-downloader/popup.js:122", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in extension-downloader/popup.js:122"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-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-1cd504870d75b13f", "name": "Very large file: extension-magnific/magnific-content.js (3522 lines)", "shortDescription": {"text": "Very large file: extension-magnific/magnific-content.js (3522 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-1edc7ea9826733e7", "name": "Very large file: components/Plans.tsx (1755 lines)", "shortDescription": {"text": "Very large file: components/Plans.tsx (1755 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-d973a21f6cd15f00", "name": "Very large file: components/ToolsHub.tsx (1509 lines)", "shortDescription": {"text": "Very large file: components/ToolsHub.tsx (1509 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-848a5b6aae8a02de", "name": "Very large file: components/Landing.tsx (2028 lines)", "shortDescription": {"text": "Very large file: components/Landing.tsx (2028 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-03adcbd04d064fb2", "name": "Very large file: app/tools/clickup-pilot/page.tsx (8566 lines)", "shortDescription": {"text": "Very large file: app/tools/clickup-pilot/page.tsx (8566 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-f818db4fa68972d1", "name": "Very large file: app/tools/auto-broll/page.tsx (2332 lines)", "shortDescription": {"text": "Very large file: app/tools/auto-broll/page.tsx (2332 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-d5b9aa1e5bb81752", "name": "Very large file: app/tools/heygen-auto/page.tsx (3127 lines)", "shortDescription": {"text": "Very large file: app/tools/heygen-auto/page.tsx (3127 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-951d212457736a7c", "name": "Very large file: lib/decupagem-matcher.test.ts (1415 lines)", "shortDescription": {"text": "Very large file: lib/decupagem-matcher.test.ts (1415 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9447fa59bafeccd3", "name": "Very large file: lib/copy-parser.ts (2199 lines)", "shortDescription": {"text": "Very large file: lib/copy-parser.ts (2199 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-415304f50738ff16", "name": "Very large file: lib/ffmpeg-worker.ts (2281 lines)", "shortDescription": {"text": "Very large file: lib/ffmpeg-worker.ts (2281 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-cc5e4d632b74db57", "name": "Very large file: lib/decupagem-matcher.ts (1316 lines)", "shortDescription": {"text": "Very large file: lib/decupagem-matcher.ts (1316 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-ddba3115680f3138", "name": "Very large file: extension/background.js (1670 lines)", "shortDescription": {"text": "Very large file: extension/background.js (1670 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-3b0fb51a1635ab40", "name": "Very large file: extension/heygen-content.js (3366 lines)", "shortDescription": {"text": "Very large file: extension/heygen-content.js (3366 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-d8146496dc63764a", "name": "Very large file: engine/subtitle-remover-pkg/pipeline.py (1307 lines)", "shortDescription": {"text": "Very large file: engine/subtitle-remover-pkg/pipeline.py (1307 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-137c4cd418122bfe", "name": "Very large file: engine/subtitle-remover-local/pipeline.py (1307 lines)", "shortDescription": {"text": "Very large file: engine/subtitle-remover-local/pipeline.py (1307 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": "16 test file(s) for 403 source file(s) (ratio 0.04). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2fbe176a90ede8a4", "name": "33 TODO/FIXME markers", "shortDescription": {"text": "33 TODO/FIXME markers"}, "fullDescription": {"text": "High count of TODO/FIXME/HACK markers \u2014 track them as issues so they're not forgotten."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 516 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 117 placeholder/mock markers across 54 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-9d79c4077342a7d0", "name": "Runtime service client appears to use placeholder configuration", "shortDescription": {"text": "Runtime service client appears to use placeholder configuration"}, "fullDescription": {"text": "A runtime source file appears to wire Supabase/Firebase/AI/payment-style clients to placeholder URLs, keys, or fallback values. In the Fable corpus this often means the UI/API shape is present while the backend service is not actually configured."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-02ff5fc27330699c", "name": "Commented-code block (7 lines) in middleware.ts:7", "shortDescription": {"text": "Commented-code block (7 lines) in middleware.ts:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d77e6efd35cfcf0c", "name": "Commented-code block (5 lines) in reverse-engineer/content-bridge.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in reverse-engineer/content-bridge.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a4c4f964b6aad931", "name": "Commented-code block (5 lines) in reverse-engineer/api.js:229", "shortDescription": {"text": "Commented-code block (5 lines) in reverse-engineer/api.js:229"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-84e7098aa4f9bb76", "name": "Legacy-named symbol `queue_history_v1` in reverse-engineer/sidepanel.js:37", "shortDescription": {"text": "Legacy-named symbol `queue_history_v1` in reverse-engineer/sidepanel.js:37"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1431fd4f5a538690", "name": "Commented-code block (6 lines) in reverse-engineer/sidepanel.js:22", "shortDescription": {"text": "Commented-code block (6 lines) in reverse-engineer/sidepanel.js:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ee1e474588ae5689", "name": "Commented-code block (5 lines) in extension-magnific/background.js:18", "shortDescription": {"text": "Commented-code block (5 lines) in extension-magnific/background.js:18"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cae76a160080c359", "name": "Commented-code block (5 lines) in extension-magnific/magnific-content.js:48", "shortDescription": {"text": "Commented-code block (5 lines) in extension-magnific/magnific-content.js:48"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cfa0ac256cfd43bc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 extension-magnific/magnific-content.js:382", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 extension-magnific/magnific-content.js:382"}, "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-23504a12d73bd417", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-replicate-wav2lip.mjs:109", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-replicate-wav2lip.mjs:109"}, "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-fa2e5044fcf9d9c2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-lipsync-final.mjs:200", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-lipsync-final.mjs:200"}, "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-58fbf17083d3e256", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-lipsync-chunked.mjs:179", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-lipsync-chunked.mjs:179"}, "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-014e32581902ef5c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-dreamface.mjs:82", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-dreamface.mjs:82"}, "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-2e2b23fcc3eaefbe", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-modal-wav2lip.mjs:52", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-modal-wav2lip.mjs:52"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-693afe7ef5b141f8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-modal-musetalk.mjs:48", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-modal-musetalk.mjs:48"}, "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-954e24afa32f85ce", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-fal-musetalk.mjs:89", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-fal-musetalk.mjs:89"}, "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-acad08baf31290f5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-musetalk.mjs:60", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-musetalk.mjs:60"}, "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-ef1eb2f42d10b5bf", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-pixverse-chunk.mjs:63", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-pixverse-chunk.mjs:63"}, "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-d1444acac5d2ecdc", "name": "Commented-code block (5 lines) in components/HeyGenAvatarPicker.tsx:73", "shortDescription": {"text": "Commented-code block (5 lines) in components/HeyGenAvatarPicker.tsx:73"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bff623d58d1550cc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/tools/RemoverLegendaTool.tsx:243", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/tools/RemoverLegendaTool.tsx:243"}, "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-9b4272cf21fc61ed", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/tools/LipSyncTool.tsx:319", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/tools/LipSyncTool.tsx:319"}, "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-3ec5fdbffb294a0b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/remover-elementos/detect/route.ts:119", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/remover-elementos/detect/route.ts:119"}, "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-0d846505c3bbef48", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/auth/sms/send-code/route.ts:37", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/auth/sms/send-code/route.ts:37"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0fb1f6e9ad99d82c", "name": "Commented-code block (6 lines) in app/api/auth/diagnose/route.ts:90", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/auth/diagnose/route.ts:90"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8a55142de089319e", "name": "Commented-code block (5 lines) in app/api/downloader/route.ts:106", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/downloader/route.ts:106"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d51a399f375707ea", "name": "Legacy-named symbol `eleven_multilingual_v2` in app/api/troca-produto/elevenlabs-tts/route.ts:63", "shortDescription": {"text": "Legacy-named symbol `eleven_multilingual_v2` in app/api/troca-produto/elevenlabs-tts/route.ts:63"}, "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-6ffda9cedaef7889", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/troca-produto/elevenlabs-tts/route.ts:54", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/troca-produto/elevenlabs-tts/route.ts:54"}, "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-d6bcf28a319e8239", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/troca-produto/assemblyai/route.ts:103", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/troca-produto/assemblyai/route.ts:103"}, "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-af9d13cfe1ecf927", "name": "Commented-code block (5 lines) in app/api/voice-isolate-pro/route.ts:199", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/voice-isolate-pro/route.ts:199"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cf0dcbd135d6748e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/avatar-visual-match/route.ts:94", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/avatar-visual-match/route.ts:94"}, "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-a86fd9baad1ed5a3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/mind-ads/transcribe-srt/route.ts:191", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/mind-ads/transcribe-srt/route.ts: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-18f5794299c668cc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/replicate/upload/route.ts:60", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/replicate/upload/route.ts:60"}, "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-1b485f84314d0044", "name": "Legacy-named symbol `full_copy` in app/api/auto-broll/route.ts:93", "shortDescription": {"text": "Legacy-named symbol `full_copy` in app/api/auto-broll/route.ts:93"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4ff8700a7cc73e40", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/auto-broll/route.ts:137", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/auto-broll/route.ts:137"}, "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-54521a7e239c1875", "name": "Commented-code block (5 lines) in app/api/user/clear-password-flag/route.ts:24", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/user/clear-password-flag/route.ts:24"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-75c08775fae16eb3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/copy-srt/match/route.ts:120", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/copy-srt/match/route.ts: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-307daf58b9dec2c1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/va/diarize/route.ts:82", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/va/diarize/route.ts:82"}, "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-bbd4945007a11ede", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/tools/troca-produto/page.tsx:225", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/tools/troca-produto/page.tsx:225"}, "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-6411e0e5f87d0d24", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/tools/separador-audio/page.tsx:219", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/tools/separador-audio/page.tsx:219"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-56bb4b6edf0c3a0d", "name": "Commented-code block (5 lines) in app/tools/clickup-pilot/page.tsx:115", "shortDescription": {"text": "Commented-code block (5 lines) in app/tools/clickup-pilot/page.tsx:115"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-27632a4cd7844c49", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/tools/clickup-pilot/page.tsx:1039", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/tools/clickup-pilot/page.tsx:1039"}, "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-acea93bf9c3fcd75", "name": "Commented-code block (9 lines) in app/tools/auto-broll/page.tsx:319", "shortDescription": {"text": "Commented-code block (9 lines) in app/tools/auto-broll/page.tsx:319"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-26f8447e7a336209", "name": "Commented-code block (7 lines) in app/tools/camuflagem/page.tsx:34", "shortDescription": {"text": "Commented-code block (7 lines) in app/tools/camuflagem/page.tsx:34"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-309ca1637cb794a3", "name": "Legacy-named symbol `_decupado_pela_copy` in app/tools/decupagem-copy/page.tsx:543", "shortDescription": {"text": "Legacy-named symbol `_decupado_pela_copy` in app/tools/decupagem-copy/page.tsx:543"}, "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-901e7c22b7d5592e", "name": "Commented-code block (5 lines) in app/tools/decupagem-copy/page.tsx:254", "shortDescription": {"text": "Commented-code block (5 lines) in app/tools/decupagem-copy/page.tsx:254"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0726cdfd255e7491", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/tools/decupagem-copy/page.tsx:217", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/tools/decupagem-copy/page.tsx:217"}, "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-6cc44c418f7f866e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/tools/ltx-video/page.tsx:196", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/tools/ltx-video/page.tsx:196"}, "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-8a45b180c17a50cd", "name": "Commented-code block (5 lines) in app/tools/heygen-auto/page.tsx:962", "shortDescription": {"text": "Commented-code block (5 lines) in app/tools/heygen-auto/page.tsx:962"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-431b414ac2c7b8e5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/tools/heygen-auto/page.tsx:1103", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/tools/heygen-auto/page.tsx:1103"}, "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-1fdfccf525027212", "name": "Commented-code block (7 lines) in lib/doc-to-disparos.ts:333", "shortDescription": {"text": "Commented-code block (7 lines) in lib/doc-to-disparos.ts:333"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a5e01f1e9ec2421b", "name": "Commented-code block (5 lines) in lib/ltx-token-pool.ts:57", "shortDescription": {"text": "Commented-code block (5 lines) in lib/ltx-token-pool.ts:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-937cf151b3c4d70e", "name": "Commented-code block (5 lines) in lib/va-pipeline.ts:228", "shortDescription": {"text": "Commented-code block (5 lines) in lib/va-pipeline.ts:228"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-abe66702a83640ec", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/vmake-api.ts:137", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/vmake-api.ts:137"}, "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-fbab3590ed7533aa", "name": "Commented-code block (14 lines) in lib/doc-to-disparos.real.test.ts:134", "shortDescription": {"text": "Commented-code block (14 lines) in lib/doc-to-disparos.real.test.ts:134"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-adbc3d8f36e19279", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/dreamface-api.ts:134", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/dreamface-api.ts: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-7e16391bf4271c23", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/magnific-api-server.ts:124", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/magnific-api-server.ts:124"}, "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-461f72ac52a11371", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/transcribe.ts:101", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/transcribe.ts: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-b07e5113bd538e45", "name": "Commented-code block (6 lines) in lib/resolve-va-speakers.ts:73", "shortDescription": {"text": "Commented-code block (6 lines) in lib/resolve-va-speakers.ts:73"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f4dc2dc622f2e52d", "name": "Commented-code block (8 lines) in lib/clickup-pilot-pipeline.ts:170", "shortDescription": {"text": "Commented-code block (8 lines) in lib/clickup-pilot-pipeline.ts:170"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bf3e936463494a91", "name": "Commented-code block (11 lines) in lib/magnific-pipeline-v2.ts:62", "shortDescription": {"text": "Commented-code block (11 lines) in lib/magnific-pipeline-v2.ts:62"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-59c96666ae540dbb", "name": "Commented-code block (13 lines) in lib/heygen-api-direct.ts:454", "shortDescription": {"text": "Commented-code block (13 lines) in lib/heygen-api-direct.ts:454"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-59b88c9d1fcfa1b2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/heygen-api-direct.ts:388", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/heygen-api-direct.ts:388"}, "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-259932d789a7ab57", "name": "Commented-code block (5 lines) in lib/copy-parser.ts:301", "shortDescription": {"text": "Commented-code block (5 lines) in lib/copy-parser.ts:301"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-35438af24ece0edc", "name": "Commented-code block (5 lines) in lib/magnific-api-client.ts:72", "shortDescription": {"text": "Commented-code block (5 lines) in lib/magnific-api-client.ts:72"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-92e59a727286de4b", "name": "Commented-code block (5 lines) in lib/doc-to-disparos.test.ts:307", "shortDescription": {"text": "Commented-code block (5 lines) in lib/doc-to-disparos.test.ts:307"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ad864205868d3bb0", "name": "Commented-code block (7 lines) in lib/ffmpeg-worker.ts:328", "shortDescription": {"text": "Commented-code block (7 lines) in lib/ffmpeg-worker.ts: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-6df6d190826b393a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/ffmpeg-worker.ts:1786", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/ffmpeg-worker.ts:1786"}, "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-6e8f3759209c9b8d", "name": "Commented-code block (6 lines) in lib/heygen-extension-bridge.ts:1013", "shortDescription": {"text": "Commented-code block (6 lines) in lib/heygen-extension-bridge.ts:1013"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d7c05accf42c65ca", "name": "Commented-code block (5 lines) in lib/edited-text-align.ts:100", "shortDescription": {"text": "Commented-code block (5 lines) in lib/edited-text-align.ts:100"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-26d478b101639ad6", "name": "Commented-code block (5 lines) in lib/ltx-video.ts:70", "shortDescription": {"text": "Commented-code block (5 lines) in lib/ltx-video.ts:70"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-33b3286fb460be45", "name": "Commented-code block (5 lines) in lib/magnific-bridge.ts:100", "shortDescription": {"text": "Commented-code block (5 lines) in lib/magnific-bridge.ts:100"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4c1629575ce52f42", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/safe-fetch.ts:120", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/safe-fetch.ts: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-47613e82f046b27a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/lipsync-chunker.ts:134", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/lipsync-chunker.ts: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-5b180830e4cd5ab2", "name": "Commented-code block (9 lines) in lib/camuflagem.ts:125", "shortDescription": {"text": "Commented-code block (9 lines) in lib/camuflagem.ts:125"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-62c3764e39a178e9", "name": "Commented-code block (6 lines) in lib/decupagem-matcher.ts:39", "shortDescription": {"text": "Commented-code block (6 lines) in lib/decupagem-matcher.ts:39"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-55d2824a8b87ea7c", "name": "Network/subprocess call without timeout or try/except \u2014 modal/lipsync_musetalk.py:151", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 modal/lipsync_musetalk.py:151"}, "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-6147d5cab4abf23c", "name": "Blocking `urllib.request.urlopen(...)` inside `async def generate` \u2014 modal/lipsync_musetalk.py:227", "shortDescription": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def generate` \u2014 modal/lipsync_musetalk.py:227"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `urllib.request.urlopen(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3301e962ac15a35f", "name": "Blocking `urllib.request.urlopen(...)` inside `async def generate` \u2014 modal/lipsync_musetalk.py:229", "shortDescription": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def generate` \u2014 modal/lipsync_musetalk.py:229"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `urllib.request.urlopen(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5e76871367ef33c3", "name": "Network/subprocess call without timeout or try/except \u2014 modal/lipsync_wav2lip.py:91", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 modal/lipsync_wav2lip.py:91"}, "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-e2f3f513efa6d104", "name": "Blocking `urllib.request.urlopen(...)` inside `async def generate` \u2014 modal/lipsync_wav2lip.py:161", "shortDescription": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def generate` \u2014 modal/lipsync_wav2lip.py:161"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `urllib.request.urlopen(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d3a14f7d2480fd3b", "name": "Blocking `urllib.request.urlopen(...)` inside `async def generate` \u2014 modal/lipsync_wav2lip.py:163", "shortDescription": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def generate` \u2014 modal/lipsync_wav2lip.py:163"}, "fullDescription": {"text": "Sync I/O inside an async function blocks the event loop. While `urllib.request.urlopen(...)` is running, *all* other coroutines on this loop are paused \u2014 silent throughput collapse under concurrency. Use the async equivalent (`httpx.AsyncClient`, `asyncio.sleep`, `aiofiles`) or wrap with `await asyncio.to_thread(...)`."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "high", "confidence": 1.0}}, {"id": "scanner-635b6eb09a3c4a6c", "name": "Commented-code block (6 lines) in extension/background.js:452", "shortDescription": {"text": "Commented-code block (6 lines) in extension/background.js:452"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-73087596180f3ca7", "name": "Commented-code block (5 lines) in extension/inject.js:54", "shortDescription": {"text": "Commented-code block (5 lines) in extension/inject.js:54"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-89581033d7499bee", "name": "Legacy-named symbol `user_plan_v2` in extension/heygen-content.js:504", "shortDescription": {"text": "Legacy-named symbol `user_plan_v2` in extension/heygen-content.js:504"}, "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-7688bdc59adb6920", "name": "Commented-code block (8 lines) in extension/heygen-content.js:23", "shortDescription": {"text": "Commented-code block (8 lines) in extension/heygen-content.js:23"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e8e57f6979390189", "name": "`fetch()` without try/.catch or AbortSignal \u2014 extension-freepik-sync/background.js:355", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 extension-freepik-sync/background.js:355"}, "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-bc3db0ca14fdad1a", "name": "Commented-code block (12 lines) in engine/package.mjs:178", "shortDescription": {"text": "Commented-code block (12 lines) in engine/package.mjs:178"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fae46e96968a84e3", "name": "Commented-code block (5 lines) in engine/subtitle-remover-pkg/sttn_engine.py:41", "shortDescription": {"text": "Commented-code block (5 lines) in engine/subtitle-remover-pkg/sttn_engine.py:41"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-423d51ea3c8b386f", "name": "Legacy-named symbol `cmd_copy` in engine/subtitle-remover-pkg/pipeline.py:779", "shortDescription": {"text": "Legacy-named symbol `cmd_copy` in engine/subtitle-remover-pkg/pipeline.py:779"}, "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-f90ed4e2c94ca75b", "name": "Commented-code block (6 lines) in engine/subtitle-remover-pkg/pipeline.py:30", "shortDescription": {"text": "Commented-code block (6 lines) in engine/subtitle-remover-pkg/pipeline.py:30"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8641d03b54c13fe0", "name": "Network/subprocess call without timeout or try/except \u2014 engine/subtitle-remover-pkg/pipeline.py:776", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 engine/subtitle-remover-pkg/pipeline.py:776"}, "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-4d5f2da87c2f68df", "name": "Commented-code block (10 lines) in engine/subtitle-remover-pkg/sttn/spectral_norm.py:38", "shortDescription": {"text": "Commented-code block (10 lines) in engine/subtitle-remover-pkg/sttn/spectral_norm.py:38"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-84587c0865f43075", "name": "Commented-code block (6 lines) in engine/subtitle-remover-pkg/propainter/RAFT/utils/flow_viz.py:8", "shortDescription": {"text": "Commented-code block (6 lines) in engine/subtitle-remover-pkg/propainter/RAFT/utils/flow_viz.py:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-63e009307947f57d", "name": "Stub function `get` (body is just `pass`/`return`) \u2014 engine/subtitle-remover-pkg/propainter/utils/file_client.py:13", "shortDescription": {"text": "Stub function `get` (body is just `pass`/`return`) \u2014 engine/subtitle-remover-pkg/propainter/utils/file_client.py:13"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bfed1d4ffe478050", "name": "Legacy-named symbol `edges_old` in engine/subtitle-remover-pkg/propainter/model/canny/canny_filter.py:157", "shortDescription": {"text": "Legacy-named symbol `edges_old` in engine/subtitle-remover-pkg/propainter/model/canny/canny_filter.py:157"}, "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-3e3394b14d2281e4", "name": "Commented-code block (12 lines) in engine/subtitle-remover-pkg/propainter/model/modules/flow_loss_utils.py:48", "shortDescription": {"text": "Commented-code block (12 lines) in engine/subtitle-remover-pkg/propainter/model/modules/flow_loss_utils.py:48"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d6f28441d18c660f", "name": "Commented-code block (10 lines) in engine/subtitle-remover-pkg/propainter/model/modules/spectral_norm.py:41", "shortDescription": {"text": "Commented-code block (10 lines) in engine/subtitle-remover-pkg/propainter/model/modules/spectral_norm.py:41"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0b283ca49fa749cf", "name": "Commented-code block (5 lines) in engine/subtitle-remover-local/sttn_engine.py:41", "shortDescription": {"text": "Commented-code block (5 lines) in engine/subtitle-remover-local/sttn_engine.py:41"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c7488c215f810823", "name": "Legacy-named symbol `cmd_copy` in engine/subtitle-remover-local/pipeline.py:779", "shortDescription": {"text": "Legacy-named symbol `cmd_copy` in engine/subtitle-remover-local/pipeline.py:779"}, "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-7df2fe86a93d3d1f", "name": "Commented-code block (6 lines) in engine/subtitle-remover-local/pipeline.py:30", "shortDescription": {"text": "Commented-code block (6 lines) in engine/subtitle-remover-local/pipeline.py:30"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-344a17613fd165b3", "name": "Network/subprocess call without timeout or try/except \u2014 engine/subtitle-remover-local/pipeline.py:776", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 engine/subtitle-remover-local/pipeline.py:776"}, "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-b5b772c977a7a098", "name": "Commented-code block (10 lines) in engine/subtitle-remover-local/sttn/spectral_norm.py:38", "shortDescription": {"text": "Commented-code block (10 lines) in engine/subtitle-remover-local/sttn/spectral_norm.py:38"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-30afafe3a9e04a0e", "name": "Commented-code block (6 lines) in engine/subtitle-remover-local/propainter/RAFT/utils/flow_viz.py:8", "shortDescription": {"text": "Commented-code block (6 lines) in engine/subtitle-remover-local/propainter/RAFT/utils/flow_viz.py:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b4f25cbf0d43a887", "name": "Stub function `get` (body is just `pass`/`return`) \u2014 engine/subtitle-remover-local/propainter/utils/file_client.py:13", "shortDescription": {"text": "Stub function `get` (body is just `pass`/`return`) \u2014 engine/subtitle-remover-local/propainter/utils/file_client.py:13"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c7d56935cea18d9b", "name": "Legacy-named symbol `edges_old` in engine/subtitle-remover-local/propainter/model/canny/canny_filter.py:157", "shortDescription": {"text": "Legacy-named symbol `edges_old` in engine/subtitle-remover-local/propainter/model/canny/canny_filter.py:157"}, "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-366293ff6fba37ec", "name": "Commented-code block (12 lines) in engine/subtitle-remover-local/propainter/model/modules/flow_loss_utils.py:48", "shortDescription": {"text": "Commented-code block (12 lines) in engine/subtitle-remover-local/propainter/model/modules/flow_loss_utils.py:48"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cfa7024f9aad2d4c", "name": "Commented-code block (10 lines) in engine/subtitle-remover-local/propainter/model/modules/spectral_norm.py:41", "shortDescription": {"text": "Commented-code block (10 lines) in engine/subtitle-remover-local/propainter/model/modules/spectral_norm.py:41"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8f1bab8f54545f7c", "name": "Commented-code block (7 lines) in extension-downloader/bg.js:16", "shortDescription": {"text": "Commented-code block (7 lines) in extension-downloader/bg.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-e531b0fd493be6f1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 extension-downloader/bg.js:105", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 extension-downloader/bg.js:105"}, "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-463d7d6a0ffaca67", "name": "`fetch()` without try/.catch or AbortSignal \u2014 extension-downloader/popup.js:43", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 extension-downloader/popup.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-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:\nmodal/lipsync_musetalk.py:web, modal/lipsync_wav2lip.py:web\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-49c98f7cedd9c977", "name": "Near-duplicate function bodies in 4 places", "shortDescription": {"text": "Near-duplicate function bodies in 4 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nengine/subtitle-remover-pkg/server.py:process, engine/subtitle-remover-pkg/server.py:create_job, engine/subtitle-remover-local/server.py:process, engine/subtitle-remover-local/server.py:create_job\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:\nengine/subtitle-remover-pkg/server.py:get_job, engine/subtitle-remover-pkg/server.py:get_job_result, engine/subtitle-remover-pkg/server.py:delete_job, engine/subtitle-remover-local/server.py:get_job\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-122053f21232d80c", "name": "Near-duplicate function bodies in 14 places", "shortDescription": {"text": "Near-duplicate function bodies in 14 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nengine/subtitle-remover-pkg/sttn/auto_sttn.py:forward, engine/subtitle-remover-pkg/sttn/auto_sttn.py:forward, engine/subtitle-remover-pkg/sttn/auto_sttn.py:forward, engine/subtitle-remover-pkg/sttn/auto_sttn.py:forward\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-5072219bb024f29e", "name": "FastAPI POST `process` without auth dependency \u2014 engine/subtitle-remover-pkg/server.py:247", "shortDescription": {"text": "FastAPI POST `process` without auth dependency \u2014 engine/subtitle-remover-pkg/server.py:247"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fcfbed4b79e1d2c9", "name": "FastAPI POST `create_job` without auth dependency \u2014 engine/subtitle-remover-pkg/server.py:299", "shortDescription": {"text": "FastAPI POST `create_job` without auth dependency \u2014 engine/subtitle-remover-pkg/server.py:299"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-04293b776e6f4006", "name": "FastAPI DELETE `delete_job` without auth dependency \u2014 engine/subtitle-remover-pkg/server.py:415", "shortDescription": {"text": "FastAPI DELETE `delete_job` without auth dependency \u2014 engine/subtitle-remover-pkg/server.py:415"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cc5ae176470d65c8", "name": "FastAPI POST `process` without auth dependency \u2014 engine/subtitle-remover-local/server.py:247", "shortDescription": {"text": "FastAPI POST `process` without auth dependency \u2014 engine/subtitle-remover-local/server.py:247"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1fdb837d0c998d92", "name": "FastAPI POST `create_job` without auth dependency \u2014 engine/subtitle-remover-local/server.py:299", "shortDescription": {"text": "FastAPI POST `create_job` without auth dependency \u2014 engine/subtitle-remover-local/server.py:299"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e29a510678feed4e", "name": "FastAPI DELETE `delete_job` without auth dependency \u2014 engine/subtitle-remover-local/server.py:415", "shortDescription": {"text": "FastAPI DELETE `delete_job` without auth dependency \u2014 engine/subtitle-remover-local/server.py:415"}, "fullDescription": {"text": "`@router.delete` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-79eac80ae13359aa", "name": "Dangling fetch: POST https://api.replicate.com/v1/files (scripts/test-replicate-wav2lip.mjs:109)", "shortDescription": {"text": "Dangling fetch: POST https://api.replicate.com/v1/files (scripts/test-replicate-wav2lip.mjs:109)"}, "fullDescription": {"text": "`scripts/test-replicate-wav2lip.mjs:109` calls `POST https://api.replicate.com/v1/files` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.replicate.com/v1/files`\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-c80824df3fb0afe1", "name": "Dangling fetch: POST https://api.replicate.com/v1/models/pixverse/lipsync/predictions (scripts/test-replicate-wav2lip.mj", "shortDescription": {"text": "Dangling fetch: POST https://api.replicate.com/v1/models/pixverse/lipsync/predictions (scripts/test-replicate-wav2lip.mjs:135)"}, "fullDescription": {"text": "`scripts/test-replicate-wav2lip.mjs:135` calls `POST https://api.replicate.com/v1/models/pixverse/lipsync/predictions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.replicate.com/v1/models/pixverse/lipsync/predictions`\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-f73a3ffab3945e2e", "name": "Dangling fetch: GET https://api.replicate.com/v1/predictions/${pred.id} (scripts/test-replicate-wav2lip.mjs:160)", "shortDescription": {"text": "Dangling fetch: GET https://api.replicate.com/v1/predictions/${pred.id} (scripts/test-replicate-wav2lip.mjs:160)"}, "fullDescription": {"text": "`scripts/test-replicate-wav2lip.mjs:160` calls `GET https://api.replicate.com/v1/predictions/${pred.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.replicate.com/v1/predictions/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-652ab34697882f1b", "name": "Dangling fetch: POST https://api.replicate.com/v1/files (scripts/test-musetalk.mjs:60)", "shortDescription": {"text": "Dangling fetch: POST https://api.replicate.com/v1/files (scripts/test-musetalk.mjs:60)"}, "fullDescription": {"text": "`scripts/test-musetalk.mjs:60` calls `POST https://api.replicate.com/v1/files` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.replicate.com/v1/files`\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-840f5a65f276ff39", "name": "Dangling fetch: GET https://api.replicate.com/v1/models/chenxwh/video-retalking/versions (scripts/test-musetalk.mjs:79)", "shortDescription": {"text": "Dangling fetch: GET https://api.replicate.com/v1/models/chenxwh/video-retalking/versions (scripts/test-musetalk.mjs:79)"}, "fullDescription": {"text": "`scripts/test-musetalk.mjs:79` calls `GET https://api.replicate.com/v1/models/chenxwh/video-retalking/versions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.replicate.com/v1/models/chenxwh/video-retalking/versions`\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-8d8d0dea82ef5e6d", "name": "Dangling fetch: POST https://api.replicate.com/v1/predictions (scripts/test-musetalk.mjs:90)", "shortDescription": {"text": "Dangling fetch: POST https://api.replicate.com/v1/predictions (scripts/test-musetalk.mjs:90)"}, "fullDescription": {"text": "`scripts/test-musetalk.mjs:90` calls `POST https://api.replicate.com/v1/predictions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.replicate.com/v1/predictions`\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-35602b00574c6ac8", "name": "Dangling fetch: GET https://api.replicate.com/v1/predictions/${pred.id} (scripts/test-musetalk.mjs:108)", "shortDescription": {"text": "Dangling fetch: GET https://api.replicate.com/v1/predictions/${pred.id} (scripts/test-musetalk.mjs:108)"}, "fullDescription": {"text": "`scripts/test-musetalk.mjs:108` calls `GET https://api.replicate.com/v1/predictions/${pred.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.replicate.com/v1/predictions/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-63b92af962928929", "name": "Dangling fetch: POST https://api.replicate.com/v1/files (scripts/test-pixverse-chunk.mjs:63)", "shortDescription": {"text": "Dangling fetch: POST https://api.replicate.com/v1/files (scripts/test-pixverse-chunk.mjs:63)"}, "fullDescription": {"text": "`scripts/test-pixverse-chunk.mjs:63` calls `POST https://api.replicate.com/v1/files` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.replicate.com/v1/files`\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-31cc2b20f4b367df", "name": "Dangling fetch: POST https://api.replicate.com/v1/models/pixverse/lipsync/predictions (scripts/test-pixverse-chunk.mjs:8", "shortDescription": {"text": "Dangling fetch: POST https://api.replicate.com/v1/models/pixverse/lipsync/predictions (scripts/test-pixverse-chunk.mjs:83)"}, "fullDescription": {"text": "`scripts/test-pixverse-chunk.mjs:83` calls `POST https://api.replicate.com/v1/models/pixverse/lipsync/predictions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.replicate.com/v1/models/pixverse/lipsync/predictions`\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-5f831a811ee37043", "name": "Dangling fetch: GET https://api.replicate.com/v1/predictions/${pred.id} (scripts/test-pixverse-chunk.mjs:96)", "shortDescription": {"text": "Dangling fetch: GET https://api.replicate.com/v1/predictions/${pred.id} (scripts/test-pixverse-chunk.mjs:96)"}, "fullDescription": {"text": "`scripts/test-pixverse-chunk.mjs:96` calls `GET https://api.replicate.com/v1/predictions/${pred.id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.replicate.com/v1/predictions/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ef7b75b38ec8ef0d", "name": "Dangling fetch: GET https://www.magnific.com/app/api/auth/verify?lang=en_US (extension-freepik-sync/background.js:151)", "shortDescription": {"text": "Dangling fetch: GET https://www.magnific.com/app/api/auth/verify?lang=en_US (extension-freepik-sync/background.js:151)"}, "fullDescription": {"text": "`extension-freepik-sync/background.js:151` calls `GET https://www.magnific.com/app/api/auth/verify?lang=en_US` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/www.magnific.com/app/api/auth/verify`\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-614a1dbc58565d11", "name": "Dangling fetch: GET http://127.0.0.1:${port}/health (engine/pkg/server.cjs:981)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/health (engine/pkg/server.cjs:981)"}, "fullDescription": {"text": "`engine/pkg/server.cjs:981` calls `GET http://127.0.0.1:${port}/health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/health`\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-02503ae43524eaa7", "name": "Dangling fetch: GET http://127.0.0.1:${p}/health (extension-downloader/bg.js:100)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${p}/health (extension-downloader/bg.js:100)"}, "fullDescription": {"text": "`extension-downloader/bg.js:100` calls `GET http://127.0.0.1:${p}/health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/health`\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-f84921890e2b4d82", "name": "Dangling fetch: GET http://127.0.0.1:${p}/pair (extension-downloader/bg.js:105)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${p}/pair (extension-downloader/bg.js:105)"}, "fullDescription": {"text": "`extension-downloader/bg.js:105` calls `GET http://127.0.0.1:${p}/pair` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/pair`\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-d5c529d53efae135", "name": "Dangling fetch: GET http://127.0.0.1:${p}/health (extension-downloader/popup.js:39)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${p}/health (extension-downloader/popup.js:39)"}, "fullDescription": {"text": "`extension-downloader/popup.js:39` calls `GET http://127.0.0.1:${p}/health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/health`\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-9699bebdfa9dc01f", "name": "Dangling fetch: GET http://127.0.0.1:${p}/pair (extension-downloader/popup.js:43)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${p}/pair (extension-downloader/popup.js:43)"}, "fullDescription": {"text": "`extension-downloader/popup.js:43` calls `GET http://127.0.0.1:${p}/pair` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/pair`\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-90bd0431183f8976", "name": "Dangling fetch: GET /api/user/secrets (components/MissingKeyBanner.tsx:37)", "shortDescription": {"text": "Dangling fetch: GET /api/user/secrets (components/MissingKeyBanner.tsx:37)"}, "fullDescription": {"text": "`components/MissingKeyBanner.tsx:37` calls `GET /api/user/secrets` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/user/secrets`\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-559205821b3ba351", "name": "Dangling fetch: POST /api/billing/checkout (components/Plans.tsx:764)", "shortDescription": {"text": "Dangling fetch: POST /api/billing/checkout (components/Plans.tsx:764)"}, "fullDescription": {"text": "`components/Plans.tsx:764` calls `POST /api/billing/checkout` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/billing/checkout`\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-e86a0e8adc763665", "name": "Dangling fetch: GET /api/heygen/voices?q=${encodeURIComponent(query.trim())}&lang=pt (components/CompactVoiceSelector.ts", "shortDescription": {"text": "Dangling fetch: GET /api/heygen/voices?q=${encodeURIComponent(query.trim())}&lang=pt (components/CompactVoiceSelector.tsx:100)"}, "fullDescription": {"text": "`components/CompactVoiceSelector.tsx:100` calls `GET /api/heygen/voices?q=${encodeURIComponent(query.trim())}&lang=pt` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/heygen/voices`\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-e35beedbaad0bb0b", "name": "Dangling fetch: POST /api/user/heartbeat (components/Heartbeat.tsx:72)", "shortDescription": {"text": "Dangling fetch: POST /api/user/heartbeat (components/Heartbeat.tsx:72)"}, "fullDescription": {"text": "`components/Heartbeat.tsx:72` calls `POST /api/user/heartbeat` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/user/heartbeat`\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-d5148bd57b5e2a03", "name": "Dangling fetch: POST /api/billing/setup-intent (components/CardUpdate.tsx:49)", "shortDescription": {"text": "Dangling fetch: POST /api/billing/setup-intent (components/CardUpdate.tsx:49)"}, "fullDescription": {"text": "`components/CardUpdate.tsx:49` calls `POST /api/billing/setup-intent` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/billing/setup-intent`\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-7a810af3131ad7de", "name": "Dangling fetch: POST /api/billing/set-default-card (components/CardUpdate.tsx:73)", "shortDescription": {"text": "Dangling fetch: POST /api/billing/set-default-card (components/CardUpdate.tsx:73)"}, "fullDescription": {"text": "`components/CardUpdate.tsx:73` calls `POST /api/billing/set-default-card` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/billing/set-default-card`\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-71939bd8744c07cd", "name": "Dangling fetch: POST /api/heygen/clone-voice (components/HeyGenVoicePicker.tsx:81)", "shortDescription": {"text": "Dangling fetch: POST /api/heygen/clone-voice (components/HeyGenVoicePicker.tsx:81)"}, "fullDescription": {"text": "`components/HeyGenVoicePicker.tsx:81` calls `POST /api/heygen/clone-voice` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/heygen/clone-voice`\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-b0c404c6055aa129", "name": "Dangling fetch: GET /api/tools/remove-subtitle/status?record_id=${recordId}&mode=smart (components/tools/RemoverLegendaT", "shortDescription": {"text": "Dangling fetch: GET /api/tools/remove-subtitle/status?record_id=${recordId}&mode=smart (components/tools/RemoverLegendaTool.tsx:144)"}, "fullDescription": {"text": "`components/tools/RemoverLegendaTool.tsx:144` calls `GET /api/tools/remove-subtitle/status?record_id=${recordId}&mode=smart` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tools/remove-subtitle/status`\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-58883058c5b11ba3", "name": "Dangling fetch: POST /api/tools/remove-subtitle/upload/part (components/tools/RemoverLegendaTool.tsx:181)", "shortDescription": {"text": "Dangling fetch: POST /api/tools/remove-subtitle/upload/part (components/tools/RemoverLegendaTool.tsx:181)"}, "fullDescription": {"text": "`components/tools/RemoverLegendaTool.tsx:181` calls `POST /api/tools/remove-subtitle/upload/part` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tools/remove-subtitle/upload/part`\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-95e0bddc7dd1cf5f", "name": "Dangling fetch: POST /api/tools/remove-subtitle/upload/init (components/tools/RemoverLegendaTool.tsx:207)", "shortDescription": {"text": "Dangling fetch: POST /api/tools/remove-subtitle/upload/init (components/tools/RemoverLegendaTool.tsx:207)"}, "fullDescription": {"text": "`components/tools/RemoverLegendaTool.tsx:207` calls `POST /api/tools/remove-subtitle/upload/init` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tools/remove-subtitle/upload/init`\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-6b85c80d7dfef7f7", "name": "Dangling fetch: POST /api/tools/remove-subtitle (components/tools/RemoverLegendaTool.tsx:243)", "shortDescription": {"text": "Dangling fetch: POST /api/tools/remove-subtitle (components/tools/RemoverLegendaTool.tsx:243)"}, "fullDescription": {"text": "`components/tools/RemoverLegendaTool.tsx:243` calls `POST /api/tools/remove-subtitle` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tools/remove-subtitle`\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-b15d68e4d6365778", "name": "Dangling fetch: POST /api/tools/lipsync/upload-url (components/tools/LipSyncTool.tsx:279)", "shortDescription": {"text": "Dangling fetch: POST /api/tools/lipsync/upload-url (components/tools/LipSyncTool.tsx:279)"}, "fullDescription": {"text": "`components/tools/LipSyncTool.tsx:279` calls `POST /api/tools/lipsync/upload-url` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tools/lipsync/upload-url`\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-204a2080ef4f24cf", "name": "Dangling fetch: POST /api/tools/lipsync (components/tools/LipSyncTool.tsx:307)", "shortDescription": {"text": "Dangling fetch: POST /api/tools/lipsync (components/tools/LipSyncTool.tsx:307)"}, "fullDescription": {"text": "`components/tools/LipSyncTool.tsx:307` calls `POST /api/tools/lipsync` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tools/lipsync`\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-30c1009a9e66ea7d", "name": "Dangling fetch: POST /api/auth/resend-confirm (app/auth/error/error-client.tsx:51)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/resend-confirm (app/auth/error/error-client.tsx:51)"}, "fullDescription": {"text": "`app/auth/error/error-client.tsx:51` calls `POST /api/auth/resend-confirm` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/resend-confirm`\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-01a57a4badc025d5", "name": "Dangling fetch: POST /api/auth/forgot-password (app/reset-password/page.tsx:167)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/forgot-password (app/reset-password/page.tsx:167)"}, "fullDescription": {"text": "`app/reset-password/page.tsx:167` calls `POST /api/auth/forgot-password` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/forgot-password`\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-63c9877d763e1945", "name": "Dangling fetch: POST /api/auth/diagnose (app/login/page.tsx:45)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/diagnose (app/login/page.tsx:45)"}, "fullDescription": {"text": "`app/login/page.tsx:45` calls `POST /api/auth/diagnose` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/diagnose`\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-f71b0b31d1236967", "name": "Dangling fetch: POST /api/auth/resend-confirm (app/login/page.tsx:119)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/resend-confirm (app/login/page.tsx:119)"}, "fullDescription": {"text": "`app/login/page.tsx:119` calls `POST /api/auth/resend-confirm` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/resend-confirm`\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-31cd3735b3e0d7f6", "name": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/remover-elementos/detect/route.ts:119)", "shortDescription": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/remover-elementos/detect/route.ts:119)"}, "fullDescription": {"text": "`app/api/remover-elementos/detect/route.ts:119` calls `POST https://api.anthropic.com/v1/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.anthropic.com/v1/messages`\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-ab1c93a20ac78735", "name": "Dangling fetch: GET https://api.heygen.com/v2/voices (app/api/heygen/voices/route.ts:34)", "shortDescription": {"text": "Dangling fetch: GET https://api.heygen.com/v2/voices (app/api/heygen/voices/route.ts:34)"}, "fullDescription": {"text": "`app/api/heygen/voices/route.ts:34` calls `GET https://api.heygen.com/v2/voices` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.heygen.com/v2/voices`\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-17e5f26df7c40dc7", "name": "Dangling fetch: GET https://api.heygen.com/v2/avatars (app/api/heygen/avatars/route.ts:71)", "shortDescription": {"text": "Dangling fetch: GET https://api.heygen.com/v2/avatars (app/api/heygen/avatars/route.ts:71)"}, "fullDescription": {"text": "`app/api/heygen/avatars/route.ts:71` calls `GET https://api.heygen.com/v2/avatars` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.heygen.com/v2/avatars`\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-c7554582caea71df", "name": "Dangling fetch: POST https://upload.heygen.com/v1/asset (app/api/heygen/clone-voice/route.ts:68)", "shortDescription": {"text": "Dangling fetch: POST https://upload.heygen.com/v1/asset (app/api/heygen/clone-voice/route.ts:68)"}, "fullDescription": {"text": "`app/api/heygen/clone-voice/route.ts:68` calls `POST https://upload.heygen.com/v1/asset` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/upload.heygen.com/v1/asset`\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-6022ad155e989524", "name": "Dangling fetch: POST https://api.heygen.com/v2/voice/clone (app/api/heygen/clone-voice/route.ts:97)", "shortDescription": {"text": "Dangling fetch: POST https://api.heygen.com/v2/voice/clone (app/api/heygen/clone-voice/route.ts:97)"}, "fullDescription": {"text": "`app/api/heygen/clone-voice/route.ts:97` calls `POST https://api.heygen.com/v2/voice/clone` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.heygen.com/v2/voice/clone`\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-3ce6ccb0e8972f0f", "name": "Dangling fetch: POST https://api.heygen.com/v1/voice/clone (app/api/heygen/clone-voice/route.ts:115)", "shortDescription": {"text": "Dangling fetch: POST https://api.heygen.com/v1/voice/clone (app/api/heygen/clone-voice/route.ts:115)"}, "fullDescription": {"text": "`app/api/heygen/clone-voice/route.ts:115` calls `POST https://api.heygen.com/v1/voice/clone` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.heygen.com/v1/voice/clone`\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-972790d76d5e3040", "name": "Dangling fetch: DELETE https://api.elevenlabs.io/v1/voices/${encodeURIComponent(body.voiceId)} (app/api/troca-produto/el", "shortDescription": {"text": "Dangling fetch: DELETE https://api.elevenlabs.io/v1/voices/${encodeURIComponent(body.voiceId)} (app/api/troca-produto/elevenlabs-delete/route.ts:45)"}, "fullDescription": {"text": "`app/api/troca-produto/elevenlabs-delete/route.ts:45` calls `DELETE https://api.elevenlabs.io/v1/voices/${encodeURIComponent(body.voiceId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.elevenlabs.io/v1/voices/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-42c44da9fe3680f7", "name": "Dangling fetch: POST https://api.elevenlabs.io/v1/voices/add (app/api/troca-produto/elevenlabs-clone/route.ts:64)", "shortDescription": {"text": "Dangling fetch: POST https://api.elevenlabs.io/v1/voices/add (app/api/troca-produto/elevenlabs-clone/route.ts:64)"}, "fullDescription": {"text": "`app/api/troca-produto/elevenlabs-clone/route.ts:64` calls `POST https://api.elevenlabs.io/v1/voices/add` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.elevenlabs.io/v1/voices/add`\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-c70db203d5449cdb", "name": "Dangling fetch: POST https://api.replicate.com/v1/files (app/api/voice-isolate-pro/route.ts:117)", "shortDescription": {"text": "Dangling fetch: POST https://api.replicate.com/v1/files (app/api/voice-isolate-pro/route.ts:117)"}, "fullDescription": {"text": "`app/api/voice-isolate-pro/route.ts:117` calls `POST https://api.replicate.com/v1/files` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.replicate.com/v1/files`\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-f5006f68a2fb487c", "name": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/avatar-visual-match/route.ts:94)", "shortDescription": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/avatar-visual-match/route.ts:94)"}, "fullDescription": {"text": "`app/api/avatar-visual-match/route.ts:94` calls `POST https://api.anthropic.com/v1/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.anthropic.com/v1/messages`\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-92443c775c3b16fa", "name": "Dangling fetch: POST https://api.replicate.com/v1/files (app/api/replicate/upload/route.ts:60)", "shortDescription": {"text": "Dangling fetch: POST https://api.replicate.com/v1/files (app/api/replicate/upload/route.ts:60)"}, "fullDescription": {"text": "`app/api/replicate/upload/route.ts:60` calls `POST https://api.replicate.com/v1/files` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.replicate.com/v1/files`\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-93b3ac26d22952dd", "name": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/auto-broll/route.ts:137)", "shortDescription": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/auto-broll/route.ts:137)"}, "fullDescription": {"text": "`app/api/auto-broll/route.ts:137` calls `POST https://api.anthropic.com/v1/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.anthropic.com/v1/messages`\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-5b6ea6b29e3d8863", "name": "Dangling fetch: POST /api/auth/forgot-password (app/forgot-password/page.tsx:31)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/forgot-password (app/forgot-password/page.tsx:31)"}, "fullDescription": {"text": "`app/forgot-password/page.tsx:31` calls `POST /api/auth/forgot-password` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/forgot-password`\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-409dd9821be70c01", "name": "Dangling fetch: POST /api/user/clear-password-flag (app/trocar-senha/page.tsx:45)", "shortDescription": {"text": "Dangling fetch: POST /api/user/clear-password-flag (app/trocar-senha/page.tsx:45)"}, "fullDescription": {"text": "`app/trocar-senha/page.tsx:45` calls `POST /api/user/clear-password-flag` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/user/clear-password-flag`\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-fb2f47005acc791f", "name": "Dangling fetch: GET /api/admin/list-users (app/admin/page.tsx:83)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/list-users (app/admin/page.tsx:83)"}, "fullDescription": {"text": "`app/admin/page.tsx:83` calls `GET /api/admin/list-users` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/list-users`\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-2373d8c50b817116", "name": "Dangling fetch: POST /api/admin/create-user (app/admin/page.tsx:112)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/create-user (app/admin/page.tsx:112)"}, "fullDescription": {"text": "`app/admin/page.tsx:112` calls `POST /api/admin/create-user` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/create-user`\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-15caaa19926ee2cb", "name": "Dangling fetch: POST /api/admin/set-tier (app/admin/page.tsx:148)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/set-tier (app/admin/page.tsx:148)"}, "fullDescription": {"text": "`app/admin/page.tsx:148` calls `POST /api/admin/set-tier` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/set-tier`\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-eb5a1fe393db76a2", "name": "Dangling fetch: POST /api/admin/reset-password (app/admin/page.tsx:184)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/reset-password (app/admin/page.tsx:184)"}, "fullDescription": {"text": "`app/admin/page.tsx:184` calls `POST /api/admin/reset-password` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/reset-password`\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-a2280aa4282bb873", "name": "Dangling fetch: POST /api/admin/toggle-user (app/admin/page.tsx:219)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/toggle-user (app/admin/page.tsx:219)"}, "fullDescription": {"text": "`app/admin/page.tsx:219` calls `POST /api/admin/toggle-user` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/toggle-user`\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-ba9296aef22bea29", "name": "Dangling fetch: GET /api/admin/dashboard (app/admin/dashboard/page.tsx:98)", "shortDescription": {"text": "Dangling fetch: GET /api/admin/dashboard (app/admin/dashboard/page.tsx:98)"}, "fullDescription": {"text": "`app/admin/dashboard/page.tsx:98` calls `GET /api/admin/dashboard` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/dashboard`\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-6e73197d96c420c5", "name": "Dangling fetch: POST /api/admin/user-search?q=${encodeURIComponent(query)} (app/admin/dashboard/page.tsx:581)", "shortDescription": {"text": "Dangling fetch: POST /api/admin/user-search?q=${encodeURIComponent(query)} (app/admin/dashboard/page.tsx:581)"}, "fullDescription": {"text": "`app/admin/dashboard/page.tsx:581` calls `POST /api/admin/user-search?q=${encodeURIComponent(query)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/admin/user-search`\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-13b2fbaae9360ed1", "name": "Dangling fetch: POST /api/downloader (app/tools/downloader/page.tsx:268)", "shortDescription": {"text": "Dangling fetch: POST /api/downloader (app/tools/downloader/page.tsx:268)"}, "fullDescription": {"text": "`app/tools/downloader/page.tsx:268` calls `POST /api/downloader` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/downloader`\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-e371d9af7e88aafd", "name": "Dangling fetch: POST /api/troca-produto/assemblyai (app/tools/troca-produto/page.tsx:167)", "shortDescription": {"text": "Dangling fetch: POST /api/troca-produto/assemblyai (app/tools/troca-produto/page.tsx:167)"}, "fullDescription": {"text": "`app/tools/troca-produto/page.tsx:167` calls `POST /api/troca-produto/assemblyai` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/troca-produto/assemblyai`\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-1eccd607c68fe563", "name": "Dangling fetch: POST /api/troca-produto/elevenlabs-clone (app/tools/troca-produto/page.tsx:225)", "shortDescription": {"text": "Dangling fetch: POST /api/troca-produto/elevenlabs-clone (app/tools/troca-produto/page.tsx:225)"}, "fullDescription": {"text": "`app/tools/troca-produto/page.tsx:225` calls `POST /api/troca-produto/elevenlabs-clone` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/troca-produto/elevenlabs-clone`\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-9d88667fda61d22a", "name": "Dangling fetch: POST /api/troca-produto/elevenlabs-tts (app/tools/troca-produto/page.tsx:250)", "shortDescription": {"text": "Dangling fetch: POST /api/troca-produto/elevenlabs-tts (app/tools/troca-produto/page.tsx:250)"}, "fullDescription": {"text": "`app/tools/troca-produto/page.tsx:250` calls `POST /api/troca-produto/elevenlabs-tts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/troca-produto/elevenlabs-tts`\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-8c940ce209e299d9", "name": "Dangling fetch: POST /api/troca-produto/elevenlabs-delete (app/tools/troca-produto/page.tsx:284)", "shortDescription": {"text": "Dangling fetch: POST /api/troca-produto/elevenlabs-delete (app/tools/troca-produto/page.tsx:284)"}, "fullDescription": {"text": "`app/tools/troca-produto/page.tsx:284` calls `POST /api/troca-produto/elevenlabs-delete` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/troca-produto/elevenlabs-delete`\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-93b73a67cbb76400", "name": "Dangling fetch: POST /api/separador-audio/upload-url (app/tools/separador-audio/page.tsx:147)", "shortDescription": {"text": "Dangling fetch: POST /api/separador-audio/upload-url (app/tools/separador-audio/page.tsx:147)"}, "fullDescription": {"text": "`app/tools/separador-audio/page.tsx:147` calls `POST /api/separador-audio/upload-url` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/separador-audio/upload-url`\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-9797186d09eaffa1", "name": "Dangling fetch: POST /api/separador-audio (app/tools/separador-audio/page.tsx:193)", "shortDescription": {"text": "Dangling fetch: POST /api/separador-audio (app/tools/separador-audio/page.tsx:193)"}, "fullDescription": {"text": "`app/tools/separador-audio/page.tsx:193` calls `POST /api/separador-audio` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/separador-audio`\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-0f19e6f3dba2beb3", "name": "Dangling fetch: GET /api/user/secrets (app/tools/clickup-pilot/page.tsx:683)", "shortDescription": {"text": "Dangling fetch: GET /api/user/secrets (app/tools/clickup-pilot/page.tsx:683)"}, "fullDescription": {"text": "`app/tools/clickup-pilot/page.tsx:683` calls `GET /api/user/secrets` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/user/secrets`\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-abad8bf98bd42950", "name": "Dangling fetch: POST /api/avatar-visual-match (app/tools/clickup-pilot/page.tsx:1206)", "shortDescription": {"text": "Dangling fetch: POST /api/avatar-visual-match (app/tools/clickup-pilot/page.tsx:1206)"}, "fullDescription": {"text": "`app/tools/clickup-pilot/page.tsx:1206` calls `POST /api/avatar-visual-match` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/avatar-visual-match`\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-d7a6d6345d7b661c", "name": "Dangling fetch: GET /api/heygen/voices?lang=pt (app/tools/clickup-pilot/page.tsx:1273)", "shortDescription": {"text": "Dangling fetch: GET /api/heygen/voices?lang=pt (app/tools/clickup-pilot/page.tsx:1273)"}, "fullDescription": {"text": "`app/tools/clickup-pilot/page.tsx:1273` calls `GET /api/heygen/voices?lang=pt` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/heygen/voices`\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-be082edf5931a94c", "name": "Dangling fetch: POST /api/avatar-visual-match (app/tools/clickup-pilot/page.tsx:4153)", "shortDescription": {"text": "Dangling fetch: POST /api/avatar-visual-match (app/tools/clickup-pilot/page.tsx:4153)"}, "fullDescription": {"text": "`app/tools/clickup-pilot/page.tsx:4153` calls `POST /api/avatar-visual-match` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/avatar-visual-match`\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-38d133942606689c", "name": "Dangling fetch: GET /api/docs/fetch?url=${encodeURIComponent(url)} (app/tools/clickup-pilot/page.tsx:4541)", "shortDescription": {"text": "Dangling fetch: GET /api/docs/fetch?url=${encodeURIComponent(url)} (app/tools/clickup-pilot/page.tsx:4541)"}, "fullDescription": {"text": "`app/tools/clickup-pilot/page.tsx:4541` calls `GET /api/docs/fetch?url=${encodeURIComponent(url)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/docs/fetch`\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-b29c615b6c4fa319", "name": "Dangling fetch: POST /api/va/diarize (app/tools/clickup-pilot/page.tsx:4951)", "shortDescription": {"text": "Dangling fetch: POST /api/va/diarize (app/tools/clickup-pilot/page.tsx:4951)"}, "fullDescription": {"text": "`app/tools/clickup-pilot/page.tsx:4951` calls `POST /api/va/diarize` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/va/diarize`\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-0d0f012fe11a0558", "name": "Dangling fetch: POST /api/va/diarize (app/tools/clickup-pilot/page.tsx:5330)", "shortDescription": {"text": "Dangling fetch: POST /api/va/diarize (app/tools/clickup-pilot/page.tsx:5330)"}, "fullDescription": {"text": "`app/tools/clickup-pilot/page.tsx:5330` calls `POST /api/va/diarize` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/va/diarize`\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-0c31dfca1d5ebf3f", "name": "Dangling fetch: POST /api/camuflagem/transcribe (app/tools/clickup-pilot/page.tsx:5907)", "shortDescription": {"text": "Dangling fetch: POST /api/camuflagem/transcribe (app/tools/clickup-pilot/page.tsx:5907)"}, "fullDescription": {"text": "`app/tools/clickup-pilot/page.tsx:5907` calls `POST /api/camuflagem/transcribe` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/camuflagem/transcribe`\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-04ad3a96739b5060", "name": "Dangling fetch: GET /api/auto-broll-v2/save-creds (app/tools/auto-broll/page.tsx:21)", "shortDescription": {"text": "Dangling fetch: GET /api/auto-broll-v2/save-creds (app/tools/auto-broll/page.tsx:21)"}, "fullDescription": {"text": "`app/tools/auto-broll/page.tsx:21` calls `GET /api/auto-broll-v2/save-creds` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auto-broll-v2/save-creds`\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-d2a3ed53501531e0", "name": "Dangling fetch: GET /api/auto-broll-v2/save-creds (app/tools/auto-broll/page.tsx:55)", "shortDescription": {"text": "Dangling fetch: GET /api/auto-broll-v2/save-creds (app/tools/auto-broll/page.tsx:55)"}, "fullDescription": {"text": "`app/tools/auto-broll/page.tsx:55` calls `GET /api/auto-broll-v2/save-creds` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auto-broll-v2/save-creds`\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-ae35f03a2733fe5b", "name": "Dangling fetch: POST /api/camuflagem/transcribe (app/tools/camuflagem/page.tsx:300)", "shortDescription": {"text": "Dangling fetch: POST /api/camuflagem/transcribe (app/tools/camuflagem/page.tsx:300)"}, "fullDescription": {"text": "`app/tools/camuflagem/page.tsx:300` calls `POST /api/camuflagem/transcribe` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/camuflagem/transcribe`\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-d0be7d9a1e9692cb", "name": "Dangling fetch: POST /api/decupagem-copy/transcribe (app/tools/decupagem-copy/page.tsx:217)", "shortDescription": {"text": "Dangling fetch: POST /api/decupagem-copy/transcribe (app/tools/decupagem-copy/page.tsx:217)"}, "fullDescription": {"text": "`app/tools/decupagem-copy/page.tsx:217` calls `POST /api/decupagem-copy/transcribe` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/decupagem-copy/transcribe`\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-1480ac633123e461", "name": "Dangling fetch: POST /api/decupagem-copy/match (app/tools/decupagem-copy/page.tsx:299)", "shortDescription": {"text": "Dangling fetch: POST /api/decupagem-copy/match (app/tools/decupagem-copy/page.tsx:299)"}, "fullDescription": {"text": "`app/tools/decupagem-copy/page.tsx:299` calls `POST /api/decupagem-copy/match` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/decupagem-copy/match`\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-af68bb58bf2794dd", "name": "Dangling fetch: POST /api/decupagem-copy/audit (app/tools/decupagem-copy/page.tsx:371)", "shortDescription": {"text": "Dangling fetch: POST /api/decupagem-copy/audit (app/tools/decupagem-copy/page.tsx:371)"}, "fullDescription": {"text": "`app/tools/decupagem-copy/page.tsx:371` calls `POST /api/decupagem-copy/audit` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/decupagem-copy/audit`\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-04b3c6fa8b2b9a56", "name": "Dangling fetch: GET /api/ltx-video/status (app/tools/ltx-video/page.tsx:75)", "shortDescription": {"text": "Dangling fetch: GET /api/ltx-video/status (app/tools/ltx-video/page.tsx:75)"}, "fullDescription": {"text": "`app/tools/ltx-video/page.tsx:75` calls `GET /api/ltx-video/status` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/ltx-video/status`\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-70301c56817c5884", "name": "Dangling fetch: POST /api/ltx-video/generate (app/tools/ltx-video/page.tsx:137)", "shortDescription": {"text": "Dangling fetch: POST /api/ltx-video/generate (app/tools/ltx-video/page.tsx:137)"}, "fullDescription": {"text": "`app/tools/ltx-video/page.tsx:137` calls `POST /api/ltx-video/generate` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/ltx-video/generate`\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-812ac8ff2cf0913c", "name": "Dangling fetch: POST /api/mind-ads/transcribe-srt (app/tools/copy-srt/page.tsx:138)", "shortDescription": {"text": "Dangling fetch: POST /api/mind-ads/transcribe-srt (app/tools/copy-srt/page.tsx:138)"}, "fullDescription": {"text": "`app/tools/copy-srt/page.tsx:138` calls `POST /api/mind-ads/transcribe-srt` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/mind-ads/transcribe-srt`\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-878d59f7eb5060d4", "name": "Dangling fetch: GET /api/docs/fetch?url=${encodeURIComponent(docLink.trim())} (app/tools/heygen-auto/page.tsx:1103)", "shortDescription": {"text": "Dangling fetch: GET /api/docs/fetch?url=${encodeURIComponent(docLink.trim())} (app/tools/heygen-auto/page.tsx:1103)"}, "fullDescription": {"text": "`app/tools/heygen-auto/page.tsx:1103` calls `GET /api/docs/fetch?url=${encodeURIComponent(docLink.trim())}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/docs/fetch`\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-e07790d168d86116", "name": "Dangling fetch: GET /api/billing/subscription (app/configuracoes/assinatura/page.tsx:71)", "shortDescription": {"text": "Dangling fetch: GET /api/billing/subscription (app/configuracoes/assinatura/page.tsx:71)"}, "fullDescription": {"text": "`app/configuracoes/assinatura/page.tsx:71` calls `GET /api/billing/subscription` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/billing/subscription`\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-dfd92bf7e03fc3a9", "name": "Dangling fetch: POST /api/billing/cancel (app/configuracoes/assinatura/page.tsx:98)", "shortDescription": {"text": "Dangling fetch: POST /api/billing/cancel (app/configuracoes/assinatura/page.tsx:98)"}, "fullDescription": {"text": "`app/configuracoes/assinatura/page.tsx:98` calls `POST /api/billing/cancel` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/billing/cancel`\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-e0f064fffcf277b1", "name": "Dangling fetch: GET /api/user/secrets (app/configuracoes/api/page.tsx:131)", "shortDescription": {"text": "Dangling fetch: GET /api/user/secrets (app/configuracoes/api/page.tsx:131)"}, "fullDescription": {"text": "`app/configuracoes/api/page.tsx:131` calls `GET /api/user/secrets` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/user/secrets`\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-85be2396b03d8ae5", "name": "Dangling fetch: PUT /api/user/secrets (app/configuracoes/api/page.tsx:154)", "shortDescription": {"text": "Dangling fetch: PUT /api/user/secrets (app/configuracoes/api/page.tsx:154)"}, "fullDescription": {"text": "`app/configuracoes/api/page.tsx:154` calls `PUT /api/user/secrets` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/user/secrets`\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-3713c301c0d825c8", "name": "Dangling fetch: DELETE /api/user/secrets (app/configuracoes/api/page.tsx:175)", "shortDescription": {"text": "Dangling fetch: DELETE /api/user/secrets (app/configuracoes/api/page.tsx:175)"}, "fullDescription": {"text": "`app/configuracoes/api/page.tsx:175` calls `DELETE /api/user/secrets` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/user/secrets`\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-9f56bfa985b5778f", "name": "Dangling fetch: GET /api/auto-broll-v2/save-creds (app/configuracoes/magnific/page.tsx:56)", "shortDescription": {"text": "Dangling fetch: GET /api/auto-broll-v2/save-creds (app/configuracoes/magnific/page.tsx:56)"}, "fullDescription": {"text": "`app/configuracoes/magnific/page.tsx:56` calls `GET /api/auto-broll-v2/save-creds` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auto-broll-v2/save-creds`\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-944680396e715b97", "name": "Dangling fetch: POST /api/auto-broll-v2/save-creds (app/configuracoes/magnific/page.tsx:115)", "shortDescription": {"text": "Dangling fetch: POST /api/auto-broll-v2/save-creds (app/configuracoes/magnific/page.tsx:115)"}, "fullDescription": {"text": "`app/configuracoes/magnific/page.tsx:115` calls `POST /api/auto-broll-v2/save-creds` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auto-broll-v2/save-creds`\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-ccc60b2618ce683e", "name": "Dangling fetch: DELETE /api/auto-broll-v2/save-creds (app/configuracoes/magnific/page.tsx:140)", "shortDescription": {"text": "Dangling fetch: DELETE /api/auto-broll-v2/save-creds (app/configuracoes/magnific/page.tsx:140)"}, "fullDescription": {"text": "`app/configuracoes/magnific/page.tsx:140` calls `DELETE /api/auto-broll-v2/save-creds` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auto-broll-v2/save-creds`\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-ada9be2c11ac6705", "name": "Dangling fetch: POST /api/auth/sms/verify-code (app/verify-phone/page.tsx:31)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/sms/verify-code (app/verify-phone/page.tsx:31)"}, "fullDescription": {"text": "`app/verify-phone/page.tsx:31` calls `POST /api/auth/sms/verify-code` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/sms/verify-code`\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-961d67eb10dbfdc5", "name": "Dangling fetch: POST /api/auth/sms/send-code (app/verify-phone/page.tsx:53)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/sms/send-code (app/verify-phone/page.tsx:53)"}, "fullDescription": {"text": "`app/verify-phone/page.tsx:53` calls `POST /api/auth/sms/send-code` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/sms/send-code`\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-1bd5da8219eb8e4e", "name": "Dangling fetch: POST /api/auth/sms/send-code (app/register/page.tsx:113)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/sms/send-code (app/register/page.tsx:113)"}, "fullDescription": {"text": "`app/register/page.tsx:113` calls `POST /api/auth/sms/send-code` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/sms/send-code`\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-4c7c1f4f4293b4b7", "name": "Dangling fetch: GET /models/denoise.rnnn (lib/ffmpeg-worker.ts:1241)", "shortDescription": {"text": "Dangling fetch: GET /models/denoise.rnnn (lib/ffmpeg-worker.ts:1241)"}, "fullDescription": {"text": "`lib/ffmpeg-worker.ts:1241` calls `GET /models/denoise.rnnn` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/models/denoise.rnnn`\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-43a7538e55071cfd", "name": "Dangling fetch: POST https://api.resend.com/emails (lib/notify.ts:18)", "shortDescription": {"text": "Dangling fetch: POST https://api.resend.com/emails (lib/notify.ts:18)"}, "fullDescription": {"text": "`lib/notify.ts:18` calls `POST https://api.resend.com/emails` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.resend.com/emails`\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-43f40a7156ab94f6", "name": "Dangling fetch: POST /api/clickup/proxy (lib/clickup-client.ts:37)", "shortDescription": {"text": "Dangling fetch: POST /api/clickup/proxy (lib/clickup-client.ts:37)"}, "fullDescription": {"text": "`lib/clickup-client.ts:37` calls `POST /api/clickup/proxy` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/clickup/proxy`\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-a2fe17fd9c3249cf", "name": "Dangling fetch: POST /api/voice-isolate-pro (lib/voice-isolator-neural.ts:83)", "shortDescription": {"text": "Dangling fetch: POST /api/voice-isolate-pro (lib/voice-isolator-neural.ts:83)"}, "fullDescription": {"text": "`lib/voice-isolator-neural.ts:83` calls `POST /api/voice-isolate-pro` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/voice-isolate-pro`\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-514fc39fefa36271", "name": "Dangling fetch: POST /api/separador-audio (lib/voice-isolator-neural.ts:122)", "shortDescription": {"text": "Dangling fetch: POST /api/separador-audio (lib/voice-isolator-neural.ts:122)"}, "fullDescription": {"text": "`lib/voice-isolator-neural.ts:122` calls `POST /api/separador-audio` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/separador-audio`\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-61acff6704e04467", "name": "Dangling fetch: POST /api/replicate/upload (lib/lipsync-chunker.ts:134)", "shortDescription": {"text": "Dangling fetch: POST /api/replicate/upload (lib/lipsync-chunker.ts:134)"}, "fullDescription": {"text": "`lib/lipsync-chunker.ts:134` calls `POST /api/replicate/upload` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/replicate/upload`\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-61c466a3402952ba", "name": "Dangling fetch: POST /api/tools/lipsync (lib/lipsync-chunker.ts:153)", "shortDescription": {"text": "Dangling fetch: POST /api/tools/lipsync (lib/lipsync-chunker.ts:153)"}, "fullDescription": {"text": "`lib/lipsync-chunker.ts:153` calls `POST /api/tools/lipsync` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/tools/lipsync`\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-1b0d461da40dbf22", "name": "Dangling fetch: GET http://127.0.0.1:${port}/health (engine/server.ts:322)", "shortDescription": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/health (engine/server.ts:322)"}, "fullDescription": {"text": "`engine/server.ts:322` calls `GET http://127.0.0.1:${port}/health` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/127.0.0.1:/<p>/health`\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-b7abeb7ece9ae4a2", "name": "Unused endpoint: POST /up", "shortDescription": {"text": "Unused endpoint: POST /up"}, "fullDescription": {"text": "`modal/lipsync_musetalk.py` declares `POST /up` 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-fe098c26c8bc2839", "name": "Unused endpoint: GET /file", "shortDescription": {"text": "Unused endpoint: GET /file"}, "fullDescription": {"text": "`modal/lipsync_musetalk.py` declares `GET /file` 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-970eb92d6ec2bfaa", "name": "Unused endpoint: POST /generate", "shortDescription": {"text": "Unused endpoint: POST /generate"}, "fullDescription": {"text": "`modal/lipsync_musetalk.py` declares `POST /generate` 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-fd278a3c91aa5b3c", "name": "Unused endpoint: POST /process", "shortDescription": {"text": "Unused endpoint: POST /process"}, "fullDescription": {"text": "`engine/subtitle-remover-pkg/server.py` declares `POST /process` 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-2b73face5b06aa67", "name": "Unused endpoint: POST /jobs", "shortDescription": {"text": "Unused endpoint: POST /jobs"}, "fullDescription": {"text": "`engine/subtitle-remover-pkg/server.py` declares `POST /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-f2455970f81db98e", "name": "Unused endpoint: GET /jobs/{jid}", "shortDescription": {"text": "Unused endpoint: GET /jobs/{jid}"}, "fullDescription": {"text": "`engine/subtitle-remover-pkg/server.py` declares `GET /jobs/{jid}` 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-c58f39bc85fb0cd4", "name": "Unused endpoint: GET /jobs/{jid}/result", "shortDescription": {"text": "Unused endpoint: GET /jobs/{jid}/result"}, "fullDescription": {"text": "`engine/subtitle-remover-pkg/server.py` declares `GET /jobs/{jid}/result` 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-b4aaf482a3493319", "name": "Unused endpoint: DELETE /jobs/{jid}", "shortDescription": {"text": "Unused endpoint: DELETE /jobs/{jid}"}, "fullDescription": {"text": "`engine/subtitle-remover-pkg/server.py` declares `DELETE /jobs/{jid}` 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/18656"}, "properties": {"repository": "ryanrxvn-maker/casablanca", "repoUrl": "https://github.com/ryanrxvn-maker/casablanca", "branch": "main"}, "results": [{"ruleId": "scanner-91ac206d36f78148", "level": "note", "message": {"text": "Possibly dead Python function: init_func"}, "properties": {"repobilityId": "3e93978cfd76ba49", "scanner": "scanner-primary", "fingerprint": "91ac206d36f78148", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-pkg/sttn/auto_sttn.py:30"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c4fd09f542eb69f6", "level": "note", "message": {"text": "Possibly dead Python function: init_func"}, "properties": {"repobilityId": "3e93978cfd76ba49", "scanner": "scanner-primary", "fingerprint": "c4fd09f542eb69f6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-pkg/sttn/network_sttn.py:31"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-56ccee571a2b0584", "level": "note", "message": {"text": "Possibly dead Python function: remove_spectral_norm"}, "properties": {"repobilityId": "b8dc4bac680909f1", "scanner": "scanner-primary", "fingerprint": "56ccee571a2b0584", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-pkg/sttn/spectral_norm.py:243"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3227ab5ecb572506", "level": "note", "message": {"text": "Possibly dead Python function: use_spectral_norm"}, "properties": {"repobilityId": "dfd7d9c4603a59a5", "scanner": "scanner-primary", "fingerprint": "3227ab5ecb572506", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-pkg/sttn/spectral_norm.py:264"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-70cd82120106d908", "level": "note", "message": {"text": "Possibly dead Python function: freeze_bn"}, "properties": {"repobilityId": "848b6fe523049c3e", "scanner": "scanner-primary", "fingerprint": "70cd82120106d908", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-pkg/propainter/RAFT/raft.py:59"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-157af7f8a14ea790", "level": "note", "message": {"text": "Possibly dead Python function: fetch_dataloader"}, "properties": {"repobilityId": "16b55b129fe9ee4f", "scanner": "scanner-primary", "fingerprint": "157af7f8a14ea790", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-pkg/propainter/RAFT/datasets.py:199"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cef6a1ab26c08182", "level": "note", "message": {"text": "Possibly dead Python function: demo"}, "properties": {"repobilityId": "b8fb39d99c427aee", "scanner": "scanner-primary", "fingerprint": "cef6a1ab26c08182", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-pkg/propainter/RAFT/demo.py:50"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-822eb3d007de15f4", "level": "note", "message": {"text": "Possibly dead Python function: RAFT_infer"}, "properties": {"repobilityId": "824ebc26c19e6e5a", "scanner": "scanner-primary", "fingerprint": "822eb3d007de15f4", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-pkg/propainter/RAFT/demo.py:71"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a2b8e2cc9d0ceeb6", "level": "note", "message": {"text": "Possibly dead Python function: unpad"}, "properties": {"repobilityId": "a893ec5280a3e46d", "scanner": "scanner-primary", "fingerprint": "a2b8e2cc9d0ceeb6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-pkg/propainter/RAFT/utils/utils.py:21"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-40a8245a2b6c12de", "level": "note", "message": {"text": "Possibly dead Python function: forward_interpolate"}, "properties": {"repobilityId": "9a90288a39e2be4c", "scanner": "scanner-primary", "fingerprint": "40a8245a2b6c12de", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-pkg/propainter/RAFT/utils/utils.py:26"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1b41db77fb56637f", "level": "note", "message": {"text": "Possibly dead Python function: writeFlow"}, "properties": {"repobilityId": "9b8ab2b076ad5ec9", "scanner": "scanner-primary", "fingerprint": "1b41db77fb56637f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-pkg/propainter/RAFT/utils/frame_utils.py:70"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6edf7cb65c7b1197", "level": "note", "message": {"text": "Possibly dead Python function: readDispKITTI"}, "properties": {"repobilityId": "c9a26eabde124a98", "scanner": "scanner-primary", "fingerprint": "6edf7cb65c7b1197", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-pkg/propainter/RAFT/utils/frame_utils.py:109"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3bb86daf18a8b0ee", "level": "note", "message": {"text": "Possibly dead Python function: writeFlowKITTI"}, "properties": {"repobilityId": "7c15e5605392f2ec", "scanner": "scanner-primary", "fingerprint": "3bb86daf18a8b0ee", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-pkg/propainter/RAFT/utils/frame_utils.py:116"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c4de7c5a3848bf89", "level": "note", "message": {"text": "Possibly dead Python function: resize_flow"}, "properties": {"repobilityId": "9ad933bd8bbc19f9", "scanner": "scanner-primary", "fingerprint": "c4de7c5a3848bf89", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-pkg/propainter/utils/flow_util.py:6"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ef18ba1d43f10abd", "level": "note", "message": {"text": "Possibly dead Python function: resize_flow_pytorch"}, "properties": {"repobilityId": "9577e0abaa92b94b", "scanner": "scanner-primary", "fingerprint": "ef18ba1d43f10abd", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-pkg/propainter/utils/flow_util.py:13"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-89df0899b2b4ef53", "level": "note", "message": {"text": "Possibly dead Python function: flowread"}, "properties": {"repobilityId": "c59aba2249948907", "scanner": "scanner-primary", "fingerprint": "89df0899b2b4ef53", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-pkg/propainter/utils/flow_util.py:28"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0118c738d98c921e", "level": "note", "message": {"text": "Possibly dead Python function: flowwrite"}, "properties": {"repobilityId": "f9972f7d18ea643b", "scanner": "scanner-primary", "fingerprint": "0118c738d98c921e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-pkg/propainter/utils/flow_util.py:67"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-31148b5ca0d344b6", "level": "note", "message": {"text": "Possibly dead Python function: img2tensor"}, "properties": {"repobilityId": "547d2ad99d0d760b", "scanner": "scanner-primary", "fingerprint": "31148b5ca0d344b6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-pkg/propainter/utils/img_util.py:9"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f4edb1804acc16a2", "level": "note", "message": {"text": "Possibly dead Python function: tensor2img"}, "properties": {"repobilityId": "b42a945748ad2e1e", "scanner": "scanner-primary", "fingerprint": "f4edb1804acc16a2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-pkg/propainter/utils/img_util.py:38"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-725bfa6d39fc2034", "level": "note", "message": {"text": "Possibly dead Python function: tensor2img_fast"}, "properties": {"repobilityId": "0e210c79e2cb737f", "scanner": "scanner-primary", "fingerprint": "725bfa6d39fc2034", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-pkg/propainter/utils/img_util.py:97"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-80df9c92d19b7d14", "level": "note", "message": {"text": "Possibly dead Python function: imfrombytes"}, "properties": {"repobilityId": "811a9853b2b548af", "scanner": "scanner-primary", "fingerprint": "80df9c92d19b7d14", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-pkg/propainter/utils/img_util.py:114"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d1db31e48e36f341", "level": "note", "message": {"text": "Possibly dead Python function: crop_border"}, "properties": {"repobilityId": "19b5cb0dedadbc90", "scanner": "scanner-primary", "fingerprint": "d1db31e48e36f341", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-pkg/propainter/utils/img_util.py:154"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-027ccddd76de0ab0", "level": "note", "message": {"text": "Possibly dead Python function: download_file_from_google_drive"}, "properties": {"repobilityId": "3efd2ac4e585d4d0", "scanner": "scanner-primary", "fingerprint": "027ccddd76de0ab0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-pkg/propainter/utils/download_util.py:25"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5b115f65652ab962", "level": "note", "message": {"text": "Possibly dead Python function: load_file_from_url"}, "properties": {"repobilityId": "bf1d938f7591cf8c", "scanner": "scanner-primary", "fingerprint": "5b115f65652ab962", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-pkg/propainter/utils/download_util.py:83"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d8cd0623ce6d74be", "level": "note", "message": {"text": "Possibly dead Python function: read_dirnames_under_root"}, "properties": {"repobilityId": "7bb069e55ed4378f", "scanner": "scanner-primary", "fingerprint": "d8cd0623ce6d74be", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-pkg/propainter/core/utils.py:24"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-340a09b7895b6f7d", "level": "note", "message": {"text": "Possibly dead Python function: create_random_shape_with_random_motion_zoom_rotation"}, "properties": {"repobilityId": "3644d4606157438b", "scanner": "scanner-primary", "fingerprint": "340a09b7895b6f7d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-pkg/propainter/core/utils.py:220"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6b8e50e25e7122a2", "level": "note", "message": {"text": "Possibly dead Python function: gpu_is_available"}, "properties": {"repobilityId": "bcd3b64956c7ee7f", "scanner": "scanner-primary", "fingerprint": "6b8e50e25e7122a2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-pkg/propainter/model/misc.py:59"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-76b09101280e8416", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 reverse-engineer/sidepanel.js:156"}, "properties": {"repobilityId": "15356d253e6625bc", "scanner": "scanner-primary", "fingerprint": "76b09101280e8416", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0e28a52d36bf976c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension-magnific/background.js:41"}, "properties": {"repobilityId": "aa155909d2fe4b25", "scanner": "scanner-primary", "fingerprint": "0e28a52d36bf976c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7029cc54476d3d25", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension-magnific/magnific-content.js:36"}, "properties": {"repobilityId": "0844085bb1c9df91", "scanner": "scanner-primary", "fingerprint": "7029cc54476d3d25", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9421a2596e51ffcc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension-magnific/overlay-killer.js:202"}, "properties": {"repobilityId": "ae7c68b3d06188ff", "scanner": "scanner-primary", "fingerprint": "9421a2596e51ffcc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0d232ef2b8f5facf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension-magnific/bridge.js:86"}, "properties": {"repobilityId": "20d3dc82fefc132f", "scanner": "scanner-primary", "fingerprint": "0d232ef2b8f5facf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ac6a281e8643fc29", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension-magnific/usersnap-shim.js:61"}, "properties": {"repobilityId": "fc9ad6e5afcb0b8c", "scanner": "scanner-primary", "fingerprint": "ac6a281e8643fc29", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c38b79de39fe7ccc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/Plans.tsx:995"}, "properties": {"repobilityId": "399d2978c0a21724", "scanner": "scanner-primary", "fingerprint": "c38b79de39fe7ccc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9f00109ddac70e52", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/AvatarFirstSlot.tsx:147"}, "properties": {"repobilityId": "f36b04046ed3295f", "scanner": "scanner-primary", "fingerprint": "9f00109ddac70e52", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ad373d3bef6c3325", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/BatchFileUpload.tsx:108"}, "properties": {"repobilityId": "d2838b9e2f029da9", "scanner": "scanner-primary", "fingerprint": "ad373d3bef6c3325", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-727701c4785bbb10", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/ToolsHub.tsx:1331"}, "properties": {"repobilityId": "9f419e715f95d81d", "scanner": "scanner-primary", "fingerprint": "727701c4785bbb10", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b42ff23982b72b5c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/GlobalSearch.tsx:687"}, "properties": {"repobilityId": "08a4f99053d81b7f", "scanner": "scanner-primary", "fingerprint": "b42ff23982b72b5c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9d1e808944d24770", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/BatchJobCard3D.tsx:446"}, "properties": {"repobilityId": "db8c9a0ef46bee5e", "scanner": "scanner-primary", "fingerprint": "9d1e808944d24770", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6eaddbe47ca030d1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/AudioPlayer.tsx:90"}, "properties": {"repobilityId": "48e411c26d17d418", "scanner": "scanner-primary", "fingerprint": "6eaddbe47ca030d1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a4ad07b77eb7ec81", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/CompactVoiceSelector.tsx:126"}, "properties": {"repobilityId": "75ebe915a73ebfe1", "scanner": "scanner-primary", "fingerprint": "a4ad07b77eb7ec81", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fd961a6cb26b30bc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/TopBar.tsx:90"}, "properties": {"repobilityId": "de5de743f0f1735b", "scanner": "scanner-primary", "fingerprint": "fd961a6cb26b30bc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bc19d8d7de04cb09", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/CompactAvatarPicker.tsx:139"}, "properties": {"repobilityId": "0c932e9893e4b3b1", "scanner": "scanner-primary", "fingerprint": "bc19d8d7de04cb09", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2b4f717e59693af6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/Sidebar.tsx:329"}, "properties": {"repobilityId": "0401ab5eaa62b445", "scanner": "scanner-primary", "fingerprint": "2b4f717e59693af6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-013595686dba9790", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/Header.tsx:154"}, "properties": {"repobilityId": "a6dfc98d9bde1c08", "scanner": "scanner-primary", "fingerprint": "013595686dba9790", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1057ccb6efc21818", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/HeyGenAvatarPicker.tsx:374"}, "properties": {"repobilityId": "5c6dc997955a4b45", "scanner": "scanner-primary", "fingerprint": "1057ccb6efc21818", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-040d101d8f961915", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 components/HeyGenAvatarPicker.tsx:227"}, "properties": {"repobilityId": "4d4e78e415a41423", "scanner": "scanner-primary", "fingerprint": "040d101d8f961915", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-af4e4dc37c1012b6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/tool-kit/index.tsx:331"}, "properties": {"repobilityId": "a3537bf4ff10350b", "scanner": "scanner-primary", "fingerprint": "af4e4dc37c1012b6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fa53ecf8958969b6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/tools/RemoverLegendaTool.tsx:551"}, "properties": {"repobilityId": "24c2f10a3bc73081", "scanner": "scanner-primary", "fingerprint": "fa53ecf8958969b6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ddc8604149483bd7", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 components/tools/LipSyncTool.tsx:1108"}, "properties": {"repobilityId": "b4c3ffb8f61322d9", "scanner": "scanner-primary", "fingerprint": "ddc8604149483bd7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-9863834f94dddc9d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/tools/LipSyncTool.tsx:1093"}, "properties": {"repobilityId": "ad18f4799bdb9dcc", "scanner": "scanner-primary", "fingerprint": "9863834f94dddc9d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-27d1e7e62af2ffdf", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/page.tsx:40"}, "properties": {"repobilityId": "6779a4843a9d41ee", "scanner": "scanner-primary", "fingerprint": "27d1e7e62af2ffdf", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-37708c35aef8274c", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/layout.tsx:213"}, "properties": {"repobilityId": "6f16eb9b82a2dcd6", "scanner": "scanner-primary", "fingerprint": "37708c35aef8274c", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-95b353ce161b48d8", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/recursos/[slug]/page.tsx:77"}, "properties": {"repobilityId": "0d4d437178875b1e", "scanner": "scanner-primary", "fingerprint": "95b353ce161b48d8", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-2ec1b1f1b9b0e9aa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/auth/sms/send-code/route.ts:144"}, "properties": {"repobilityId": "3acae25e1f42cefb", "scanner": "scanner-primary", "fingerprint": "2ec1b1f1b9b0e9aa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f660549c60428893", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/dashboard/page.tsx:507"}, "properties": {"repobilityId": "bbd4c9f735a48669", "scanner": "scanner-primary", "fingerprint": "f660549c60428893", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-75ac6c70837b011c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/tools/decupagem/page.tsx:355"}, "properties": {"repobilityId": "d00077fb49c661a3", "scanner": "scanner-primary", "fingerprint": "75ac6c70837b011c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6696c720e601f398", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/tools/downloader/page.tsx:850"}, "properties": {"repobilityId": "f7e33ea3465acff0", "scanner": "scanner-primary", "fingerprint": "6696c720e601f398", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-be1da9bd7fc46aee", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/tools/lipsync-history/page.tsx:396"}, "properties": {"repobilityId": "f272579fe105eb4c", "scanner": "scanner-primary", "fingerprint": "be1da9bd7fc46aee", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-70578efb59711ccb", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/tools/separador-audio/page.tsx:327"}, "properties": {"repobilityId": "15c960c73bddf81f", "scanner": "scanner-primary", "fingerprint": "70578efb59711ccb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c89f7c0d92dea4b9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/tools/normalizador/page.tsx:288"}, "properties": {"repobilityId": "69f38ddc4cf58259", "scanner": "scanner-primary", "fingerprint": "c89f7c0d92dea4b9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1cd08784c2f473d7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/tools/acelerador/page.tsx:364"}, "properties": {"repobilityId": "a1a50a2eec2a836f", "scanner": "scanner-primary", "fingerprint": "1cd08784c2f473d7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-204983766d1f6416", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/tools/clickup-pilot/page.tsx:6062"}, "properties": {"repobilityId": "df25c818e4961aef", "scanner": "scanner-primary", "fingerprint": "204983766d1f6416", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ac392c49b4493963", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/tools/clickup-pilot/page.tsx:1491"}, "properties": {"repobilityId": "bf1e202fd85f7102", "scanner": "scanner-primary", "fingerprint": "ac392c49b4493963", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e0150137d2b23ad0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/tools/auto-broll/page.tsx:1750"}, "properties": {"repobilityId": "573081427c3fff87", "scanner": "scanner-primary", "fingerprint": "e0150137d2b23ad0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1ab83c71f028380a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/tools/auto-broll/page.tsx:359"}, "properties": {"repobilityId": "a96e0e594819d027", "scanner": "scanner-primary", "fingerprint": "1ab83c71f028380a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1703e12c9bc7aaba", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/tools/compressor/page.tsx:662"}, "properties": {"repobilityId": "0ad20fc8a196546f", "scanner": "scanner-primary", "fingerprint": "1703e12c9bc7aaba", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-98ffc4c3725eaaa2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/tools/points/page.tsx:431"}, "properties": {"repobilityId": "3b99eb5078e58521", "scanner": "scanner-primary", "fingerprint": "98ffc4c3725eaaa2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f29a2abc7629f8a7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/tools/points/page.tsx:119"}, "properties": {"repobilityId": "5796dc3e11afee8d", "scanner": "scanner-primary", "fingerprint": "f29a2abc7629f8a7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-05c8b515a0a3c83a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/tools/ltx-video/page.tsx:377"}, "properties": {"repobilityId": "38cb6b3f1a1c2caf", "scanner": "scanner-primary", "fingerprint": "05c8b515a0a3c83a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-95c6345d3ea0daa6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/tools/heygen-auto/page.tsx:2042"}, "properties": {"repobilityId": "fe8a74974751045c", "scanner": "scanner-primary", "fingerprint": "95c6345d3ea0daa6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9e2d25f5401bf038", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/tools/heygen-auto/page.tsx:897"}, "properties": {"repobilityId": "d42806145efdb40c", "scanner": "scanner-primary", "fingerprint": "9e2d25f5401bf038", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bb2e67b12c5cd0b0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/va-pipeline.ts:501"}, "properties": {"repobilityId": "4f87150d541822d3", "scanner": "scanner-primary", "fingerprint": "bb2e67b12c5cd0b0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cad8d5e8e8ce4e4c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/decupagem-matcher.test.ts:81"}, "properties": {"repobilityId": "64f95c8f90174eb4", "scanner": "scanner-primary", "fingerprint": "cad8d5e8e8ce4e4c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ec30d8c251b19fa6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/doc-to-disparos.real.test.ts:19"}, "properties": {"repobilityId": "dbf523575ab9ccb7", "scanner": "scanner-primary", "fingerprint": "ec30d8c251b19fa6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5747f1d9892fabf4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/audio-engine.test.ts:22"}, "properties": {"repobilityId": "bee4fbda601e4d90", "scanner": "scanner-primary", "fingerprint": "5747f1d9892fabf4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cfbdc606eb5e6630", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/clickup-pilot-pipeline.ts:118"}, "properties": {"repobilityId": "074f59737cde1c02", "scanner": "scanner-primary", "fingerprint": "cfbdc606eb5e6630", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-55ae48afe2755245", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/magnific-pipeline-v2.ts:360"}, "properties": {"repobilityId": "c6cd6affe40175f3", "scanner": "scanner-primary", "fingerprint": "55ae48afe2755245", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8fd0b803b0debf0f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/heygen-api-direct.ts:599"}, "properties": {"repobilityId": "cdd1855fc15668db", "scanner": "scanner-primary", "fingerprint": "8fd0b803b0debf0f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fcda9c3fed1824e0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/magnific-api-client.ts:142"}, "properties": {"repobilityId": "f4e50aebb26817cd", "scanner": "scanner-primary", "fingerprint": "fcda9c3fed1824e0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1c76397d8b316943", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/doc-to-disparos.test.ts:24"}, "properties": {"repobilityId": "fccd290628365760", "scanner": "scanner-primary", "fingerprint": "1c76397d8b316943", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8dbde7dd5c9a8c04", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/heygen-extension-bridge.ts:268"}, "properties": {"repobilityId": "a9755ae1df63cfdb", "scanner": "scanner-primary", "fingerprint": "8dbde7dd5c9a8c04", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ae4c859df8e713a2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension/background.js:132"}, "properties": {"repobilityId": "e037ad0456203f49", "scanner": "scanner-primary", "fingerprint": "ae4c859df8e713a2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-86e5cafda4f0832d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension/inject.js:68"}, "properties": {"repobilityId": "d979394fe2167988", "scanner": "scanner-primary", "fingerprint": "86e5cafda4f0832d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-52ab060ca011f0a4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension/bridge.js:172"}, "properties": {"repobilityId": "7c9b30a96ded57b7", "scanner": "scanner-primary", "fingerprint": "52ab060ca011f0a4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1d4dba1c2feaa6d9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension/heygen-content.js:33"}, "properties": {"repobilityId": "09b1859e1c541d17", "scanner": "scanner-primary", "fingerprint": "1d4dba1c2feaa6d9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-65b9a24c55a3d2ee", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension-freepik-sync/background.js:69"}, "properties": {"repobilityId": "9b25b349db078e1f", "scanner": "scanner-primary", "fingerprint": "65b9a24c55a3d2ee", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-005a4ea918193a3d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 engine/server.ts:296"}, "properties": {"repobilityId": "c752f3bc5cb0365c", "scanner": "scanner-primary", "fingerprint": "005a4ea918193a3d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b4786651325c9aa5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in reverse-engineer/sidepanel.js:221"}, "properties": {"repobilityId": "863b7c78c42a21ae", "scanner": "scanner-primary", "fingerprint": "b4786651325c9aa5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "reverse-engineer/sidepanel.js"}, "region": {"startLine": 221}}}]}, {"ruleId": "scanner-dc778c01577f52ff", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in standalone/tiktok-url-collector/bookmarklet.min.js:1"}, "properties": {"repobilityId": "90d770dc5c72ece3", "scanner": "scanner-primary", "fingerprint": "dc778c01577f52ff", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "standalone/tiktok-url-collector/bookmarklet.min.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e86257c556a836bf", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in standalone/tiktok-url-collector/bookmarklet.js:102"}, "properties": {"repobilityId": "890c97a599f2c594", "scanner": "scanner-primary", "fingerprint": "e86257c556a836bf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "standalone/tiktok-url-collector/bookmarklet.js"}, "region": {"startLine": 102}}}]}, {"ruleId": "scanner-55c8aef8bc1de441", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/test-replicate-wav2lip.mjs:17"}, "properties": {"repobilityId": "ac54246a25029683", "scanner": "scanner-primary", "fingerprint": "55c8aef8bc1de441", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/test-replicate-wav2lip.mjs"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-aba5401d1efb3ec2", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/test-lipsync-final.mjs:19"}, "properties": {"repobilityId": "b4307a700920759a", "scanner": "scanner-primary", "fingerprint": "aba5401d1efb3ec2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/test-lipsync-final.mjs"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-665597dc009d7b63", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/test-lipsync-chunked.mjs:15"}, "properties": {"repobilityId": "cbe85e39aeb654d1", "scanner": "scanner-primary", "fingerprint": "665597dc009d7b63", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/test-lipsync-chunked.mjs"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-112e43cc09191481", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/test-modal-wav2lip.mjs:7"}, "properties": {"repobilityId": "1725ba2762b135c1", "scanner": "scanner-primary", "fingerprint": "112e43cc09191481", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/test-modal-wav2lip.mjs"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-de909b86760be9c1", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/test-modal-musetalk.mjs:6"}, "properties": {"repobilityId": "ae1813bfb42db8c1", "scanner": "scanner-primary", "fingerprint": "de909b86760be9c1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/test-modal-musetalk.mjs"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-f88214dac6b63324", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/test-fal-musetalk.mjs:7"}, "properties": {"repobilityId": "56adae42c5b4867a", "scanner": "scanner-primary", "fingerprint": "f88214dac6b63324", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/test-fal-musetalk.mjs"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-e8cc5d382109034e", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/test-musetalk.mjs:7"}, "properties": {"repobilityId": "7187009d42193ee1", "scanner": "scanner-primary", "fingerprint": "e8cc5d382109034e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/test-musetalk.mjs"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-f1f6c95ec0b8395a", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/test-pixverse-chunk.mjs:7"}, "properties": {"repobilityId": "6c48407e0fae7012", "scanner": "scanner-primary", "fingerprint": "f1f6c95ec0b8395a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/test-pixverse-chunk.mjs"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-54317eea137dd3c3", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/page.tsx:40"}, "properties": {"repobilityId": "cfec9d1837258177", "scanner": "scanner-primary", "fingerprint": "54317eea137dd3c3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/page.tsx"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-c58731482f77865b", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/layout.tsx:213"}, "properties": {"repobilityId": "69d4743587f721a0", "scanner": "scanner-primary", "fingerprint": "c58731482f77865b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/layout.tsx"}, "region": {"startLine": 213}}}]}, {"ruleId": "scanner-d6f34e7560cfa009", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/recursos/[slug]/page.tsx:77"}, "properties": {"repobilityId": "080bf6dd911fde59", "scanner": "scanner-primary", "fingerprint": "d6f34e7560cfa009", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/recursos/[slug]/page.tsx"}, "region": {"startLine": 77}}}]}, {"ruleId": "scanner-1f6d35bb0d2cc068", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in app/api/temp-store/route.ts:25"}, "properties": {"repobilityId": "b1c42d81c80f91cc", "scanner": "scanner-primary", "fingerprint": "1f6d35bb0d2cc068", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/api/temp-store/route.ts"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-84fa2dad628fcfab", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in lib/downloader-core.ts:13"}, "properties": {"repobilityId": "7360f7d8496d96d6", "scanner": "scanner-primary", "fingerprint": "84fa2dad628fcfab", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/downloader-core.ts"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-6a4395ab5b45421e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in extension/heygen-content.js:1979"}, "properties": {"repobilityId": "84e8f4688008f74b", "scanner": "scanner-primary", "fingerprint": "6a4395ab5b45421e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "extension/heygen-content.js"}, "region": {"startLine": 1979}}}]}, {"ruleId": "scanner-aedeca7612bc486d", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in engine/package-remover.mjs:15"}, "properties": {"repobilityId": "ebbf95c1d7a5a281", "scanner": "scanner-primary", "fingerprint": "aedeca7612bc486d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/package-remover.mjs"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-d613bdb4506fcf98", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in engine/package.mjs:14"}, "properties": {"repobilityId": "cc3a20d7533459a5", "scanner": "scanner-primary", "fingerprint": "d613bdb4506fcf98", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/package.mjs"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-b4dfe33474576b00", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in engine/pkg/server.cjs:185"}, "properties": {"repobilityId": "b132f02faae4da51", "scanner": "scanner-primary", "fingerprint": "b4dfe33474576b00", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/pkg/server.cjs"}, "region": {"startLine": 185}}}]}, {"ruleId": "scanner-6b1d52a2667a3747", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in extension-downloader/content.js:125"}, "properties": {"repobilityId": "77e9b8a7e005d397", "scanner": "scanner-primary", "fingerprint": "6b1d52a2667a3747", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "extension-downloader/content.js"}, "region": {"startLine": 125}}}]}, {"ruleId": "scanner-c01a9941c8ef1dfa", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in extension-downloader/popup.js:122"}, "properties": {"repobilityId": "ff1ca710bae87145", "scanner": "scanner-primary", "fingerprint": "c01a9941c8ef1dfa", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "extension-downloader/popup.js"}, "region": {"startLine": 122}}}]}, {"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-1cd504870d75b13f", "level": "note", "message": {"text": "Very large file: extension-magnific/magnific-content.js (3522 lines)"}, "properties": {"repobilityId": "930a9e2eed118da2", "scanner": "scanner-primary", "fingerprint": "1cd504870d75b13f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1edc7ea9826733e7", "level": "note", "message": {"text": "Very large file: components/Plans.tsx (1755 lines)"}, "properties": {"repobilityId": "28d55b380efade23", "scanner": "scanner-primary", "fingerprint": "1edc7ea9826733e7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d973a21f6cd15f00", "level": "note", "message": {"text": "Very large file: components/ToolsHub.tsx (1509 lines)"}, "properties": {"repobilityId": "ed97f87f119575e6", "scanner": "scanner-primary", "fingerprint": "d973a21f6cd15f00", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-848a5b6aae8a02de", "level": "note", "message": {"text": "Very large file: components/Landing.tsx (2028 lines)"}, "properties": {"repobilityId": "c68b8a773b8d87e5", "scanner": "scanner-primary", "fingerprint": "848a5b6aae8a02de", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-03adcbd04d064fb2", "level": "note", "message": {"text": "Very large file: app/tools/clickup-pilot/page.tsx (8566 lines)"}, "properties": {"repobilityId": "c92654b37700825f", "scanner": "scanner-primary", "fingerprint": "03adcbd04d064fb2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f818db4fa68972d1", "level": "note", "message": {"text": "Very large file: app/tools/auto-broll/page.tsx (2332 lines)"}, "properties": {"repobilityId": "2dfed673282d092b", "scanner": "scanner-primary", "fingerprint": "f818db4fa68972d1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d5b9aa1e5bb81752", "level": "note", "message": {"text": "Very large file: app/tools/heygen-auto/page.tsx (3127 lines)"}, "properties": {"repobilityId": "655f43aa98e96aee", "scanner": "scanner-primary", "fingerprint": "d5b9aa1e5bb81752", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-951d212457736a7c", "level": "note", "message": {"text": "Very large file: lib/decupagem-matcher.test.ts (1415 lines)"}, "properties": {"repobilityId": "f259c5828d19e539", "scanner": "scanner-primary", "fingerprint": "951d212457736a7c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9447fa59bafeccd3", "level": "note", "message": {"text": "Very large file: lib/copy-parser.ts (2199 lines)"}, "properties": {"repobilityId": "37917e5a8f83a869", "scanner": "scanner-primary", "fingerprint": "9447fa59bafeccd3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-415304f50738ff16", "level": "note", "message": {"text": "Very large file: lib/ffmpeg-worker.ts (2281 lines)"}, "properties": {"repobilityId": "becd5b252a77a75e", "scanner": "scanner-primary", "fingerprint": "415304f50738ff16", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-cc5e4d632b74db57", "level": "note", "message": {"text": "Very large file: lib/decupagem-matcher.ts (1316 lines)"}, "properties": {"repobilityId": "0de5606959502462", "scanner": "scanner-primary", "fingerprint": "cc5e4d632b74db57", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ddba3115680f3138", "level": "note", "message": {"text": "Very large file: extension/background.js (1670 lines)"}, "properties": {"repobilityId": "812b614fe94288c8", "scanner": "scanner-primary", "fingerprint": "ddba3115680f3138", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3b0fb51a1635ab40", "level": "note", "message": {"text": "Very large file: extension/heygen-content.js (3366 lines)"}, "properties": {"repobilityId": "5a1ec4f3dc779f3a", "scanner": "scanner-primary", "fingerprint": "3b0fb51a1635ab40", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d8146496dc63764a", "level": "note", "message": {"text": "Very large file: engine/subtitle-remover-pkg/pipeline.py (1307 lines)"}, "properties": {"repobilityId": "67cfb4a69ed2b1f8", "scanner": "scanner-primary", "fingerprint": "d8146496dc63764a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-137c4cd418122bfe", "level": "note", "message": {"text": "Very large file: engine/subtitle-remover-local/pipeline.py (1307 lines)"}, "properties": {"repobilityId": "5bc86a828919a614", "scanner": "scanner-primary", "fingerprint": "137c4cd418122bfe", "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-2fbe176a90ede8a4", "level": "note", "message": {"text": "33 TODO/FIXME markers"}, "properties": {"repobilityId": "4b38c118003e07d2", "scanner": "scanner-primary", "fingerprint": "2fbe176a90ede8a4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["maintenance"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "1b4f7587d84f47ec", "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": "6470a607c2dca9c5", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-9d79c4077342a7d0", "level": "warning", "message": {"text": "Runtime service client appears to use placeholder configuration"}, "properties": {"repobilityId": "453047cb042ba443", "scanner": "scanner-primary", "fingerprint": "9d79c4077342a7d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "runtime-config", "service-client", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "515337c20a314f8b", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "3cfd9274514572fd", "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": "8f32c8a26927817e", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-02ff5fc27330699c", "level": "none", "message": {"text": "Commented-code block (7 lines) in middleware.ts:7"}, "properties": {"repobilityId": "63f8e47f682a3950", "scanner": "scanner-primary", "fingerprint": "02ff5fc27330699c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d77e6efd35cfcf0c", "level": "none", "message": {"text": "Commented-code block (5 lines) in reverse-engineer/content-bridge.js:1"}, "properties": {"repobilityId": "0769c3a0e7db5ab3", "scanner": "scanner-primary", "fingerprint": "d77e6efd35cfcf0c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a4c4f964b6aad931", "level": "none", "message": {"text": "Commented-code block (5 lines) in reverse-engineer/api.js:229"}, "properties": {"repobilityId": "02d996a57451febb", "scanner": "scanner-primary", "fingerprint": "a4c4f964b6aad931", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-84e7098aa4f9bb76", "level": "note", "message": {"text": "Legacy-named symbol `queue_history_v1` in reverse-engineer/sidepanel.js:37"}, "properties": {"repobilityId": "d5db79228256483a", "scanner": "scanner-primary", "fingerprint": "84e7098aa4f9bb76", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1431fd4f5a538690", "level": "none", "message": {"text": "Commented-code block (6 lines) in reverse-engineer/sidepanel.js:22"}, "properties": {"repobilityId": "b0cf22958c87488f", "scanner": "scanner-primary", "fingerprint": "1431fd4f5a538690", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ee1e474588ae5689", "level": "none", "message": {"text": "Commented-code block (5 lines) in extension-magnific/background.js:18"}, "properties": {"repobilityId": "edf2979a5bf6bc54", "scanner": "scanner-primary", "fingerprint": "ee1e474588ae5689", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cae76a160080c359", "level": "none", "message": {"text": "Commented-code block (5 lines) in extension-magnific/magnific-content.js:48"}, "properties": {"repobilityId": "64bc9149dd641344", "scanner": "scanner-primary", "fingerprint": "cae76a160080c359", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cfa0ac256cfd43bc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 extension-magnific/magnific-content.js:382"}, "properties": {"repobilityId": "33ed06fb3a70030e", "scanner": "scanner-primary", "fingerprint": "cfa0ac256cfd43bc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-23504a12d73bd417", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-replicate-wav2lip.mjs:109"}, "properties": {"repobilityId": "03ee89e42012ee3f", "scanner": "scanner-primary", "fingerprint": "23504a12d73bd417", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fa2e5044fcf9d9c2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-lipsync-final.mjs:200"}, "properties": {"repobilityId": "b76ac5621c97e570", "scanner": "scanner-primary", "fingerprint": "fa2e5044fcf9d9c2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-58fbf17083d3e256", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-lipsync-chunked.mjs:179"}, "properties": {"repobilityId": "b3cbeeb188e00934", "scanner": "scanner-primary", "fingerprint": "58fbf17083d3e256", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-014e32581902ef5c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-dreamface.mjs:82"}, "properties": {"repobilityId": "828796bbde4169ca", "scanner": "scanner-primary", "fingerprint": "014e32581902ef5c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2e2b23fcc3eaefbe", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-modal-wav2lip.mjs:52"}, "properties": {"repobilityId": "75fe2283ad5807fb", "scanner": "scanner-primary", "fingerprint": "2e2b23fcc3eaefbe", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-693afe7ef5b141f8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-modal-musetalk.mjs:48"}, "properties": {"repobilityId": "2948a3e37cdbcc9b", "scanner": "scanner-primary", "fingerprint": "693afe7ef5b141f8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-954e24afa32f85ce", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-fal-musetalk.mjs:89"}, "properties": {"repobilityId": "706535f7d5d06119", "scanner": "scanner-primary", "fingerprint": "954e24afa32f85ce", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-acad08baf31290f5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-musetalk.mjs:60"}, "properties": {"repobilityId": "519fd1451107cc04", "scanner": "scanner-primary", "fingerprint": "acad08baf31290f5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ef1eb2f42d10b5bf", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-pixverse-chunk.mjs:63"}, "properties": {"repobilityId": "189ef230ba72d6bc", "scanner": "scanner-primary", "fingerprint": "ef1eb2f42d10b5bf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d1444acac5d2ecdc", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/HeyGenAvatarPicker.tsx:73"}, "properties": {"repobilityId": "7384b1a08d69301d", "scanner": "scanner-primary", "fingerprint": "d1444acac5d2ecdc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bff623d58d1550cc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/tools/RemoverLegendaTool.tsx:243"}, "properties": {"repobilityId": "18aacfb9de841fbd", "scanner": "scanner-primary", "fingerprint": "bff623d58d1550cc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9b4272cf21fc61ed", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/tools/LipSyncTool.tsx:319"}, "properties": {"repobilityId": "72cd88ca578e54fb", "scanner": "scanner-primary", "fingerprint": "9b4272cf21fc61ed", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3ec5fdbffb294a0b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/remover-elementos/detect/route.ts:119"}, "properties": {"repobilityId": "c54543bc90a56a8c", "scanner": "scanner-primary", "fingerprint": "3ec5fdbffb294a0b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0d846505c3bbef48", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/auth/sms/send-code/route.ts:37"}, "properties": {"repobilityId": "2f6645c4285d059e", "scanner": "scanner-primary", "fingerprint": "0d846505c3bbef48", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0fb1f6e9ad99d82c", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/auth/diagnose/route.ts:90"}, "properties": {"repobilityId": "0c185a897154f859", "scanner": "scanner-primary", "fingerprint": "0fb1f6e9ad99d82c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8a55142de089319e", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/downloader/route.ts:106"}, "properties": {"repobilityId": "0addacd275848c2f", "scanner": "scanner-primary", "fingerprint": "8a55142de089319e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d51a399f375707ea", "level": "note", "message": {"text": "Legacy-named symbol `eleven_multilingual_v2` in app/api/troca-produto/elevenlabs-tts/route.ts:63"}, "properties": {"repobilityId": "be27353995326953", "scanner": "scanner-primary", "fingerprint": "d51a399f375707ea", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6ffda9cedaef7889", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/troca-produto/elevenlabs-tts/route.ts:54"}, "properties": {"repobilityId": "5ceb74ce91fbb68b", "scanner": "scanner-primary", "fingerprint": "6ffda9cedaef7889", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d6bcf28a319e8239", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/troca-produto/assemblyai/route.ts:103"}, "properties": {"repobilityId": "7494cc316620dc45", "scanner": "scanner-primary", "fingerprint": "d6bcf28a319e8239", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-af9d13cfe1ecf927", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/voice-isolate-pro/route.ts:199"}, "properties": {"repobilityId": "d4af7809463e985b", "scanner": "scanner-primary", "fingerprint": "af9d13cfe1ecf927", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf0dcbd135d6748e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/avatar-visual-match/route.ts:94"}, "properties": {"repobilityId": "53e31528485b1624", "scanner": "scanner-primary", "fingerprint": "cf0dcbd135d6748e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a86fd9baad1ed5a3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/mind-ads/transcribe-srt/route.ts:191"}, "properties": {"repobilityId": "f5a173cf15e86e6c", "scanner": "scanner-primary", "fingerprint": "a86fd9baad1ed5a3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-18f5794299c668cc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/replicate/upload/route.ts:60"}, "properties": {"repobilityId": "58352d95275e885a", "scanner": "scanner-primary", "fingerprint": "18f5794299c668cc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1b485f84314d0044", "level": "note", "message": {"text": "Legacy-named symbol `full_copy` in app/api/auto-broll/route.ts:93"}, "properties": {"repobilityId": "36d7e091f2f3b36f", "scanner": "scanner-primary", "fingerprint": "1b485f84314d0044", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4ff8700a7cc73e40", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/auto-broll/route.ts:137"}, "properties": {"repobilityId": "dc0d6dcb556a40a5", "scanner": "scanner-primary", "fingerprint": "4ff8700a7cc73e40", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-54521a7e239c1875", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/user/clear-password-flag/route.ts:24"}, "properties": {"repobilityId": "e5fcf39626947dd2", "scanner": "scanner-primary", "fingerprint": "54521a7e239c1875", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-75c08775fae16eb3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/copy-srt/match/route.ts:120"}, "properties": {"repobilityId": "7ea89ffc35e2c211", "scanner": "scanner-primary", "fingerprint": "75c08775fae16eb3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-307daf58b9dec2c1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/va/diarize/route.ts:82"}, "properties": {"repobilityId": "37bb9a2a7f888f41", "scanner": "scanner-primary", "fingerprint": "307daf58b9dec2c1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bbd4945007a11ede", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/tools/troca-produto/page.tsx:225"}, "properties": {"repobilityId": "858919dbbd52c3ee", "scanner": "scanner-primary", "fingerprint": "bbd4945007a11ede", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6411e0e5f87d0d24", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/tools/separador-audio/page.tsx:219"}, "properties": {"repobilityId": "f8257e08b19b2663", "scanner": "scanner-primary", "fingerprint": "6411e0e5f87d0d24", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-56bb4b6edf0c3a0d", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/tools/clickup-pilot/page.tsx:115"}, "properties": {"repobilityId": "15fdc9678c18b91c", "scanner": "scanner-primary", "fingerprint": "56bb4b6edf0c3a0d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-27632a4cd7844c49", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/tools/clickup-pilot/page.tsx:1039"}, "properties": {"repobilityId": "a8e85a53751cfe31", "scanner": "scanner-primary", "fingerprint": "27632a4cd7844c49", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-acea93bf9c3fcd75", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/tools/auto-broll/page.tsx:319"}, "properties": {"repobilityId": "49bc8945a1d9ee7c", "scanner": "scanner-primary", "fingerprint": "acea93bf9c3fcd75", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-26f8447e7a336209", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/tools/camuflagem/page.tsx:34"}, "properties": {"repobilityId": "efdd3895961efd71", "scanner": "scanner-primary", "fingerprint": "26f8447e7a336209", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-309ca1637cb794a3", "level": "note", "message": {"text": "Legacy-named symbol `_decupado_pela_copy` in app/tools/decupagem-copy/page.tsx:543"}, "properties": {"repobilityId": "6eddc5375a7b3c31", "scanner": "scanner-primary", "fingerprint": "309ca1637cb794a3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-901e7c22b7d5592e", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/tools/decupagem-copy/page.tsx:254"}, "properties": {"repobilityId": "2c724f630fb4b5fb", "scanner": "scanner-primary", "fingerprint": "901e7c22b7d5592e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0726cdfd255e7491", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/tools/decupagem-copy/page.tsx:217"}, "properties": {"repobilityId": "94fe76410c8196db", "scanner": "scanner-primary", "fingerprint": "0726cdfd255e7491", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6cc44c418f7f866e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/tools/ltx-video/page.tsx:196"}, "properties": {"repobilityId": "172bf414564ee7c1", "scanner": "scanner-primary", "fingerprint": "6cc44c418f7f866e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8a45b180c17a50cd", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/tools/heygen-auto/page.tsx:962"}, "properties": {"repobilityId": "ed73a7126dbb64e8", "scanner": "scanner-primary", "fingerprint": "8a45b180c17a50cd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-431b414ac2c7b8e5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/tools/heygen-auto/page.tsx:1103"}, "properties": {"repobilityId": "31da66a597c5b6ad", "scanner": "scanner-primary", "fingerprint": "431b414ac2c7b8e5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1fdfccf525027212", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/doc-to-disparos.ts:333"}, "properties": {"repobilityId": "575c2ed2598756aa", "scanner": "scanner-primary", "fingerprint": "1fdfccf525027212", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a5e01f1e9ec2421b", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/ltx-token-pool.ts:57"}, "properties": {"repobilityId": "dd6019659ca1eed3", "scanner": "scanner-primary", "fingerprint": "a5e01f1e9ec2421b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-937cf151b3c4d70e", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/va-pipeline.ts:228"}, "properties": {"repobilityId": "9cf7c2936d4c7c27", "scanner": "scanner-primary", "fingerprint": "937cf151b3c4d70e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-abe66702a83640ec", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/vmake-api.ts:137"}, "properties": {"repobilityId": "41a3b9c23403372d", "scanner": "scanner-primary", "fingerprint": "abe66702a83640ec", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fbab3590ed7533aa", "level": "none", "message": {"text": "Commented-code block (14 lines) in lib/doc-to-disparos.real.test.ts:134"}, "properties": {"repobilityId": "8e37cee2c623d783", "scanner": "scanner-primary", "fingerprint": "fbab3590ed7533aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-adbc3d8f36e19279", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/dreamface-api.ts:134"}, "properties": {"repobilityId": "b28ddf4fc33c6416", "scanner": "scanner-primary", "fingerprint": "adbc3d8f36e19279", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7e16391bf4271c23", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/magnific-api-server.ts:124"}, "properties": {"repobilityId": "b9a7121ae5362721", "scanner": "scanner-primary", "fingerprint": "7e16391bf4271c23", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-461f72ac52a11371", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/transcribe.ts:101"}, "properties": {"repobilityId": "48888a00b02e916d", "scanner": "scanner-primary", "fingerprint": "461f72ac52a11371", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b07e5113bd538e45", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/resolve-va-speakers.ts:73"}, "properties": {"repobilityId": "cdbe4e6751403fe4", "scanner": "scanner-primary", "fingerprint": "b07e5113bd538e45", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f4dc2dc622f2e52d", "level": "none", "message": {"text": "Commented-code block (8 lines) in lib/clickup-pilot-pipeline.ts:170"}, "properties": {"repobilityId": "5fa47e81a9e58a55", "scanner": "scanner-primary", "fingerprint": "f4dc2dc622f2e52d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf3e936463494a91", "level": "none", "message": {"text": "Commented-code block (11 lines) in lib/magnific-pipeline-v2.ts:62"}, "properties": {"repobilityId": "a73b4720be0a91a5", "scanner": "scanner-primary", "fingerprint": "bf3e936463494a91", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-59c96666ae540dbb", "level": "none", "message": {"text": "Commented-code block (13 lines) in lib/heygen-api-direct.ts:454"}, "properties": {"repobilityId": "37c17863f4e19271", "scanner": "scanner-primary", "fingerprint": "59c96666ae540dbb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-59b88c9d1fcfa1b2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/heygen-api-direct.ts:388"}, "properties": {"repobilityId": "c3355935d01505bc", "scanner": "scanner-primary", "fingerprint": "59b88c9d1fcfa1b2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-259932d789a7ab57", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/copy-parser.ts:301"}, "properties": {"repobilityId": "5dbd0bc3398f03b9", "scanner": "scanner-primary", "fingerprint": "259932d789a7ab57", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-35438af24ece0edc", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/magnific-api-client.ts:72"}, "properties": {"repobilityId": "8a7d53fdcf6df8bf", "scanner": "scanner-primary", "fingerprint": "35438af24ece0edc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-92e59a727286de4b", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/doc-to-disparos.test.ts:307"}, "properties": {"repobilityId": "49ec24cee06de3a2", "scanner": "scanner-primary", "fingerprint": "92e59a727286de4b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad864205868d3bb0", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/ffmpeg-worker.ts:328"}, "properties": {"repobilityId": "8df24eecfb95c2a8", "scanner": "scanner-primary", "fingerprint": "ad864205868d3bb0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6df6d190826b393a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/ffmpeg-worker.ts:1786"}, "properties": {"repobilityId": "174b8bf65a1c746e", "scanner": "scanner-primary", "fingerprint": "6df6d190826b393a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6e8f3759209c9b8d", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/heygen-extension-bridge.ts:1013"}, "properties": {"repobilityId": "5a846e592c0fb231", "scanner": "scanner-primary", "fingerprint": "6e8f3759209c9b8d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d7c05accf42c65ca", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/edited-text-align.ts:100"}, "properties": {"repobilityId": "df810a6e2f454dee", "scanner": "scanner-primary", "fingerprint": "d7c05accf42c65ca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-26d478b101639ad6", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/ltx-video.ts:70"}, "properties": {"repobilityId": "f9cfe18d38606b4c", "scanner": "scanner-primary", "fingerprint": "26d478b101639ad6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-33b3286fb460be45", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/magnific-bridge.ts:100"}, "properties": {"repobilityId": "d9fe1b78a11a5ccc", "scanner": "scanner-primary", "fingerprint": "33b3286fb460be45", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c1629575ce52f42", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/safe-fetch.ts:120"}, "properties": {"repobilityId": "ccf4f808420e9de7", "scanner": "scanner-primary", "fingerprint": "4c1629575ce52f42", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-47613e82f046b27a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/lipsync-chunker.ts:134"}, "properties": {"repobilityId": "7a74a98552b8ceeb", "scanner": "scanner-primary", "fingerprint": "47613e82f046b27a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5b180830e4cd5ab2", "level": "none", "message": {"text": "Commented-code block (9 lines) in lib/camuflagem.ts:125"}, "properties": {"repobilityId": "15a26f86aa306f1e", "scanner": "scanner-primary", "fingerprint": "5b180830e4cd5ab2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-62c3764e39a178e9", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/decupagem-matcher.ts:39"}, "properties": {"repobilityId": "6d5b7aaf81b1c2ab", "scanner": "scanner-primary", "fingerprint": "62c3764e39a178e9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-55d2824a8b87ea7c", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 modal/lipsync_musetalk.py:151"}, "properties": {"repobilityId": "a5894320cbc20fbc", "scanner": "scanner-primary", "fingerprint": "55d2824a8b87ea7c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6147d5cab4abf23c", "level": "error", "message": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def generate` \u2014 modal/lipsync_musetalk.py:227"}, "properties": {"repobilityId": "1fa74d02f063fe2f", "scanner": "scanner-primary", "fingerprint": "6147d5cab4abf23c", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "modal/lipsync_musetalk.py"}, "region": {"startLine": 227}}}]}, {"ruleId": "scanner-3301e962ac15a35f", "level": "error", "message": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def generate` \u2014 modal/lipsync_musetalk.py:229"}, "properties": {"repobilityId": "9cb0653f9e9a5396", "scanner": "scanner-primary", "fingerprint": "3301e962ac15a35f", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "modal/lipsync_musetalk.py"}, "region": {"startLine": 229}}}]}, {"ruleId": "scanner-5e76871367ef33c3", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 modal/lipsync_wav2lip.py:91"}, "properties": {"repobilityId": "c003db1b8416763e", "scanner": "scanner-primary", "fingerprint": "5e76871367ef33c3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e2f3f513efa6d104", "level": "error", "message": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def generate` \u2014 modal/lipsync_wav2lip.py:161"}, "properties": {"repobilityId": "6a2fcd4dfb11c21d", "scanner": "scanner-primary", "fingerprint": "e2f3f513efa6d104", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "modal/lipsync_wav2lip.py"}, "region": {"startLine": 161}}}]}, {"ruleId": "scanner-d3a14f7d2480fd3b", "level": "error", "message": {"text": "Blocking `urllib.request.urlopen(...)` inside `async def generate` \u2014 modal/lipsync_wav2lip.py:163"}, "properties": {"repobilityId": "f1e87bf94e83fdbe", "scanner": "scanner-primary", "fingerprint": "d3a14f7d2480fd3b", "layer": "quality", "severity": "high", "confidence": 1.0, "tags": ["integrity", "sync-io-in-async", "performance"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "modal/lipsync_wav2lip.py"}, "region": {"startLine": 163}}}]}, {"ruleId": "scanner-635b6eb09a3c4a6c", "level": "none", "message": {"text": "Commented-code block (6 lines) in extension/background.js:452"}, "properties": {"repobilityId": "ce11b4c1a61afab2", "scanner": "scanner-primary", "fingerprint": "635b6eb09a3c4a6c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-73087596180f3ca7", "level": "none", "message": {"text": "Commented-code block (5 lines) in extension/inject.js:54"}, "properties": {"repobilityId": "cb42b5e891711ee1", "scanner": "scanner-primary", "fingerprint": "73087596180f3ca7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-89581033d7499bee", "level": "note", "message": {"text": "Legacy-named symbol `user_plan_v2` in extension/heygen-content.js:504"}, "properties": {"repobilityId": "441c5cca1399c0d5", "scanner": "scanner-primary", "fingerprint": "89581033d7499bee", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7688bdc59adb6920", "level": "none", "message": {"text": "Commented-code block (8 lines) in extension/heygen-content.js:23"}, "properties": {"repobilityId": "e6e51e1d40e61634", "scanner": "scanner-primary", "fingerprint": "7688bdc59adb6920", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e8e57f6979390189", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 extension-freepik-sync/background.js:355"}, "properties": {"repobilityId": "d61fc946372184d8", "scanner": "scanner-primary", "fingerprint": "e8e57f6979390189", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bc3db0ca14fdad1a", "level": "none", "message": {"text": "Commented-code block (12 lines) in engine/package.mjs:178"}, "properties": {"repobilityId": "196c77fb5a09a8b8", "scanner": "scanner-primary", "fingerprint": "bc3db0ca14fdad1a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fae46e96968a84e3", "level": "none", "message": {"text": "Commented-code block (5 lines) in engine/subtitle-remover-pkg/sttn_engine.py:41"}, "properties": {"repobilityId": "43856d17b1c17147", "scanner": "scanner-primary", "fingerprint": "fae46e96968a84e3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-423d51ea3c8b386f", "level": "note", "message": {"text": "Legacy-named symbol `cmd_copy` in engine/subtitle-remover-pkg/pipeline.py:779"}, "properties": {"repobilityId": "9c1e08e21236980e", "scanner": "scanner-primary", "fingerprint": "423d51ea3c8b386f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f90ed4e2c94ca75b", "level": "none", "message": {"text": "Commented-code block (6 lines) in engine/subtitle-remover-pkg/pipeline.py:30"}, "properties": {"repobilityId": "f3da4ae07ab1d535", "scanner": "scanner-primary", "fingerprint": "f90ed4e2c94ca75b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8641d03b54c13fe0", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 engine/subtitle-remover-pkg/pipeline.py:776"}, "properties": {"repobilityId": "64adadcb31054e0a", "scanner": "scanner-primary", "fingerprint": "8641d03b54c13fe0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4d5f2da87c2f68df", "level": "none", "message": {"text": "Commented-code block (10 lines) in engine/subtitle-remover-pkg/sttn/spectral_norm.py:38"}, "properties": {"repobilityId": "3b9f60963434f29f", "scanner": "scanner-primary", "fingerprint": "4d5f2da87c2f68df", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-84587c0865f43075", "level": "none", "message": {"text": "Commented-code block (6 lines) in engine/subtitle-remover-pkg/propainter/RAFT/utils/flow_viz.py:8"}, "properties": {"repobilityId": "9587d2c0ce4a319f", "scanner": "scanner-primary", "fingerprint": "84587c0865f43075", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-63e009307947f57d", "level": "note", "message": {"text": "Stub function `get` (body is just `pass`/`return`) \u2014 engine/subtitle-remover-pkg/propainter/utils/file_client.py:13"}, "properties": {"repobilityId": "8bb953e74a328202", "scanner": "scanner-primary", "fingerprint": "63e009307947f57d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-bfed1d4ffe478050", "level": "note", "message": {"text": "Legacy-named symbol `edges_old` in engine/subtitle-remover-pkg/propainter/model/canny/canny_filter.py:157"}, "properties": {"repobilityId": "30752ef7fbffc124", "scanner": "scanner-primary", "fingerprint": "bfed1d4ffe478050", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3e3394b14d2281e4", "level": "none", "message": {"text": "Commented-code block (12 lines) in engine/subtitle-remover-pkg/propainter/model/modules/flow_loss_utils.py:48"}, "properties": {"repobilityId": "b6605a74a817f95d", "scanner": "scanner-primary", "fingerprint": "3e3394b14d2281e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6f28441d18c660f", "level": "none", "message": {"text": "Commented-code block (10 lines) in engine/subtitle-remover-pkg/propainter/model/modules/spectral_norm.py:41"}, "properties": {"repobilityId": "fbedc3d84c23a77a", "scanner": "scanner-primary", "fingerprint": "d6f28441d18c660f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0b283ca49fa749cf", "level": "none", "message": {"text": "Commented-code block (5 lines) in engine/subtitle-remover-local/sttn_engine.py:41"}, "properties": {"repobilityId": "ec8700cc96a432be", "scanner": "scanner-primary", "fingerprint": "0b283ca49fa749cf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c7488c215f810823", "level": "note", "message": {"text": "Legacy-named symbol `cmd_copy` in engine/subtitle-remover-local/pipeline.py:779"}, "properties": {"repobilityId": "12b6c6b4343e02e9", "scanner": "scanner-primary", "fingerprint": "c7488c215f810823", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7df2fe86a93d3d1f", "level": "none", "message": {"text": "Commented-code block (6 lines) in engine/subtitle-remover-local/pipeline.py:30"}, "properties": {"repobilityId": "2c045161917b75bc", "scanner": "scanner-primary", "fingerprint": "7df2fe86a93d3d1f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-344a17613fd165b3", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 engine/subtitle-remover-local/pipeline.py:776"}, "properties": {"repobilityId": "ea2287a847d6405b", "scanner": "scanner-primary", "fingerprint": "344a17613fd165b3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b5b772c977a7a098", "level": "none", "message": {"text": "Commented-code block (10 lines) in engine/subtitle-remover-local/sttn/spectral_norm.py:38"}, "properties": {"repobilityId": "1eeea9aab2148c4c", "scanner": "scanner-primary", "fingerprint": "b5b772c977a7a098", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-30afafe3a9e04a0e", "level": "none", "message": {"text": "Commented-code block (6 lines) in engine/subtitle-remover-local/propainter/RAFT/utils/flow_viz.py:8"}, "properties": {"repobilityId": "17e917d4e27e00ea", "scanner": "scanner-primary", "fingerprint": "30afafe3a9e04a0e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b4f25cbf0d43a887", "level": "note", "message": {"text": "Stub function `get` (body is just `pass`/`return`) \u2014 engine/subtitle-remover-local/propainter/utils/file_client.py:13"}, "properties": {"repobilityId": "c852b8e9c3a1b046", "scanner": "scanner-primary", "fingerprint": "b4f25cbf0d43a887", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-c7d56935cea18d9b", "level": "note", "message": {"text": "Legacy-named symbol `edges_old` in engine/subtitle-remover-local/propainter/model/canny/canny_filter.py:157"}, "properties": {"repobilityId": "7291ec0d0bfde944", "scanner": "scanner-primary", "fingerprint": "c7d56935cea18d9b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-366293ff6fba37ec", "level": "none", "message": {"text": "Commented-code block (12 lines) in engine/subtitle-remover-local/propainter/model/modules/flow_loss_utils.py:48"}, "properties": {"repobilityId": "b136bb0a6e396e67", "scanner": "scanner-primary", "fingerprint": "366293ff6fba37ec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cfa7024f9aad2d4c", "level": "none", "message": {"text": "Commented-code block (10 lines) in engine/subtitle-remover-local/propainter/model/modules/spectral_norm.py:41"}, "properties": {"repobilityId": "5a604b8edcbe2e2e", "scanner": "scanner-primary", "fingerprint": "cfa7024f9aad2d4c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8f1bab8f54545f7c", "level": "none", "message": {"text": "Commented-code block (7 lines) in extension-downloader/bg.js:16"}, "properties": {"repobilityId": "469f3f6161bdde1d", "scanner": "scanner-primary", "fingerprint": "8f1bab8f54545f7c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e531b0fd493be6f1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 extension-downloader/bg.js:105"}, "properties": {"repobilityId": "17f09a4b2bb9f56d", "scanner": "scanner-primary", "fingerprint": "e531b0fd493be6f1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-463d7d6a0ffaca67", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 extension-downloader/popup.js:43"}, "properties": {"repobilityId": "8d64f8587a15b115", "scanner": "scanner-primary", "fingerprint": "463d7d6a0ffaca67", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "b53e5348996c0612", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "5d163890bc30e6b6", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "2c695729a5189cdf", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "26ee6ef86b29c08d", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "80ad6f8bd63aa466", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "9ba75ec099d1b1b1", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "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": "55597f26cabe1897", "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": "b793421608145065", "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": "2a8dbd67d8314c1d", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "67c8abe20bf15ed3", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "52bab3edd4a7bc25", "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": "05bb76faf811919c", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "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": "43c07dd589e4b82e", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "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": "018dd041d9ccf630", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-122053f21232d80c", "level": "note", "message": {"text": "Near-duplicate function bodies in 14 places"}, "properties": {"repobilityId": "402a4ca563537cb1", "scanner": "scanner-primary", "fingerprint": "122053f21232d80c", "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": "7964ee997b8e7d2b", "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": "df91dd51b85e88fc", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-122053f21232d80c", "level": "note", "message": {"text": "Near-duplicate function bodies in 14 places"}, "properties": {"repobilityId": "9fc508296cd11bd3", "scanner": "scanner-primary", "fingerprint": "122053f21232d80c", "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": "05ed547523eccd70", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "b3ffd66f3c88e938", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-5072219bb024f29e", "level": "error", "message": {"text": "FastAPI POST `process` without auth dependency \u2014 engine/subtitle-remover-pkg/server.py:247"}, "properties": {"repobilityId": "99e78103f77efbed", "scanner": "scanner-primary", "fingerprint": "5072219bb024f29e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-pkg/server.py"}, "region": {"startLine": 247}}}]}, {"ruleId": "scanner-fcfbed4b79e1d2c9", "level": "error", "message": {"text": "FastAPI POST `create_job` without auth dependency \u2014 engine/subtitle-remover-pkg/server.py:299"}, "properties": {"repobilityId": "825992cc5b19cc53", "scanner": "scanner-primary", "fingerprint": "fcfbed4b79e1d2c9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-pkg/server.py"}, "region": {"startLine": 299}}}]}, {"ruleId": "scanner-04293b776e6f4006", "level": "error", "message": {"text": "FastAPI DELETE `delete_job` without auth dependency \u2014 engine/subtitle-remover-pkg/server.py:415"}, "properties": {"repobilityId": "bd9297e0288beef0", "scanner": "scanner-primary", "fingerprint": "04293b776e6f4006", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-pkg/server.py"}, "region": {"startLine": 415}}}]}, {"ruleId": "scanner-cc5ae176470d65c8", "level": "error", "message": {"text": "FastAPI POST `process` without auth dependency \u2014 engine/subtitle-remover-local/server.py:247"}, "properties": {"repobilityId": "1663fb4d722c9dc3", "scanner": "scanner-primary", "fingerprint": "cc5ae176470d65c8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-local/server.py"}, "region": {"startLine": 247}}}]}, {"ruleId": "scanner-1fdb837d0c998d92", "level": "error", "message": {"text": "FastAPI POST `create_job` without auth dependency \u2014 engine/subtitle-remover-local/server.py:299"}, "properties": {"repobilityId": "4238b8447ad86778", "scanner": "scanner-primary", "fingerprint": "1fdb837d0c998d92", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-local/server.py"}, "region": {"startLine": 299}}}]}, {"ruleId": "scanner-e29a510678feed4e", "level": "error", "message": {"text": "FastAPI DELETE `delete_job` without auth dependency \u2014 engine/subtitle-remover-local/server.py:415"}, "properties": {"repobilityId": "44c31ba9e348f9ef", "scanner": "scanner-primary", "fingerprint": "e29a510678feed4e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "engine/subtitle-remover-local/server.py"}, "region": {"startLine": 415}}}]}, {"ruleId": "scanner-79eac80ae13359aa", "level": "error", "message": {"text": "Dangling fetch: POST https://api.replicate.com/v1/files (scripts/test-replicate-wav2lip.mjs:109)"}, "properties": {"repobilityId": "50ec97a7ad2fc639", "scanner": "scanner-primary", "fingerprint": "79eac80ae13359aa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c80824df3fb0afe1", "level": "error", "message": {"text": "Dangling fetch: POST https://api.replicate.com/v1/models/pixverse/lipsync/predictions (scripts/test-replicate-wav2lip.mjs:135)"}, "properties": {"repobilityId": "1a4be333e3d24981", "scanner": "scanner-primary", "fingerprint": "c80824df3fb0afe1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f73a3ffab3945e2e", "level": "error", "message": {"text": "Dangling fetch: GET https://api.replicate.com/v1/predictions/${pred.id} (scripts/test-replicate-wav2lip.mjs:160)"}, "properties": {"repobilityId": "300c0305235883c4", "scanner": "scanner-primary", "fingerprint": "f73a3ffab3945e2e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-652ab34697882f1b", "level": "error", "message": {"text": "Dangling fetch: POST https://api.replicate.com/v1/files (scripts/test-musetalk.mjs:60)"}, "properties": {"repobilityId": "27b0f18e7bcb6679", "scanner": "scanner-primary", "fingerprint": "652ab34697882f1b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-840f5a65f276ff39", "level": "error", "message": {"text": "Dangling fetch: GET https://api.replicate.com/v1/models/chenxwh/video-retalking/versions (scripts/test-musetalk.mjs:79)"}, "properties": {"repobilityId": "67f97a80d2bf4a26", "scanner": "scanner-primary", "fingerprint": "840f5a65f276ff39", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8d8d0dea82ef5e6d", "level": "error", "message": {"text": "Dangling fetch: POST https://api.replicate.com/v1/predictions (scripts/test-musetalk.mjs:90)"}, "properties": {"repobilityId": "27cb4607d05182e4", "scanner": "scanner-primary", "fingerprint": "8d8d0dea82ef5e6d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-35602b00574c6ac8", "level": "error", "message": {"text": "Dangling fetch: GET https://api.replicate.com/v1/predictions/${pred.id} (scripts/test-musetalk.mjs:108)"}, "properties": {"repobilityId": "7d106b7f56cff566", "scanner": "scanner-primary", "fingerprint": "35602b00574c6ac8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-63b92af962928929", "level": "error", "message": {"text": "Dangling fetch: POST https://api.replicate.com/v1/files (scripts/test-pixverse-chunk.mjs:63)"}, "properties": {"repobilityId": "ff809f93e2a37c56", "scanner": "scanner-primary", "fingerprint": "63b92af962928929", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-31cc2b20f4b367df", "level": "error", "message": {"text": "Dangling fetch: POST https://api.replicate.com/v1/models/pixverse/lipsync/predictions (scripts/test-pixverse-chunk.mjs:83)"}, "properties": {"repobilityId": "0b3a1ab3352ab76d", "scanner": "scanner-primary", "fingerprint": "31cc2b20f4b367df", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5f831a811ee37043", "level": "error", "message": {"text": "Dangling fetch: GET https://api.replicate.com/v1/predictions/${pred.id} (scripts/test-pixverse-chunk.mjs:96)"}, "properties": {"repobilityId": "6b9a8b7e408fc35b", "scanner": "scanner-primary", "fingerprint": "5f831a811ee37043", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ef7b75b38ec8ef0d", "level": "error", "message": {"text": "Dangling fetch: GET https://www.magnific.com/app/api/auth/verify?lang=en_US (extension-freepik-sync/background.js:151)"}, "properties": {"repobilityId": "3658bf34a14dbef5", "scanner": "scanner-primary", "fingerprint": "ef7b75b38ec8ef0d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-614a1dbc58565d11", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/health (engine/pkg/server.cjs:981)"}, "properties": {"repobilityId": "4b84290292d93c0d", "scanner": "scanner-primary", "fingerprint": "614a1dbc58565d11", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-02503ae43524eaa7", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${p}/health (extension-downloader/bg.js:100)"}, "properties": {"repobilityId": "5adb43fc9adb1195", "scanner": "scanner-primary", "fingerprint": "02503ae43524eaa7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f84921890e2b4d82", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${p}/pair (extension-downloader/bg.js:105)"}, "properties": {"repobilityId": "90212489a1e3d474", "scanner": "scanner-primary", "fingerprint": "f84921890e2b4d82", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d5c529d53efae135", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${p}/health (extension-downloader/popup.js:39)"}, "properties": {"repobilityId": "795cbbee9bce5b5f", "scanner": "scanner-primary", "fingerprint": "d5c529d53efae135", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9699bebdfa9dc01f", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${p}/pair (extension-downloader/popup.js:43)"}, "properties": {"repobilityId": "54759c243390c319", "scanner": "scanner-primary", "fingerprint": "9699bebdfa9dc01f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-90bd0431183f8976", "level": "error", "message": {"text": "Dangling fetch: GET /api/user/secrets (components/MissingKeyBanner.tsx:37)"}, "properties": {"repobilityId": "7eaa98714e2c2c91", "scanner": "scanner-primary", "fingerprint": "90bd0431183f8976", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-559205821b3ba351", "level": "error", "message": {"text": "Dangling fetch: POST /api/billing/checkout (components/Plans.tsx:764)"}, "properties": {"repobilityId": "bb29e9981f9d61f5", "scanner": "scanner-primary", "fingerprint": "559205821b3ba351", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e86a0e8adc763665", "level": "error", "message": {"text": "Dangling fetch: GET /api/heygen/voices?q=${encodeURIComponent(query.trim())}&lang=pt (components/CompactVoiceSelector.tsx:100)"}, "properties": {"repobilityId": "d61d9fe0d359da5f", "scanner": "scanner-primary", "fingerprint": "e86a0e8adc763665", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e35beedbaad0bb0b", "level": "error", "message": {"text": "Dangling fetch: POST /api/user/heartbeat (components/Heartbeat.tsx:72)"}, "properties": {"repobilityId": "b936924c47582560", "scanner": "scanner-primary", "fingerprint": "e35beedbaad0bb0b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d5148bd57b5e2a03", "level": "error", "message": {"text": "Dangling fetch: POST /api/billing/setup-intent (components/CardUpdate.tsx:49)"}, "properties": {"repobilityId": "4ca27a1b0aa036b3", "scanner": "scanner-primary", "fingerprint": "d5148bd57b5e2a03", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7a810af3131ad7de", "level": "error", "message": {"text": "Dangling fetch: POST /api/billing/set-default-card (components/CardUpdate.tsx:73)"}, "properties": {"repobilityId": "e036f8236f7fab3c", "scanner": "scanner-primary", "fingerprint": "7a810af3131ad7de", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-71939bd8744c07cd", "level": "error", "message": {"text": "Dangling fetch: POST /api/heygen/clone-voice (components/HeyGenVoicePicker.tsx:81)"}, "properties": {"repobilityId": "8bacd1c2879b3ab8", "scanner": "scanner-primary", "fingerprint": "71939bd8744c07cd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b0c404c6055aa129", "level": "error", "message": {"text": "Dangling fetch: GET /api/tools/remove-subtitle/status?record_id=${recordId}&mode=smart (components/tools/RemoverLegendaTool.tsx:144)"}, "properties": {"repobilityId": "4f8d11472e6fbc51", "scanner": "scanner-primary", "fingerprint": "b0c404c6055aa129", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-58883058c5b11ba3", "level": "error", "message": {"text": "Dangling fetch: POST /api/tools/remove-subtitle/upload/part (components/tools/RemoverLegendaTool.tsx:181)"}, "properties": {"repobilityId": "26daea072aeb030b", "scanner": "scanner-primary", "fingerprint": "58883058c5b11ba3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-95e0bddc7dd1cf5f", "level": "error", "message": {"text": "Dangling fetch: POST /api/tools/remove-subtitle/upload/init (components/tools/RemoverLegendaTool.tsx:207)"}, "properties": {"repobilityId": "3903827a7fd62705", "scanner": "scanner-primary", "fingerprint": "95e0bddc7dd1cf5f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6b85c80d7dfef7f7", "level": "error", "message": {"text": "Dangling fetch: POST /api/tools/remove-subtitle (components/tools/RemoverLegendaTool.tsx:243)"}, "properties": {"repobilityId": "6e74ee9a13df9d4c", "scanner": "scanner-primary", "fingerprint": "6b85c80d7dfef7f7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b15d68e4d6365778", "level": "error", "message": {"text": "Dangling fetch: POST /api/tools/lipsync/upload-url (components/tools/LipSyncTool.tsx:279)"}, "properties": {"repobilityId": "7501e125bcc1b5b6", "scanner": "scanner-primary", "fingerprint": "b15d68e4d6365778", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-204a2080ef4f24cf", "level": "error", "message": {"text": "Dangling fetch: POST /api/tools/lipsync (components/tools/LipSyncTool.tsx:307)"}, "properties": {"repobilityId": "f1ffc05efca61628", "scanner": "scanner-primary", "fingerprint": "204a2080ef4f24cf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-30c1009a9e66ea7d", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/resend-confirm (app/auth/error/error-client.tsx:51)"}, "properties": {"repobilityId": "c84a97a843f20f64", "scanner": "scanner-primary", "fingerprint": "30c1009a9e66ea7d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-01a57a4badc025d5", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/forgot-password (app/reset-password/page.tsx:167)"}, "properties": {"repobilityId": "64902f274d8211c8", "scanner": "scanner-primary", "fingerprint": "01a57a4badc025d5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-63c9877d763e1945", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/diagnose (app/login/page.tsx:45)"}, "properties": {"repobilityId": "951a2aa342d41677", "scanner": "scanner-primary", "fingerprint": "63c9877d763e1945", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f71b0b31d1236967", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/resend-confirm (app/login/page.tsx:119)"}, "properties": {"repobilityId": "033dbee7adc2d6ae", "scanner": "scanner-primary", "fingerprint": "f71b0b31d1236967", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-31cd3735b3e0d7f6", "level": "error", "message": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/remover-elementos/detect/route.ts:119)"}, "properties": {"repobilityId": "52172cca382b566b", "scanner": "scanner-primary", "fingerprint": "31cd3735b3e0d7f6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ab1c93a20ac78735", "level": "error", "message": {"text": "Dangling fetch: GET https://api.heygen.com/v2/voices (app/api/heygen/voices/route.ts:34)"}, "properties": {"repobilityId": "04a5c3e5b2c68902", "scanner": "scanner-primary", "fingerprint": "ab1c93a20ac78735", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-17e5f26df7c40dc7", "level": "error", "message": {"text": "Dangling fetch: GET https://api.heygen.com/v2/avatars (app/api/heygen/avatars/route.ts:71)"}, "properties": {"repobilityId": "22f31121e1d0b2fa", "scanner": "scanner-primary", "fingerprint": "17e5f26df7c40dc7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c7554582caea71df", "level": "error", "message": {"text": "Dangling fetch: POST https://upload.heygen.com/v1/asset (app/api/heygen/clone-voice/route.ts:68)"}, "properties": {"repobilityId": "8a460a5eff54a685", "scanner": "scanner-primary", "fingerprint": "c7554582caea71df", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6022ad155e989524", "level": "error", "message": {"text": "Dangling fetch: POST https://api.heygen.com/v2/voice/clone (app/api/heygen/clone-voice/route.ts:97)"}, "properties": {"repobilityId": "2c2065ea92621a91", "scanner": "scanner-primary", "fingerprint": "6022ad155e989524", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3ce6ccb0e8972f0f", "level": "error", "message": {"text": "Dangling fetch: POST https://api.heygen.com/v1/voice/clone (app/api/heygen/clone-voice/route.ts:115)"}, "properties": {"repobilityId": "4c2d3bd83b40e930", "scanner": "scanner-primary", "fingerprint": "3ce6ccb0e8972f0f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-972790d76d5e3040", "level": "error", "message": {"text": "Dangling fetch: DELETE https://api.elevenlabs.io/v1/voices/${encodeURIComponent(body.voiceId)} (app/api/troca-produto/elevenlabs-delete/route.ts:45)"}, "properties": {"repobilityId": "7a5a369c6562065a", "scanner": "scanner-primary", "fingerprint": "972790d76d5e3040", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-42c44da9fe3680f7", "level": "error", "message": {"text": "Dangling fetch: POST https://api.elevenlabs.io/v1/voices/add (app/api/troca-produto/elevenlabs-clone/route.ts:64)"}, "properties": {"repobilityId": "fdb77619942a96c5", "scanner": "scanner-primary", "fingerprint": "42c44da9fe3680f7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c70db203d5449cdb", "level": "error", "message": {"text": "Dangling fetch: POST https://api.replicate.com/v1/files (app/api/voice-isolate-pro/route.ts:117)"}, "properties": {"repobilityId": "a4d190574bc11d78", "scanner": "scanner-primary", "fingerprint": "c70db203d5449cdb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f5006f68a2fb487c", "level": "error", "message": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/avatar-visual-match/route.ts:94)"}, "properties": {"repobilityId": "34b4beca108ddac8", "scanner": "scanner-primary", "fingerprint": "f5006f68a2fb487c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-92443c775c3b16fa", "level": "error", "message": {"text": "Dangling fetch: POST https://api.replicate.com/v1/files (app/api/replicate/upload/route.ts:60)"}, "properties": {"repobilityId": "17085cd0dd544060", "scanner": "scanner-primary", "fingerprint": "92443c775c3b16fa", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-93b3ac26d22952dd", "level": "error", "message": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (app/api/auto-broll/route.ts:137)"}, "properties": {"repobilityId": "ce4c27e4e4e93e88", "scanner": "scanner-primary", "fingerprint": "93b3ac26d22952dd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5b6ea6b29e3d8863", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/forgot-password (app/forgot-password/page.tsx:31)"}, "properties": {"repobilityId": "9c5753604264bd2b", "scanner": "scanner-primary", "fingerprint": "5b6ea6b29e3d8863", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-409dd9821be70c01", "level": "error", "message": {"text": "Dangling fetch: POST /api/user/clear-password-flag (app/trocar-senha/page.tsx:45)"}, "properties": {"repobilityId": "c139cd3e6ba828cf", "scanner": "scanner-primary", "fingerprint": "409dd9821be70c01", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fb2f47005acc791f", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/list-users (app/admin/page.tsx:83)"}, "properties": {"repobilityId": "430aacb0ab959000", "scanner": "scanner-primary", "fingerprint": "fb2f47005acc791f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2373d8c50b817116", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/create-user (app/admin/page.tsx:112)"}, "properties": {"repobilityId": "d3dac8a8ada6365d", "scanner": "scanner-primary", "fingerprint": "2373d8c50b817116", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-15caaa19926ee2cb", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/set-tier (app/admin/page.tsx:148)"}, "properties": {"repobilityId": "8a48d73bdc90c128", "scanner": "scanner-primary", "fingerprint": "15caaa19926ee2cb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-eb5a1fe393db76a2", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/reset-password (app/admin/page.tsx:184)"}, "properties": {"repobilityId": "5dbe05a47333eb00", "scanner": "scanner-primary", "fingerprint": "eb5a1fe393db76a2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a2280aa4282bb873", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/toggle-user (app/admin/page.tsx:219)"}, "properties": {"repobilityId": "47485a482e8833a9", "scanner": "scanner-primary", "fingerprint": "a2280aa4282bb873", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ba9296aef22bea29", "level": "error", "message": {"text": "Dangling fetch: GET /api/admin/dashboard (app/admin/dashboard/page.tsx:98)"}, "properties": {"repobilityId": "520da52a0ddfe22a", "scanner": "scanner-primary", "fingerprint": "ba9296aef22bea29", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6e73197d96c420c5", "level": "error", "message": {"text": "Dangling fetch: POST /api/admin/user-search?q=${encodeURIComponent(query)} (app/admin/dashboard/page.tsx:581)"}, "properties": {"repobilityId": "eb50fdab7a55a686", "scanner": "scanner-primary", "fingerprint": "6e73197d96c420c5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-13b2fbaae9360ed1", "level": "error", "message": {"text": "Dangling fetch: POST /api/downloader (app/tools/downloader/page.tsx:268)"}, "properties": {"repobilityId": "84686ed07765593c", "scanner": "scanner-primary", "fingerprint": "13b2fbaae9360ed1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e371d9af7e88aafd", "level": "error", "message": {"text": "Dangling fetch: POST /api/troca-produto/assemblyai (app/tools/troca-produto/page.tsx:167)"}, "properties": {"repobilityId": "788add68b239fe43", "scanner": "scanner-primary", "fingerprint": "e371d9af7e88aafd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1eccd607c68fe563", "level": "error", "message": {"text": "Dangling fetch: POST /api/troca-produto/elevenlabs-clone (app/tools/troca-produto/page.tsx:225)"}, "properties": {"repobilityId": "9965811c6c57da98", "scanner": "scanner-primary", "fingerprint": "1eccd607c68fe563", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9d88667fda61d22a", "level": "error", "message": {"text": "Dangling fetch: POST /api/troca-produto/elevenlabs-tts (app/tools/troca-produto/page.tsx:250)"}, "properties": {"repobilityId": "382e5fb81b678dc6", "scanner": "scanner-primary", "fingerprint": "9d88667fda61d22a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8c940ce209e299d9", "level": "error", "message": {"text": "Dangling fetch: POST /api/troca-produto/elevenlabs-delete (app/tools/troca-produto/page.tsx:284)"}, "properties": {"repobilityId": "50daf894938a6722", "scanner": "scanner-primary", "fingerprint": "8c940ce209e299d9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-93b73a67cbb76400", "level": "error", "message": {"text": "Dangling fetch: POST /api/separador-audio/upload-url (app/tools/separador-audio/page.tsx:147)"}, "properties": {"repobilityId": "fca4fc2860ebe667", "scanner": "scanner-primary", "fingerprint": "93b73a67cbb76400", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9797186d09eaffa1", "level": "error", "message": {"text": "Dangling fetch: POST /api/separador-audio (app/tools/separador-audio/page.tsx:193)"}, "properties": {"repobilityId": "a8d94123eb0e4ffc", "scanner": "scanner-primary", "fingerprint": "9797186d09eaffa1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0f19e6f3dba2beb3", "level": "error", "message": {"text": "Dangling fetch: GET /api/user/secrets (app/tools/clickup-pilot/page.tsx:683)"}, "properties": {"repobilityId": "dfb9b6a151106183", "scanner": "scanner-primary", "fingerprint": "0f19e6f3dba2beb3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-abad8bf98bd42950", "level": "error", "message": {"text": "Dangling fetch: POST /api/avatar-visual-match (app/tools/clickup-pilot/page.tsx:1206)"}, "properties": {"repobilityId": "4aeb3bc544da6473", "scanner": "scanner-primary", "fingerprint": "abad8bf98bd42950", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d7a6d6345d7b661c", "level": "error", "message": {"text": "Dangling fetch: GET /api/heygen/voices?lang=pt (app/tools/clickup-pilot/page.tsx:1273)"}, "properties": {"repobilityId": "d72b56b24c8b2f93", "scanner": "scanner-primary", "fingerprint": "d7a6d6345d7b661c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-be082edf5931a94c", "level": "error", "message": {"text": "Dangling fetch: POST /api/avatar-visual-match (app/tools/clickup-pilot/page.tsx:4153)"}, "properties": {"repobilityId": "60ed90fd7431d9a9", "scanner": "scanner-primary", "fingerprint": "be082edf5931a94c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-38d133942606689c", "level": "error", "message": {"text": "Dangling fetch: GET /api/docs/fetch?url=${encodeURIComponent(url)} (app/tools/clickup-pilot/page.tsx:4541)"}, "properties": {"repobilityId": "b2a97586aadd9cd4", "scanner": "scanner-primary", "fingerprint": "38d133942606689c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b29c615b6c4fa319", "level": "error", "message": {"text": "Dangling fetch: POST /api/va/diarize (app/tools/clickup-pilot/page.tsx:4951)"}, "properties": {"repobilityId": "582e0235a1691f2b", "scanner": "scanner-primary", "fingerprint": "b29c615b6c4fa319", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0d0f012fe11a0558", "level": "error", "message": {"text": "Dangling fetch: POST /api/va/diarize (app/tools/clickup-pilot/page.tsx:5330)"}, "properties": {"repobilityId": "6e1967c6d70651d8", "scanner": "scanner-primary", "fingerprint": "0d0f012fe11a0558", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0c31dfca1d5ebf3f", "level": "error", "message": {"text": "Dangling fetch: POST /api/camuflagem/transcribe (app/tools/clickup-pilot/page.tsx:5907)"}, "properties": {"repobilityId": "cbd503653c60b6bf", "scanner": "scanner-primary", "fingerprint": "0c31dfca1d5ebf3f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-04ad3a96739b5060", "level": "error", "message": {"text": "Dangling fetch: GET /api/auto-broll-v2/save-creds (app/tools/auto-broll/page.tsx:21)"}, "properties": {"repobilityId": "6395cbe7d950b8e6", "scanner": "scanner-primary", "fingerprint": "04ad3a96739b5060", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d2a3ed53501531e0", "level": "error", "message": {"text": "Dangling fetch: GET /api/auto-broll-v2/save-creds (app/tools/auto-broll/page.tsx:55)"}, "properties": {"repobilityId": "16729c89e84efa1b", "scanner": "scanner-primary", "fingerprint": "d2a3ed53501531e0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ae35f03a2733fe5b", "level": "error", "message": {"text": "Dangling fetch: POST /api/camuflagem/transcribe (app/tools/camuflagem/page.tsx:300)"}, "properties": {"repobilityId": "9581bda739a5b302", "scanner": "scanner-primary", "fingerprint": "ae35f03a2733fe5b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d0be7d9a1e9692cb", "level": "error", "message": {"text": "Dangling fetch: POST /api/decupagem-copy/transcribe (app/tools/decupagem-copy/page.tsx:217)"}, "properties": {"repobilityId": "a5db68af6d258c84", "scanner": "scanner-primary", "fingerprint": "d0be7d9a1e9692cb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1480ac633123e461", "level": "error", "message": {"text": "Dangling fetch: POST /api/decupagem-copy/match (app/tools/decupagem-copy/page.tsx:299)"}, "properties": {"repobilityId": "c4ad507c14f95e90", "scanner": "scanner-primary", "fingerprint": "1480ac633123e461", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-af68bb58bf2794dd", "level": "error", "message": {"text": "Dangling fetch: POST /api/decupagem-copy/audit (app/tools/decupagem-copy/page.tsx:371)"}, "properties": {"repobilityId": "79d7a682b47fcb99", "scanner": "scanner-primary", "fingerprint": "af68bb58bf2794dd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-04b3c6fa8b2b9a56", "level": "error", "message": {"text": "Dangling fetch: GET /api/ltx-video/status (app/tools/ltx-video/page.tsx:75)"}, "properties": {"repobilityId": "c0242d53b09e8529", "scanner": "scanner-primary", "fingerprint": "04b3c6fa8b2b9a56", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-70301c56817c5884", "level": "error", "message": {"text": "Dangling fetch: POST /api/ltx-video/generate (app/tools/ltx-video/page.tsx:137)"}, "properties": {"repobilityId": "121226d7ac7572b2", "scanner": "scanner-primary", "fingerprint": "70301c56817c5884", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-812ac8ff2cf0913c", "level": "error", "message": {"text": "Dangling fetch: POST /api/mind-ads/transcribe-srt (app/tools/copy-srt/page.tsx:138)"}, "properties": {"repobilityId": "8901ad9969849623", "scanner": "scanner-primary", "fingerprint": "812ac8ff2cf0913c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-878d59f7eb5060d4", "level": "error", "message": {"text": "Dangling fetch: GET /api/docs/fetch?url=${encodeURIComponent(docLink.trim())} (app/tools/heygen-auto/page.tsx:1103)"}, "properties": {"repobilityId": "64b6f89d895e9534", "scanner": "scanner-primary", "fingerprint": "878d59f7eb5060d4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e07790d168d86116", "level": "error", "message": {"text": "Dangling fetch: GET /api/billing/subscription (app/configuracoes/assinatura/page.tsx:71)"}, "properties": {"repobilityId": "32ea4611bcb84ce1", "scanner": "scanner-primary", "fingerprint": "e07790d168d86116", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dfd92bf7e03fc3a9", "level": "error", "message": {"text": "Dangling fetch: POST /api/billing/cancel (app/configuracoes/assinatura/page.tsx:98)"}, "properties": {"repobilityId": "e9604fc052d72372", "scanner": "scanner-primary", "fingerprint": "dfd92bf7e03fc3a9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e0f064fffcf277b1", "level": "error", "message": {"text": "Dangling fetch: GET /api/user/secrets (app/configuracoes/api/page.tsx:131)"}, "properties": {"repobilityId": "92ce784f03af3768", "scanner": "scanner-primary", "fingerprint": "e0f064fffcf277b1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-85be2396b03d8ae5", "level": "error", "message": {"text": "Dangling fetch: PUT /api/user/secrets (app/configuracoes/api/page.tsx:154)"}, "properties": {"repobilityId": "69c061c3f1abaa2e", "scanner": "scanner-primary", "fingerprint": "85be2396b03d8ae5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3713c301c0d825c8", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/user/secrets (app/configuracoes/api/page.tsx:175)"}, "properties": {"repobilityId": "f9a2551028ec25b2", "scanner": "scanner-primary", "fingerprint": "3713c301c0d825c8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9f56bfa985b5778f", "level": "error", "message": {"text": "Dangling fetch: GET /api/auto-broll-v2/save-creds (app/configuracoes/magnific/page.tsx:56)"}, "properties": {"repobilityId": "6231dd902d695bbe", "scanner": "scanner-primary", "fingerprint": "9f56bfa985b5778f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-944680396e715b97", "level": "error", "message": {"text": "Dangling fetch: POST /api/auto-broll-v2/save-creds (app/configuracoes/magnific/page.tsx:115)"}, "properties": {"repobilityId": "5299fa7911e0e97d", "scanner": "scanner-primary", "fingerprint": "944680396e715b97", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ccc60b2618ce683e", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/auto-broll-v2/save-creds (app/configuracoes/magnific/page.tsx:140)"}, "properties": {"repobilityId": "2b74854c6061e15c", "scanner": "scanner-primary", "fingerprint": "ccc60b2618ce683e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ada9be2c11ac6705", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/sms/verify-code (app/verify-phone/page.tsx:31)"}, "properties": {"repobilityId": "5fc7dfde97c22373", "scanner": "scanner-primary", "fingerprint": "ada9be2c11ac6705", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-961d67eb10dbfdc5", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/sms/send-code (app/verify-phone/page.tsx:53)"}, "properties": {"repobilityId": "d1b06e5e49a73fda", "scanner": "scanner-primary", "fingerprint": "961d67eb10dbfdc5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1bd5da8219eb8e4e", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/sms/send-code (app/register/page.tsx:113)"}, "properties": {"repobilityId": "b3529c8af97034b9", "scanner": "scanner-primary", "fingerprint": "1bd5da8219eb8e4e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4c7c1f4f4293b4b7", "level": "error", "message": {"text": "Dangling fetch: GET /models/denoise.rnnn (lib/ffmpeg-worker.ts:1241)"}, "properties": {"repobilityId": "3f4ce910655f960b", "scanner": "scanner-primary", "fingerprint": "4c7c1f4f4293b4b7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-43a7538e55071cfd", "level": "error", "message": {"text": "Dangling fetch: POST https://api.resend.com/emails (lib/notify.ts:18)"}, "properties": {"repobilityId": "752d0ce148eef9c8", "scanner": "scanner-primary", "fingerprint": "43a7538e55071cfd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-43f40a7156ab94f6", "level": "error", "message": {"text": "Dangling fetch: POST /api/clickup/proxy (lib/clickup-client.ts:37)"}, "properties": {"repobilityId": "4ad539eefede872b", "scanner": "scanner-primary", "fingerprint": "43f40a7156ab94f6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a2fe17fd9c3249cf", "level": "error", "message": {"text": "Dangling fetch: POST /api/voice-isolate-pro (lib/voice-isolator-neural.ts:83)"}, "properties": {"repobilityId": "bb066e2446f0d254", "scanner": "scanner-primary", "fingerprint": "a2fe17fd9c3249cf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-514fc39fefa36271", "level": "error", "message": {"text": "Dangling fetch: POST /api/separador-audio (lib/voice-isolator-neural.ts:122)"}, "properties": {"repobilityId": "e7af6a0d70b337ec", "scanner": "scanner-primary", "fingerprint": "514fc39fefa36271", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-61acff6704e04467", "level": "error", "message": {"text": "Dangling fetch: POST /api/replicate/upload (lib/lipsync-chunker.ts:134)"}, "properties": {"repobilityId": "a2e72b975b0bd3e5", "scanner": "scanner-primary", "fingerprint": "61acff6704e04467", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-61c466a3402952ba", "level": "error", "message": {"text": "Dangling fetch: POST /api/tools/lipsync (lib/lipsync-chunker.ts:153)"}, "properties": {"repobilityId": "60ba2ca10fcbb475", "scanner": "scanner-primary", "fingerprint": "61c466a3402952ba", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1b0d461da40dbf22", "level": "error", "message": {"text": "Dangling fetch: GET http://127.0.0.1:${port}/health (engine/server.ts:322)"}, "properties": {"repobilityId": "ab510163fbe09319", "scanner": "scanner-primary", "fingerprint": "1b0d461da40dbf22", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b7abeb7ece9ae4a2", "level": "note", "message": {"text": "Unused endpoint: POST /up"}, "properties": {"repobilityId": "68cad2e024881164", "scanner": "scanner-primary", "fingerprint": "b7abeb7ece9ae4a2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fe098c26c8bc2839", "level": "note", "message": {"text": "Unused endpoint: GET /file"}, "properties": {"repobilityId": "93435d54c56f58b0", "scanner": "scanner-primary", "fingerprint": "fe098c26c8bc2839", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-970eb92d6ec2bfaa", "level": "note", "message": {"text": "Unused endpoint: POST /generate"}, "properties": {"repobilityId": "6262eebfa2993132", "scanner": "scanner-primary", "fingerprint": "970eb92d6ec2bfaa", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fd278a3c91aa5b3c", "level": "note", "message": {"text": "Unused endpoint: POST /process"}, "properties": {"repobilityId": "54d710501e89e9ea", "scanner": "scanner-primary", "fingerprint": "fd278a3c91aa5b3c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2b73face5b06aa67", "level": "note", "message": {"text": "Unused endpoint: POST /jobs"}, "properties": {"repobilityId": "f9b23b9c8bd750ae", "scanner": "scanner-primary", "fingerprint": "2b73face5b06aa67", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f2455970f81db98e", "level": "note", "message": {"text": "Unused endpoint: GET /jobs/{jid}"}, "properties": {"repobilityId": "0e273e5a5ab0cb6d", "scanner": "scanner-primary", "fingerprint": "f2455970f81db98e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c58f39bc85fb0cd4", "level": "note", "message": {"text": "Unused endpoint: GET /jobs/{jid}/result"}, "properties": {"repobilityId": "dbfd95ff08bbb30c", "scanner": "scanner-primary", "fingerprint": "c58f39bc85fb0cd4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b4aaf482a3493319", "level": "note", "message": {"text": "Unused endpoint: DELETE /jobs/{jid}"}, "properties": {"repobilityId": "ad3a1378464e93d4", "scanner": "scanner-primary", "fingerprint": "b4aaf482a3493319", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}