{"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-73b8dc94c4e0d8b6", "name": "Possibly dead Python function: test_parse_sankeymatic_node_color", "shortDescription": {"text": "Possibly dead Python function: test_parse_sankeymatic_node_color"}, "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-d920fe646beb3642", "name": "Possibly dead Python function: test_parse_sankeymatic_flow", "shortDescription": {"text": "Possibly dead Python function: test_parse_sankeymatic_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-beb767be984fe606", "name": "Possibly dead Python function: test_parse_sankeymatic_flows", "shortDescription": {"text": "Possibly dead Python function: test_parse_sankeymatic_flows"}, "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-ead5375051239d1b", "name": "Possibly dead Python function: test_parse_sankeymatic_setting", "shortDescription": {"text": "Possibly dead Python function: test_parse_sankeymatic_setting"}, "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-efa9a418ca916e26", "name": "Possibly dead Python function: page_not_found", "shortDescription": {"text": "Possibly dead Python function: page_not_found"}, "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-807c4cab1afd4ab5", "name": "Possibly dead Python function: parse_setting_line_size", "shortDescription": {"text": "Possibly dead Python function: parse_setting_line_size"}, "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-95d34bdc3b1fda0f", "name": "Possibly dead Python function: parse_setting_line_margin", "shortDescription": {"text": "Possibly dead Python function: parse_setting_line_margin"}, "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-6054246389c854fd", "name": "Possibly dead Python function: parse_setting_line_bg", "shortDescription": {"text": "Possibly dead Python function: parse_setting_line_bg"}, "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-0c9d6bb7ad0aa852", "name": "Possibly dead Python function: parse_setting_line_node", "shortDescription": {"text": "Possibly dead Python function: parse_setting_line_node"}, "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-c7d28048f1077caa", "name": "Possibly dead Python function: parse_setting_line_flow", "shortDescription": {"text": "Possibly dead Python function: parse_setting_line_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-7a6766ca6f1e975a", "name": "Possibly dead Python function: parse_setting_line_layout", "shortDescription": {"text": "Possibly dead Python function: parse_setting_line_layout"}, "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-796adb450802d171", "name": "Possibly dead Python function: parse_setting_line_labels", "shortDescription": {"text": "Possibly dead Python function: parse_setting_line_labels"}, "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-2686d0f37cec1d0b", "name": "Possibly dead Python function: parse_setting_line_label_name", "shortDescription": {"text": "Possibly dead Python function: parse_setting_line_label_name"}, "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-110d5c8e7075c67b", "name": "Possibly dead Python function: parse_setting_line_label_value", "shortDescription": {"text": "Possibly dead Python function: parse_setting_line_label_value"}, "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-a5ab9db5c4ee7bc5", "name": "Possibly dead Python function: parse_setting_line_label_position", "shortDescription": {"text": "Possibly dead Python function: parse_setting_line_label_position"}, "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-5a323e3eab300fb1", "name": "Possibly dead Python function: parse_setting_line_value", "shortDescription": {"text": "Possibly dead Python function: parse_setting_line_value"}, "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-a71795c85e9c5029", "name": "Possibly dead Python function: parse_setting_line_themeoffset", "shortDescription": {"text": "Possibly dead Python function: parse_setting_line_themeoffset"}, "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-9965c7763913421b", "name": "Possibly dead Python function: parse_setting_line_meta", "shortDescription": {"text": "Possibly dead Python function: parse_setting_line_meta"}, "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-d3b487fa4b5b48f9", "name": "Possibly dead Python function: sort_nodeIO", "shortDescription": {"text": "Possibly dead Python function: sort_nodeIO"}, "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-58b11430991a1994", "name": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/registerServiceWorker.js:42", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/registerServiceWorker.js:42"}, "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-e911a05a38461a55", "name": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/index.tsx:90", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/index.tsx:90"}, "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-f9490e2378fef18e", "name": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/App.tsx:122", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/App.tsx:122"}, "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-0fe24b8f577cd78f", "name": "TODO/FIXME marker in shipping code \u2014 opensankey/client/src/types/ApplicationData.tsx:1605", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 opensankey/client/src/types/ApplicationData.tsx:1605"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-260246052fbc6933", "name": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/types/ApplicationData.tsx:716", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/types/ApplicationData.tsx:716"}, "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-510dd732f818d97d", "name": "TODO/FIXME marker in shipping code \u2014 opensankey/client/src/types/Tag.tsx:566", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 opensankey/client/src/types/Tag.tsx:566"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-89525fc9584a2e1a", "name": "TODO/FIXME marker in shipping code \u2014 opensankey/client/src/types/Utils.tsx:290", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 opensankey/client/src/types/Utils.tsx:290"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-727f6b10ea6c4b18", "name": "TODO/FIXME marker in shipping code \u2014 opensankey/client/src/types/DrawingArea.tsx:896", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 opensankey/client/src/types/DrawingArea.tsx:896"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-38f63837d88dbd51", "name": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/components/configmenus/SankeyMenuConfigurationLinksData.tsx:320", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/components/configmenus/SankeyMenuConfigurationLinksData.tsx:320"}, "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-601ba325bd1e9df1", "name": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/components/configmenus/SankeyMenuConfigurationLayout.tsx:930", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/components/configmenus/SankeyMenuConfigurationLayout.tsx:930"}, "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-d85576184c8cad2e", "name": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/components/topmenus/MenuTop.tsx:107", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/components/topmenus/MenuTop.tsx:107"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-13ce45e24de76cf8", "name": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/components/dialogs/PersistenceProcessDialog.tsx:849", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/components/dialogs/PersistenceProcessDialog.tsx:849"}, "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-84cfb43db4fe97b0", "name": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/components/welcome/ModalWelcome.tsx:229", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/components/welcome/ModalWelcome.tsx:229"}, "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-078c8dd62a0421d4", "name": "TODO/FIXME marker in shipping code \u2014 opensankey/client/src/Persistence/Legacy.tsx:813", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 opensankey/client/src/Persistence/Legacy.tsx:813"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-60877df5935cd129", "name": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/Persistence/Legacy.tsx:673", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/Persistence/Legacy.tsx:673"}, "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-2798ca08bb9f7cb6", "name": "TODO/FIXME marker in shipping code \u2014 opensankey/client/src/Persistence/SankeyPersistence.tsx:1377", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 opensankey/client/src/Persistence/SankeyPersistence.tsx:1377"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-081216b47415fa34", "name": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/Persistence/SankeyPersistence.tsx:166", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/Persistence/SankeyPersistence.tsx:166"}, "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-b2f82a6f94f7b689", "name": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/Persistence/UniversalJSONCompression.tsx:82", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/Persistence/UniversalJSONCompression.tsx:82"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7a6bb85f38d12973", "name": "TODO/FIXME marker in shipping code \u2014 opensankey/client/src/Elements/Node.tsx:770", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 opensankey/client/src/Elements/Node.tsx:770"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8299f20d651ff4d1", "name": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/Elements/Node.tsx:788", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/Elements/Node.tsx:788"}, "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-0b5d30599a071a4b", "name": "TODO/FIXME marker in shipping code \u2014 opensankey/client/src/Elements/Element.tsx:269", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 opensankey/client/src/Elements/Element.tsx:269"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e50f77fc592294e0", "name": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/Elements/TooltipsConfig.tsx:377", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/Elements/TooltipsConfig.tsx:377"}, "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-7d7fb21835ff72e1", "name": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/Elements/NodeDimension.tsx:892", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/Elements/NodeDimension.tsx:892"}, "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-861f84e1b385311a", "name": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/Elements/NodeTagsManager.tsx:106", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/Elements/NodeTagsManager.tsx:106"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2e4f7d5cc658763a", "name": "TODO/FIXME marker in shipping code \u2014 opensankey/client/src/Algorithms/NodePositioning.tsx:532", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 opensankey/client/src/Algorithms/NodePositioning.tsx:532"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7dce842e5cc54232", "name": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/Algorithms/NodePositioning.tsx:110", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/Algorithms/NodePositioning.tsx:110"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b87dc3add3b7bd09", "name": "Docker base image is tag-pinned but not digest-pinned: ubuntu:jammy", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: ubuntu:jammy"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e2f1cddf8cbe14d3", "name": "Dockerfile pipes a remote installer into a shell", "shortDescription": {"text": "Dockerfile pipes a remote installer into a shell"}, "fullDescription": {"text": "Executing downloaded code during image build gives the remote endpoint build-time code execution. Prefer pinned packages or verify downloaded installers by checksum/signature."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9ff60c0c30ea872c", "name": "Insecure pattern 'subprocess_shell_true' in scripts/gitlab_stale_branches.py:18", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in scripts/gitlab_stale_branches.py:18"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8da4ee3e2f9efdd4", "name": "Insecure pattern 'subprocess_shell_true' in scripts/git_branch_cleaner.py:19", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in scripts/git_branch_cleaner.py:19"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6f175d2293fc42b4", "name": "Insecure pattern 'subprocess_shell_true' in scripts/git_branch_selector.py:18", "shortDescription": {"text": "Insecure pattern 'subprocess_shell_true' in scripts/git_branch_selector.py:18"}, "fullDescription": {"text": "Found a known-risky pattern (subprocess_shell_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-aec202da8b4111b8", "name": "Insecure pattern 'debug_true' in opensankey/app.py:29", "shortDescription": {"text": "Insecure pattern 'debug_true' in opensankey/app.py:29"}, "fullDescription": {"text": "Found a known-risky pattern (debug_true). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-09232db710dc8be7", "name": "Insecure pattern 'domparser_html_parse' in opensankey/client/src/Persistence/SankeyPersistence.tsx:447", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in opensankey/client/src/Persistence/SankeyPersistence.tsx:447"}, "fullDescription": {"text": "Found a known-risky pattern (domparser_html_parse). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0119a7f3bc01e691", "name": "Insecure pattern 'direct_innerhtml_assignment' in opensankey/client/src/Elements/Legend.tsx:313", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in opensankey/client/src/Elements/Legend.tsx:313"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c6e7c136bcdbf82d", "name": "Insecure pattern 'direct_innerhtml_assignment' in opensankey/client/src/Elements/TooltipsCSS.tsx:43", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in opensankey/client/src/Elements/TooltipsCSS.tsx:43"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1495d02a3073b6af", "name": "package.json defines install-time lifecycle scripts", "shortDescription": {"text": "package.json defines install-time lifecycle scripts"}, "fullDescription": {"text": "preinstall/install/postinstall/prepare scripts execute during dependency installation. Review them carefully for network calls, obfuscation, shell execution, or credential access."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e9d6b2f6c0f6bace", "name": "package.json defines install-time lifecycle scripts", "shortDescription": {"text": "package.json defines install-time lifecycle scripts"}, "fullDescription": {"text": "preinstall/install/postinstall/prepare scripts execute during dependency installation. Review them carefully for network calls, obfuscation, shell execution, or credential access."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-82c4c9766e53647b", "name": "Very large file: opensankey/client/src/types/MenuConfig.tsx (1535 lines)", "shortDescription": {"text": "Very large file: opensankey/client/src/types/MenuConfig.tsx (1535 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-9d160b0eecf83e0d", "name": "Very large file: opensankey/client/src/types/ApplicationData.tsx (1924 lines)", "shortDescription": {"text": "Very large file: opensankey/client/src/types/ApplicationData.tsx (1924 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-5705078ab08f0e6e", "name": "Very large file: opensankey/client/src/types/DrawingArea.tsx (3386 lines)", "shortDescription": {"text": "Very large file: opensankey/client/src/types/DrawingArea.tsx (3386 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-b45547dad89d6318", "name": "Very large file: opensankey/client/src/components/configmenus/MenuCommon.tsx (1769 lines)", "shortDescription": {"text": "Very large file: opensankey/client/src/components/configmenus/MenuCommon.tsx (1769 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-fb04258640db6e66", "name": "Very large file: opensankey/client/src/components/configmenus/MenuElementsAppearance.tsx (3498 lines)", "shortDescription": {"text": "Very large file: opensankey/client/src/components/configmenus/MenuElementsAppearance.tsx (3498 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-a3d3bc88aa61f3c3", "name": "Very large file: opensankey/client/src/components/topmenus/MenuTop.tsx (1478 lines)", "shortDescription": {"text": "Very large file: opensankey/client/src/components/topmenus/MenuTop.tsx (1478 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-c7ac864b9fda9964", "name": "Very large file: opensankey/client/src/components/dialogs/PersistenceProcessDialog.tsx (1580 lines)", "shortDescription": {"text": "Very large file: opensankey/client/src/components/dialogs/PersistenceProcessDialog.tsx (1580 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-a075d19210e4d96b", "name": "Very large file: opensankey/client/src/components/dialogs/PersistenceProcessDialogConfigs.tsx (2289 lines)", "shortDescription": {"text": "Very large file: opensankey/client/src/components/dialogs/PersistenceProcessDialogConfigs.tsx (2289 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-ea37dec048bd8a01", "name": "Very large file: opensankey/client/src/Persistence/Legacy.tsx (2795 lines)", "shortDescription": {"text": "Very large file: opensankey/client/src/Persistence/Legacy.tsx (2795 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-41c87751b327ec6a", "name": "Very large file: opensankey/client/src/Persistence/SankeyPersistence.tsx (2447 lines)", "shortDescription": {"text": "Very large file: opensankey/client/src/Persistence/SankeyPersistence.tsx (2447 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-39632a565f2bbf6b", "name": "Very large file: opensankey/client/src/Elements/Node.tsx (2257 lines)", "shortDescription": {"text": "Very large file: opensankey/client/src/Elements/Node.tsx (2257 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-49a401e7070dfc75", "name": "Very large file: opensankey/client/src/Elements/Element.tsx (1359 lines)", "shortDescription": {"text": "Very large file: opensankey/client/src/Elements/Element.tsx (1359 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-8a8397ebab2f7bb5", "name": "Very large file: opensankey/client/src/Elements/Link.tsx (2422 lines)", "shortDescription": {"text": "Very large file: opensankey/client/src/Elements/Link.tsx (2422 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-aa7bb343c8e62436", "name": "Very large file: opensankey/client/src/Elements/ElementsAttributesConfig.tsx (3366 lines)", "shortDescription": {"text": "Very large file: opensankey/client/src/Elements/ElementsAttributesConfig.tsx (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-18845c4cbacfc6ed", "name": "Very large file: opensankey/client/src/Elements/DrawLabel.tsx (2820 lines)", "shortDescription": {"text": "Very large file: opensankey/client/src/Elements/DrawLabel.tsx (2820 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-12f1004a15f36cb2", "name": "Very large file: opensankey/client/src/css/Theme.tsx (3274 lines)", "shortDescription": {"text": "Very large file: opensankey/client/src/css/Theme.tsx (3274 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-3339e73bf128abbb", "name": "Very large file: opensankey/client/src/css/IconLibrairie.tsx (1870 lines)", "shortDescription": {"text": "Very large file: opensankey/client/src/css/IconLibrairie.tsx (1870 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-27bd1cfdb0bfc4b4", "name": "Very large file: opensankey/client/src/traductions/traduction_nodes.tsx (1230 lines)", "shortDescription": {"text": "Very large file: opensankey/client/src/traductions/traduction_nodes.tsx (1230 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-53022c773e57c76b", "name": "Very large file: opensankey/client/src/traductions/traduction_app_elements.tsx (2747 lines)", "shortDescription": {"text": "Very large file: opensankey/client/src/traductions/traduction_app_elements.tsx (2747 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-bfea326867117f20", "name": "Very large file: opensankey/client/src/Algorithms/NodePositioning.tsx (3565 lines)", "shortDescription": {"text": "Very large file: opensankey/client/src/Algorithms/NodePositioning.tsx (3565 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-94a9d5c89070a870", "name": "Very large file: opensankey/server/views.py (1486 lines)", "shortDescription": {"text": "Very large file: opensankey/server/views.py (1486 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": "2 test file(s) for 144 source file(s) (ratio 0.01). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-09bad5ab1f174fc5", "name": "34 TODO/FIXME markers", "shortDescription": {"text": "34 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-5faac4c02a5dc920", "name": "Node manifest has dependencies but no lockfile: examples/1.0.7/viewer/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: examples/1.0.7/viewer/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-89b76f3cce8c89ed", "name": "Node manifest has dependencies but no lockfile: examples/1.0.7/editor/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: examples/1.0.7/editor/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-10c92c811ae38eda", "name": "Node manifest has dependencies but no lockfile: examples/1.1.4/viewer/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: examples/1.1.4/viewer/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b7c6806d25142236", "name": "Node manifest has dependencies but no lockfile: examples/1.1.4/editor/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: examples/1.1.4/editor/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-22c02832fa2bf749", "name": "Node manifest has dependencies but no lockfile: examples/current/viewer/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: examples/current/viewer/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8ed693ed5a161841", "name": "Node manifest has dependencies but no lockfile: examples/current/editor/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: examples/current/editor/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a28955ae125e2203", "name": "Node manifest has dependencies but no lockfile: opensankey/client/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: opensankey/client/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 288 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 28 placeholder/mock markers across 11 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-16f5bf06af4c054e", "name": "Commented-code block (6 lines) in examples/1.1.4/viewer/scripts/dedupe-deps.cjs:1", "shortDescription": {"text": "Commented-code block (6 lines) in examples/1.1.4/viewer/scripts/dedupe-deps.cjs: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-2fb91ea1f9a9fae2", "name": "Commented-code block (6 lines) in examples/current/viewer/scripts/dedupe-deps.cjs:1", "shortDescription": {"text": "Commented-code block (6 lines) in examples/current/viewer/scripts/dedupe-deps.cjs: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-12fbbb9c0faf8af7", "name": "Legacy-named symbol `errorOnDeprecated` in opensankey/client/jest.config.ts:51", "shortDescription": {"text": "Legacy-named symbol `errorOnDeprecated` in opensankey/client/jest.config.ts:51"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e04904e769423026", "name": "Commented-code block (5 lines) in opensankey/client/jest.config.ts:151", "shortDescription": {"text": "Commented-code block (5 lines) in opensankey/client/jest.config.ts:151"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-96a4cfb84d2b5e28", "name": "Commented-code block (6 lines) in opensankey/client/src/Modules.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/Modules.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-68ad1b8b1e06ca38", "name": "`fetch()` without try/.catch or AbortSignal \u2014 opensankey/client/src/registerServiceWorker.js:86", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 opensankey/client/src/registerServiceWorker.js:86"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5b54ec6768420967", "name": "Commented-code block (6 lines) in opensankey/client/src/index.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/index.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-60ddaa0acadf2b24", "name": "Commented-code block (6 lines) in opensankey/client/src/DefaultApp.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/DefaultApp.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-689d4bb2fec869b7", "name": "Commented-code block (6 lines) in opensankey/client/src/ViewApp.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/ViewApp.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-245a9f332a1fc9b3", "name": "Commented-code block (6 lines) in opensankey/client/src/App.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/App.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3189d43ca5c952ca", "name": "Commented-code block (6 lines) in opensankey/client/src/types/MenuConfig.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/types/MenuConfig.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8c937b573ccc3cd8", "name": "Commented-code block (7 lines) in opensankey/client/src/types/PublishOptions.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in opensankey/client/src/types/PublishOptions.tsx: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-2c5f23751fb60861", "name": "Legacy-named symbol `tagg_to_copy` in opensankey/client/src/types/TagGroup.tsx:78", "shortDescription": {"text": "Legacy-named symbol `tagg_to_copy` in opensankey/client/src/types/TagGroup.tsx:78"}, "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-5d4bc5a1146a558c", "name": "Commented-code block (7 lines) in opensankey/client/src/types/TagGroup.tsx:94", "shortDescription": {"text": "Commented-code block (7 lines) in opensankey/client/src/types/TagGroup.tsx:94"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8c42f2187708bbc8", "name": "Commented-code block (6 lines) in opensankey/client/src/types/ApplicationData.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/types/ApplicationData.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-00f5154b1a011e9b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 opensankey/client/src/types/ApplicationData.tsx:882", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 opensankey/client/src/types/ApplicationData.tsx:882"}, "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-3347d81bacf167f7", "name": "Legacy-named symbol `tag_to_copy` in opensankey/client/src/types/Tag.tsx:128", "shortDescription": {"text": "Legacy-named symbol `tag_to_copy` in opensankey/client/src/types/Tag.tsx:128"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2529151d2e383bf5", "name": "Commented-code block (6 lines) in opensankey/client/src/types/Tag.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/types/Tag.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cdd2fc33f5fb2853", "name": "Commented-code block (6 lines) in opensankey/client/src/types/ApplicationHistory.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/types/ApplicationHistory.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-75dfb358edee0926", "name": "Commented-code block (6 lines) in opensankey/client/src/types/Utils.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/types/Utils.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6f32852699f528d8", "name": "Legacy-named symbol `sankey_to_copy` in opensankey/client/src/types/Sankey.tsx:235", "shortDescription": {"text": "Legacy-named symbol `sankey_to_copy` in opensankey/client/src/types/Sankey.tsx:235"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f2ca086d6a78b139", "name": "Commented-code block (6 lines) in opensankey/client/src/types/Sankey.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/types/Sankey.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ce8a8cae9fbffc61", "name": "Legacy-named symbol `drawing_area_to_copy` in opensankey/client/src/types/DrawingArea.tsx:402", "shortDescription": {"text": "Legacy-named symbol `drawing_area_to_copy` in opensankey/client/src/types/DrawingArea.tsx:402"}, "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-f93e1c9d57fffe19", "name": "Commented-code block (6 lines) in opensankey/client/src/types/DrawingArea.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/types/DrawingArea.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-084c20ef700d7da3", "name": "Commented-code block (6 lines) in opensankey/client/src/components/SankeyMenuTypes.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/SankeyMenuTypes.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-10a95484aa4e9295", "name": "Commented-code block (6 lines) in opensankey/client/src/components/configmenus/MenuCommon.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/configmenus/MenuCommon.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a249168e230e8401", "name": "Commented-code block (6 lines) in opensankey/client/src/components/configmenus/SankeyMenuConfigurationLinksData.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/configmenus/SankeyMenuConfigurationLinksData.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-014c7b0e581377e2", "name": "Commented-code block (6 lines) in opensankey/client/src/components/configmenus/SankeyMenuConfigurationLayout.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/configmenus/SankeyMenuConfigurationLayout.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ef0e657d58e4087c", "name": "Commented-code block (5 lines) in opensankey/client/src/components/configmenus/MenuElementsSelection.tsx:885", "shortDescription": {"text": "Commented-code block (5 lines) in opensankey/client/src/components/configmenus/MenuElementsSelection.tsx:885"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-70d9899de93a5a4a", "name": "Commented-code block (7 lines) in opensankey/client/src/components/configmenus/MenuElementsAppearance.tsx:1482", "shortDescription": {"text": "Commented-code block (7 lines) in opensankey/client/src/components/configmenus/MenuElementsAppearance.tsx:1482"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f158ca803322f103", "name": "Commented-code block (11 lines) in opensankey/client/src/components/spreadsheet/MainZoneTabs.tsx:1", "shortDescription": {"text": "Commented-code block (11 lines) in opensankey/client/src/components/spreadsheet/MainZoneTabs.tsx: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-3dd78a3fd8f83bff", "name": "Commented-code block (10 lines) in opensankey/client/src/components/spreadsheet/univer-modules.d.ts:1", "shortDescription": {"text": "Commented-code block (10 lines) in opensankey/client/src/components/spreadsheet/univer-modules.d.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8ceb5119470c89a1", "name": "Commented-code block (8 lines) in opensankey/client/src/components/spreadsheet/UniverHierarchyOps.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in opensankey/client/src/components/spreadsheet/UniverHierarchyOps.tsx: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-903b8d6a8c6a2a33", "name": "Commented-code block (6 lines) in opensankey/client/src/components/spreadsheet/UniverSpreadSheet.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/spreadsheet/UniverSpreadSheet.tsx: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-1764226b0ba9a14e", "name": "Commented-code block (5 lines) in opensankey/client/src/components/spreadsheet/DocPanel.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in opensankey/client/src/components/spreadsheet/DocPanel.tsx: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-29871b85e555dac1", "name": "Commented-code block (10 lines) in opensankey/client/src/components/spreadsheet/UniverSankeyData.tsx:1", "shortDescription": {"text": "Commented-code block (10 lines) in opensankey/client/src/components/spreadsheet/UniverSankeyData.tsx: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-33672607ac94c4ba", "name": "Commented-code block (11 lines) in opensankey/client/src/components/spreadsheet/AddConstraintModal.tsx:1", "shortDescription": {"text": "Commented-code block (11 lines) in opensankey/client/src/components/spreadsheet/AddConstraintModal.tsx: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-6310d07128c43b81", "name": "Commented-code block (7 lines) in opensankey/client/src/components/spreadsheet/UniverSankeyBridge.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in opensankey/client/src/components/spreadsheet/UniverSankeyBridge.tsx: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-1c612d69629bda1a", "name": "Commented-code block (6 lines) in opensankey/client/src/components/spreadsheet/SpreadSheet.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/spreadsheet/SpreadSheet.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a66bcc085e32e1d3", "name": "Commented-code block (6 lines) in opensankey/client/src/components/topmenus/SankeyExports.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/topmenus/SankeyExports.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0249b273cefbb4f2", "name": "Commented-code block (6 lines) in opensankey/client/src/components/topmenus/SankeyTemplates.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/topmenus/SankeyTemplates.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-91cfd8d76cbb4ad7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 opensankey/client/src/components/topmenus/SankeyTemplates.tsx:108", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 opensankey/client/src/components/topmenus/SankeyTemplates.tsx:108"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c00b3373fb6aa0f6", "name": "Commented-code block (7 lines) in opensankey/client/src/components/topmenus/Toolbar.tsx:446", "shortDescription": {"text": "Commented-code block (7 lines) in opensankey/client/src/components/topmenus/Toolbar.tsx:446"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ff54b6aa060a7461", "name": "Commented-code block (6 lines) in opensankey/client/src/components/topmenus/MenuTop.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/topmenus/MenuTop.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1f4ce29be52bbdbe", "name": "Commented-code block (6 lines) in opensankey/client/src/components/topmenus/SankeyMenus.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/topmenus/SankeyMenus.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3b93d133ea650682", "name": "Commented-code block (6 lines) in opensankey/client/src/components/dialogs/NodeActions.tsx:184", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/dialogs/NodeActions.tsx:184"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ed6dd4a4ac6ecce4", "name": "Commented-code block (6 lines) in opensankey/client/src/components/dialogs/SankeyMenuContext.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/dialogs/SankeyMenuContext.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f795bf13979a22a3", "name": "Commented-code block (6 lines) in opensankey/client/src/components/dialogs/SankeyStyle.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/dialogs/SankeyStyle.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-762bafd4d46feef3", "name": "Commented-code block (6 lines) in opensankey/client/src/components/dialogs/ContextLinkConfig.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/dialogs/ContextLinkConfig.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-57470b3d4946d4e3", "name": "Commented-code block (6 lines) in opensankey/client/src/components/dialogs/PersistenceProcessDialog.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/dialogs/PersistenceProcessDialog.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6ed56daf2e257623", "name": "`fetch()` without try/.catch or AbortSignal \u2014 opensankey/client/src/components/dialogs/PersistenceProcessDialog.tsx:561", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 opensankey/client/src/components/dialogs/PersistenceProcessDialog.tsx:561"}, "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-2da01cae000149cb", "name": "Commented-code block (6 lines) in opensankey/client/src/components/dialogs/MenuContextWidgetFactory.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/dialogs/MenuContextWidgetFactory.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3939f7bbf44b4d0d", "name": "Commented-code block (5 lines) in opensankey/client/src/components/dialogs/PersistenceProcessDialogTerminal.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in opensankey/client/src/components/dialogs/PersistenceProcessDialogTerminal.tsx: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-7a8c0095150f10a1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 opensankey/client/src/components/dialogs/PersistenceProcessDialogTerminal.", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 opensankey/client/src/components/dialogs/PersistenceProcessDialogTerminal.tsx:328"}, "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-7eb3df1fe7f25856", "name": "Commented-code block (6 lines) in opensankey/client/src/components/dialogs/SankeyMenuDialogs.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/dialogs/SankeyMenuDialogs.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3d34ee4554e6f37e", "name": "Commented-code block (5 lines) in opensankey/client/src/components/dialogs/ContextZDDConfig.tsx:25", "shortDescription": {"text": "Commented-code block (5 lines) in opensankey/client/src/components/dialogs/ContextZDDConfig.tsx:25"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b509c4ed8de24df8", "name": "Commented-code block (5 lines) in opensankey/client/src/components/dialogs/PersistenceProcessDialogConfigs.tsx:754", "shortDescription": {"text": "Commented-code block (5 lines) in opensankey/client/src/components/dialogs/PersistenceProcessDialogConfigs.tsx:754"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2c2472a6806baf22", "name": "Commented-code block (6 lines) in opensankey/client/src/components/dialogs/NodeIOReorganizer.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/dialogs/NodeIOReorganizer.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bcf44a500ed8f8ef", "name": "Commented-code block (6 lines) in opensankey/client/src/components/welcome/ModalWelcome.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/welcome/ModalWelcome.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6d5e2aa333032ec5", "name": "Commented-code block (6 lines) in opensankey/client/src/components/welcome/MenuExamples.tsx:7", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/welcome/MenuExamples.tsx: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-46f19c7990b2d041", "name": "Commented-code block (6 lines) in opensankey/client/src/components/welcome/SplashScreen.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/welcome/SplashScreen.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-00652c1a8a542eb9", "name": "Legacy-named symbol `convert_data_legacy` in opensankey/client/src/Persistence/Legacy.tsx:342", "shortDescription": {"text": "Legacy-named symbol `convert_data_legacy` in opensankey/client/src/Persistence/Legacy.tsx:342"}, "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-1192e18d9adc5a8c", "name": "Commented-code block (6 lines) in opensankey/client/src/Persistence/Legacy.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/Persistence/Legacy.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d72fb4a1aa2904e0", "name": "Legacy-named symbol `convert_data_legacy` in opensankey/client/src/Persistence/SankeyPersistence.tsx:50", "shortDescription": {"text": "Legacy-named symbol `convert_data_legacy` in opensankey/client/src/Persistence/SankeyPersistence.tsx:50"}, "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-8444fde1971365de", "name": "Commented-code block (6 lines) in opensankey/client/src/Persistence/SankeyPersistence.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/Persistence/SankeyPersistence.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-63b874e3ca728ff4", "name": "Commented-code block (6 lines) in opensankey/client/src/Persistence/LegacyType.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/Persistence/LegacyType.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-47526342413723d2", "name": "Legacy-named symbol `node_to_copy` in opensankey/client/src/Elements/Node.tsx:169", "shortDescription": {"text": "Legacy-named symbol `node_to_copy` in opensankey/client/src/Elements/Node.tsx:169"}, "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-58a079de536f940d", "name": "Commented-code block (6 lines) in opensankey/client/src/Elements/Node.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/Elements/Node.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3879db830ce5ee92", "name": "Legacy-named symbol `element_to_copy` in opensankey/client/src/Elements/Element.tsx:182", "shortDescription": {"text": "Legacy-named symbol `element_to_copy` in opensankey/client/src/Elements/Element.tsx:182"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8f8704b490c897b3", "name": "Commented-code block (6 lines) in opensankey/client/src/Elements/Element.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/Elements/Element.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a6c8cbeab115514b", "name": "Commented-code block (6 lines) in opensankey/client/src/Elements/Link.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/Elements/Link.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3092c1c86efe5244", "name": "Commented-code block (6 lines) in opensankey/client/src/Elements/SelectionZone.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/Elements/SelectionZone.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c54a4b0450ea7711", "name": "Commented-code block (6 lines) in opensankey/client/src/Elements/Handler.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/Elements/Handler.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c5a73b4337ab7dba", "name": "Legacy-named symbol `node_to_copy` in opensankey/client/src/Elements/NodeDimension.tsx:606", "shortDescription": {"text": "Legacy-named symbol `node_to_copy` in opensankey/client/src/Elements/NodeDimension.tsx:606"}, "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-cca3cbd22a4273f8", "name": "Commented-code block (6 lines) in opensankey/client/src/Elements/NodeDimension.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/Elements/NodeDimension.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e4b3b46bf3c468e6", "name": "Commented-code block (6 lines) in opensankey/client/src/Elements/ElementsAttributesConfig.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/Elements/ElementsAttributesConfig.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-53efba294a4e30bb", "name": "Commented-code block (6 lines) in opensankey/client/src/Elements/LinkDrawShape.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/Elements/LinkDrawShape.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b6e1e053049991c0", "name": "Commented-code block (6 lines) in opensankey/client/src/Elements/NodeDrawShape.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/Elements/NodeDrawShape.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f67703d75e304b71", "name": "Legacy-named symbol `node_to_copy` in opensankey/client/src/Elements/NodeTagsManager.tsx:58", "shortDescription": {"text": "Legacy-named symbol `node_to_copy` in opensankey/client/src/Elements/NodeTagsManager.tsx:58"}, "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-0f9e0c6a24777e49", "name": "Commented-code block (6 lines) in opensankey/client/src/Elements/NodeTagsManager.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/Elements/NodeTagsManager.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-539adfbb7402fd0b", "name": "Legacy-named symbol `child_to_copy` in opensankey/client/src/Elements/LinkValues.tsx:103", "shortDescription": {"text": "Legacy-named symbol `child_to_copy` in opensankey/client/src/Elements/LinkValues.tsx:103"}, "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-f79e9d91fc9e4cb9", "name": "Commented-code block (7 lines) in opensankey/client/src/Elements/DrawLabel.tsx:37", "shortDescription": {"text": "Commented-code block (7 lines) in opensankey/client/src/Elements/DrawLabel.tsx:37"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1a3f91a8b8ed1963", "name": "Commented-code block (6 lines) in opensankey/client/src/Elements/NodeBase.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/Elements/NodeBase.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6126429c4ab543cb", "name": "Commented-code block (6 lines) in opensankey/client/src/Elements/LinkControlPoints.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/Elements/LinkControlPoints.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4042a137d49b3fd5", "name": "Legacy-named symbol `cast_copy` in opensankey/client/src/Elements/Legend.tsx:74", "shortDescription": {"text": "Legacy-named symbol `cast_copy` in opensankey/client/src/Elements/Legend.tsx:74"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cc542cf876175bfd", "name": "Commented-code block (6 lines) in opensankey/client/src/Elements/Legend.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/Elements/Legend.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-18b8b27dc8425053", "name": "Commented-code block (6 lines) in opensankey/client/src/Elements/NodeEventsHandler.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/Elements/NodeEventsHandler.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f608dd3f3d3d8e45", "name": "Legacy-named symbol `container_to_copy` in opensankey/client/src/Elements/TextZone.tsx:26", "shortDescription": {"text": "Legacy-named symbol `container_to_copy` in opensankey/client/src/Elements/TextZone.tsx:26"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-696367f9b4d95119", "name": "Commented-code block (6 lines) in opensankey/client/src/Elements/StockShape.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/Elements/StockShape.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a12a826291414914", "name": "Commented-code block (5 lines) in opensankey/client/src/css/Theme.tsx:1228", "shortDescription": {"text": "Commented-code block (5 lines) in opensankey/client/src/css/Theme.tsx:1228"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-61219ef284f9ef64", "name": "Legacy-named symbol `_icon_copy` in opensankey/client/src/css/IconLibrairie.tsx:1651", "shortDescription": {"text": "Legacy-named symbol `_icon_copy` in opensankey/client/src/css/IconLibrairie.tsx:1651"}, "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-21586bd9f8fb34e0", "name": "Commented-code block (6 lines) in opensankey/client/src/css/IconLibrairie.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/css/IconLibrairie.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ba8d04b628b89e41", "name": "Commented-code block (6 lines) in opensankey/client/src/Algorithms/NodePositioning.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/Algorithms/NodePositioning.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f6c8f1878f911023", "name": "Commented-code block (6 lines) in opensankey/client/src/Algorithms/SankeyAnimation.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/Algorithms/SankeyAnimation.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9fe1270fe92d7ef8", "name": "Commented-code block (5 lines) in opensankey/client/src/Algorithms/UnitaryBoard.tsx:102", "shortDescription": {"text": "Commented-code block (5 lines) in opensankey/client/src/Algorithms/UnitaryBoard.tsx:102"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3d36079125179975", "name": "Commented-code block (13 lines) in opensankey/client/src/Algorithms/UpdateFrom.tsx:264", "shortDescription": {"text": "Commented-code block (13 lines) in opensankey/client/src/Algorithms/UpdateFrom.tsx:264"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dbabd6eb52cd51f0", "name": "Commented-code block (6 lines) in opensankey/client/src/Algorithms/Hierarchies.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in opensankey/client/src/Algorithms/Hierarchies.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-832b35fc908bf1b0", "name": "Commented-code block (9 lines) in opensankey/tests/test_dict_results.py:242", "shortDescription": {"text": "Commented-code block (9 lines) in opensankey/tests/test_dict_results.py:242"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-efd61e5d32b28d94", "name": "Network/subprocess call without timeout or try/except \u2014 opensankey/server/views_export.py:148", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 opensankey/server/views_export.py:148"}, "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-a93d9b5423a27d8b", "name": "Commented-code block (5 lines) in opensankey/server/views.py:222", "shortDescription": {"text": "Commented-code block (5 lines) in opensankey/server/views.py:222"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7a91adfc7e02b743", "name": "Commented-code block (7 lines) in opensankey/server/views_utils.py:172", "shortDescription": {"text": "Commented-code block (7 lines) in opensankey/server/views_utils.py:172"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-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:\nsetup.py:run, setup.py:run, setup.py:run, setup.py:run\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nscripts/gitlab_stale_branches.py:run_command, scripts/git_branch_cleaner.py:run_command, scripts/git_branch_selector.py:run_command\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nscripts/gitlab_stale_branches.py:delete_branches_interactive, scripts/gitlab_stale_branches.py:delete_branch\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-41a93d933e97ebe9", "name": "Dangling fetch: POST /opensankey/menus/excel_template (opensankey/client/src/components/topmenus/ExcelTemplateModal.tsx:", "shortDescription": {"text": "Dangling fetch: POST /opensankey/menus/excel_template (opensankey/client/src/components/topmenus/ExcelTemplateModal.tsx:146)"}, "fullDescription": {"text": "`opensankey/client/src/components/topmenus/ExcelTemplateModal.tsx:146` calls `POST /opensankey/menus/excel_template` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/opensankey/menus/excel_template`\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-7581ee4b1032e13e", "name": "Dangling fetch: POST /example/upload (opensankey/client/src/Persistence/UniversalJSONCompression.tsx:217)", "shortDescription": {"text": "Dangling fetch: POST /example/upload (opensankey/client/src/Persistence/UniversalJSONCompression.tsx:217)"}, "fullDescription": {"text": "`opensankey/client/src/Persistence/UniversalJSONCompression.tsx:217` calls `POST /example/upload` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/example/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-1a6d91f2236825bf", "name": "Unused endpoint: ANY /", "shortDescription": {"text": "Unused endpoint: ANY /"}, "fullDescription": {"text": "`opensankey/doc/views.py` declares `ANY /` 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-d0d3fd09e4699ad4", "name": "Unused endpoint: ANY /<adress>", "shortDescription": {"text": "Unused endpoint: ANY /<adress>"}, "fullDescription": {"text": "`opensankey/doc/views.py` declares `ANY /<adress>` 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-ecd7d8e9c3fdb132", "name": "Unused endpoint: ANY /_images/<path>", "shortDescription": {"text": "Unused endpoint: ANY /_images/<path>"}, "fullDescription": {"text": "`opensankey/doc/views.py` declares `ANY /_images/<path>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9e1a6b03743b2124", "name": "Unused endpoint: ANY /save/svg", "shortDescription": {"text": "Unused endpoint: ANY /save/svg"}, "fullDescription": {"text": "`opensankey/server/views_export.py` declares `ANY /save/svg` 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-e3fb16d4c26e4158", "name": "Unused endpoint: ANY /save/png", "shortDescription": {"text": "Unused endpoint: ANY /save/png"}, "fullDescription": {"text": "`opensankey/server/views_export.py` declares `ANY /save/png` 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-e88831fba491db32", "name": "Unused endpoint: ANY /save/pdf", "shortDescription": {"text": "Unused endpoint: ANY /save/pdf"}, "fullDescription": {"text": "`opensankey/server/views_export.py` declares `ANY /save/pdf` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e340137c1092d0bd", "name": "Unused endpoint: ANY /save/svg/post_clean", "shortDescription": {"text": "Unused endpoint: ANY /save/svg/post_clean"}, "fullDescription": {"text": "`opensankey/server/views_export.py` declares `ANY /save/svg/post_clean` 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-622a1a83aae43e4a", "name": "Unused endpoint: ANY /save/png/post_clean", "shortDescription": {"text": "Unused endpoint: ANY /save/png/post_clean"}, "fullDescription": {"text": "`opensankey/server/views_export.py` declares `ANY /save/png/post_clean` 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-418f1784214cbd05", "name": "Unused endpoint: ANY /save/pdf/post_clean", "shortDescription": {"text": "Unused endpoint: ANY /save/pdf/post_clean"}, "fullDescription": {"text": "`opensankey/server/views_export.py` declares `ANY /save/pdf/post_clean` 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-2b1a58177985db4d", "name": "Unused endpoint: ANY /upload/check_process", "shortDescription": {"text": "Unused endpoint: ANY /upload/check_process"}, "fullDescription": {"text": "`opensankey/server/views.py` declares `ANY /upload/check_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-a277cbbe57b0b901", "name": "Unused endpoint: ANY /upload/retrieve_result", "shortDescription": {"text": "Unused endpoint: ANY /upload/retrieve_result"}, "fullDescription": {"text": "`opensankey/server/views.py` declares `ANY /upload/retrieve_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-4c0a5b69c8f79ad2", "name": "Unused endpoint: ANY /upload/retrieve_json", "shortDescription": {"text": "Unused endpoint: ANY /upload/retrieve_json"}, "fullDescription": {"text": "`opensankey/server/views.py` declares `ANY /upload/retrieve_json` 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-16dc67e819a08837", "name": "Unused endpoint: ANY /convert/peek_options", "shortDescription": {"text": "Unused endpoint: ANY /convert/peek_options"}, "fullDescription": {"text": "`opensankey/server/views.py` declares `ANY /convert/peek_options` 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-afc6f1be22d0358f", "name": "Unused endpoint: ANY /convert/launch", "shortDescription": {"text": "Unused endpoint: ANY /convert/launch"}, "fullDescription": {"text": "`opensankey/server/views.py` declares `ANY /convert/launch` 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-1a8737f8b833b50b", "name": "Unused endpoint: ANY /upload/clean", "shortDescription": {"text": "Unused endpoint: ANY /upload/clean"}, "fullDescription": {"text": "`opensankey/server/views.py` declares `ANY /upload/clean` 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-1760167fbfd2cdd5", "name": "Unused endpoint: ANY /example/download", "shortDescription": {"text": "Unused endpoint: ANY /example/download"}, "fullDescription": {"text": "`opensankey/server/views.py` declares `ANY /example/download` 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-2f6175e310b4829a", "name": "Unused endpoint: ANY /menus/excel_template", "shortDescription": {"text": "Unused endpoint: ANY /menus/excel_template"}, "fullDescription": {"text": "`opensankey/server/views.py` declares `ANY /menus/excel_template` 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-f2d6be250342fde8", "name": "Unused endpoint: ANY /menus/templates", "shortDescription": {"text": "Unused endpoint: ANY /menus/templates"}, "fullDescription": {"text": "`opensankey/server/views.py` declares `ANY /menus/templates` 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-4e43104557c93917", "name": "Unused endpoint: ANY /menus/examples", "shortDescription": {"text": "Unused endpoint: ANY /menus/examples"}, "fullDescription": {"text": "`opensankey/server/views.py` declares `ANY /menus/examples` 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-9362199740c8df95", "name": "Unused endpoint: ANY /menus/tutorials", "shortDescription": {"text": "Unused endpoint: ANY /menus/tutorials"}, "fullDescription": {"text": "`opensankey/server/views.py` declares `ANY /menus/tutorials` 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-aba2a7414f67d25f", "name": "Unused endpoint: ANY /open_sankeymatic", "shortDescription": {"text": "Unused endpoint: ANY /open_sankeymatic"}, "fullDescription": {"text": "`opensankey/server/views.py` declares `ANY /open_sankeymatic` 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-242a5afabb890fb1", "name": "Unused endpoint: ANY /url/load_json", "shortDescription": {"text": "Unused endpoint: ANY /url/load_json"}, "fullDescription": {"text": "`opensankey/server/views.py` declares `ANY /url/load_json` 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/20986"}, "properties": {"repository": "TerriFlux/opensankey", "repoUrl": "https://github.com/TerriFlux/opensankey", "branch": "main"}, "results": [{"ruleId": "scanner-73b8dc94c4e0d8b6", "level": "note", "message": {"text": "Possibly dead Python function: test_parse_sankeymatic_node_color"}, "properties": {"repobilityId": "12d7bf35b8f1827d", "scanner": "scanner-primary", "fingerprint": "73b8dc94c4e0d8b6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "opensankey/server/sankeymatic.py:576"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d920fe646beb3642", "level": "note", "message": {"text": "Possibly dead Python function: test_parse_sankeymatic_flow"}, "properties": {"repobilityId": "78b75f10d50a88e6", "scanner": "scanner-primary", "fingerprint": "d920fe646beb3642", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "opensankey/server/sankeymatic.py:602"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-beb767be984fe606", "level": "note", "message": {"text": "Possibly dead Python function: test_parse_sankeymatic_flows"}, "properties": {"repobilityId": "ff102a237fda8c4a", "scanner": "scanner-primary", "fingerprint": "beb767be984fe606", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "opensankey/server/sankeymatic.py:610"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ead5375051239d1b", "level": "note", "message": {"text": "Possibly dead Python function: test_parse_sankeymatic_setting"}, "properties": {"repobilityId": "00cd1190fc2c608a", "scanner": "scanner-primary", "fingerprint": "ead5375051239d1b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "opensankey/server/sankeymatic.py:696"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-efa9a418ca916e26", "level": "note", "message": {"text": "Possibly dead Python function: page_not_found"}, "properties": {"repobilityId": "47b7be7c0e550f85", "scanner": "scanner-primary", "fingerprint": "efa9a418ca916e26", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "opensankey/server/__init__.py:18"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-807c4cab1afd4ab5", "level": "note", "message": {"text": "Possibly dead Python function: parse_setting_line_size"}, "properties": {"repobilityId": "d3fa5b96b3f96a51", "scanner": "scanner-primary", "fingerprint": "807c4cab1afd4ab5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "opensankey/server/sankeymatic_utils.py:38"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-95d34bdc3b1fda0f", "level": "note", "message": {"text": "Possibly dead Python function: parse_setting_line_margin"}, "properties": {"repobilityId": "ffbf91996c34cbad", "scanner": "scanner-primary", "fingerprint": "95d34bdc3b1fda0f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "opensankey/server/sankeymatic_utils.py:61"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6054246389c854fd", "level": "note", "message": {"text": "Possibly dead Python function: parse_setting_line_bg"}, "properties": {"repobilityId": "39cf870647829c9f", "scanner": "scanner-primary", "fingerprint": "6054246389c854fd", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "opensankey/server/sankeymatic_utils.py:88"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0c9d6bb7ad0aa852", "level": "note", "message": {"text": "Possibly dead Python function: parse_setting_line_node"}, "properties": {"repobilityId": "ee4b975efb17dd13", "scanner": "scanner-primary", "fingerprint": "0c9d6bb7ad0aa852", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "opensankey/server/sankeymatic_utils.py:111"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c7d28048f1077caa", "level": "note", "message": {"text": "Possibly dead Python function: parse_setting_line_flow"}, "properties": {"repobilityId": "9f73e5d4f06440b8", "scanner": "scanner-primary", "fingerprint": "c7d28048f1077caa", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "opensankey/server/sankeymatic_utils.py:144"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7a6766ca6f1e975a", "level": "note", "message": {"text": "Possibly dead Python function: parse_setting_line_layout"}, "properties": {"repobilityId": "a2bbfca3747e117c", "scanner": "scanner-primary", "fingerprint": "7a6766ca6f1e975a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "opensankey/server/sankeymatic_utils.py:171"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-796adb450802d171", "level": "note", "message": {"text": "Possibly dead Python function: parse_setting_line_labels"}, "properties": {"repobilityId": "e59245ee0a848f7e", "scanner": "scanner-primary", "fingerprint": "796adb450802d171", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "opensankey/server/sankeymatic_utils.py:200"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2686d0f37cec1d0b", "level": "note", "message": {"text": "Possibly dead Python function: parse_setting_line_label_name"}, "properties": {"repobilityId": "3bb1a8d4a01c5855", "scanner": "scanner-primary", "fingerprint": "2686d0f37cec1d0b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "opensankey/server/sankeymatic_utils.py:233"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-110d5c8e7075c67b", "level": "note", "message": {"text": "Possibly dead Python function: parse_setting_line_label_value"}, "properties": {"repobilityId": "9c598140bca4dc68", "scanner": "scanner-primary", "fingerprint": "110d5c8e7075c67b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "opensankey/server/sankeymatic_utils.py:258"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a5ab9db5c4ee7bc5", "level": "note", "message": {"text": "Possibly dead Python function: parse_setting_line_label_position"}, "properties": {"repobilityId": "9e8b4206b9db2200", "scanner": "scanner-primary", "fingerprint": "a5ab9db5c4ee7bc5", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "opensankey/server/sankeymatic_utils.py:285"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5a323e3eab300fb1", "level": "note", "message": {"text": "Possibly dead Python function: parse_setting_line_value"}, "properties": {"repobilityId": "d3591c76a788ffd2", "scanner": "scanner-primary", "fingerprint": "5a323e3eab300fb1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "opensankey/server/sankeymatic_utils.py:312"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a71795c85e9c5029", "level": "note", "message": {"text": "Possibly dead Python function: parse_setting_line_themeoffset"}, "properties": {"repobilityId": "4a8161e78b800b63", "scanner": "scanner-primary", "fingerprint": "a71795c85e9c5029", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "opensankey/server/sankeymatic_utils.py:337"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9965c7763913421b", "level": "note", "message": {"text": "Possibly dead Python function: parse_setting_line_meta"}, "properties": {"repobilityId": "b317a2d8be8cf7a5", "scanner": "scanner-primary", "fingerprint": "9965c7763913421b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "opensankey/server/sankeymatic_utils.py:364"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d3b487fa4b5b48f9", "level": "note", "message": {"text": "Possibly dead Python function: sort_nodeIO"}, "properties": {"repobilityId": "b7fe396e313e95ba", "scanner": "scanner-primary", "fingerprint": "d3b487fa4b5b48f9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "opensankey/server/sankeymatic_utils.py:499"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-58b11430991a1994", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/registerServiceWorker.js:42"}, "properties": {"repobilityId": "0442b01b313c141e", "scanner": "scanner-primary", "fingerprint": "58b11430991a1994", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e911a05a38461a55", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/index.tsx:90"}, "properties": {"repobilityId": "8e2f394bc2ca9321", "scanner": "scanner-primary", "fingerprint": "e911a05a38461a55", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f9490e2378fef18e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/App.tsx:122"}, "properties": {"repobilityId": "08429f382dfee144", "scanner": "scanner-primary", "fingerprint": "f9490e2378fef18e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0fe24b8f577cd78f", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 opensankey/client/src/types/ApplicationData.tsx:1605"}, "properties": {"repobilityId": "4e114c2c555073b3", "scanner": "scanner-primary", "fingerprint": "0fe24b8f577cd78f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-260246052fbc6933", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/types/ApplicationData.tsx:716"}, "properties": {"repobilityId": "d28e7471daa1ed8b", "scanner": "scanner-primary", "fingerprint": "260246052fbc6933", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-510dd732f818d97d", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 opensankey/client/src/types/Tag.tsx:566"}, "properties": {"repobilityId": "2b0a48b82b484af8", "scanner": "scanner-primary", "fingerprint": "510dd732f818d97d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-89525fc9584a2e1a", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 opensankey/client/src/types/Utils.tsx:290"}, "properties": {"repobilityId": "64e967a001d0ba8f", "scanner": "scanner-primary", "fingerprint": "89525fc9584a2e1a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-727f6b10ea6c4b18", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 opensankey/client/src/types/DrawingArea.tsx:896"}, "properties": {"repobilityId": "fcb60f71b81d3fe9", "scanner": "scanner-primary", "fingerprint": "727f6b10ea6c4b18", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-38f63837d88dbd51", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/components/configmenus/SankeyMenuConfigurationLinksData.tsx:320"}, "properties": {"repobilityId": "6e611d4a18e13f32", "scanner": "scanner-primary", "fingerprint": "38f63837d88dbd51", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-601ba325bd1e9df1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/components/configmenus/SankeyMenuConfigurationLayout.tsx:930"}, "properties": {"repobilityId": "bfc178131ef49f0e", "scanner": "scanner-primary", "fingerprint": "601ba325bd1e9df1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d85576184c8cad2e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/components/topmenus/MenuTop.tsx:107"}, "properties": {"repobilityId": "35b892a10fcfe281", "scanner": "scanner-primary", "fingerprint": "d85576184c8cad2e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-13ce45e24de76cf8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/components/dialogs/PersistenceProcessDialog.tsx:849"}, "properties": {"repobilityId": "c77a0f1f5832831e", "scanner": "scanner-primary", "fingerprint": "13ce45e24de76cf8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-84cfb43db4fe97b0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/components/welcome/ModalWelcome.tsx:229"}, "properties": {"repobilityId": "1d8f1f7af315ae7c", "scanner": "scanner-primary", "fingerprint": "84cfb43db4fe97b0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-078c8dd62a0421d4", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 opensankey/client/src/Persistence/Legacy.tsx:813"}, "properties": {"repobilityId": "39cfa98dd9ec82b9", "scanner": "scanner-primary", "fingerprint": "078c8dd62a0421d4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-60877df5935cd129", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/Persistence/Legacy.tsx:673"}, "properties": {"repobilityId": "6922a70ac5d9281d", "scanner": "scanner-primary", "fingerprint": "60877df5935cd129", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2798ca08bb9f7cb6", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 opensankey/client/src/Persistence/SankeyPersistence.tsx:1377"}, "properties": {"repobilityId": "86d14270d6c3c288", "scanner": "scanner-primary", "fingerprint": "2798ca08bb9f7cb6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-081216b47415fa34", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/Persistence/SankeyPersistence.tsx:166"}, "properties": {"repobilityId": "e6074aa5b2925d77", "scanner": "scanner-primary", "fingerprint": "081216b47415fa34", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b2f82a6f94f7b689", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/Persistence/UniversalJSONCompression.tsx:82"}, "properties": {"repobilityId": "51ad2b11e813aa26", "scanner": "scanner-primary", "fingerprint": "b2f82a6f94f7b689", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7a6bb85f38d12973", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 opensankey/client/src/Elements/Node.tsx:770"}, "properties": {"repobilityId": "e8debd8324d90596", "scanner": "scanner-primary", "fingerprint": "7a6bb85f38d12973", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-8299f20d651ff4d1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/Elements/Node.tsx:788"}, "properties": {"repobilityId": "acf8855dcaf2e5bd", "scanner": "scanner-primary", "fingerprint": "8299f20d651ff4d1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0b5d30599a071a4b", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 opensankey/client/src/Elements/Element.tsx:269"}, "properties": {"repobilityId": "03b3521862427820", "scanner": "scanner-primary", "fingerprint": "0b5d30599a071a4b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-e50f77fc592294e0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/Elements/TooltipsConfig.tsx:377"}, "properties": {"repobilityId": "b92680a9c62f1090", "scanner": "scanner-primary", "fingerprint": "e50f77fc592294e0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7d7fb21835ff72e1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/Elements/NodeDimension.tsx:892"}, "properties": {"repobilityId": "020b7cd8d4722147", "scanner": "scanner-primary", "fingerprint": "7d7fb21835ff72e1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-861f84e1b385311a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/Elements/NodeTagsManager.tsx:106"}, "properties": {"repobilityId": "c93bb576d62c79aa", "scanner": "scanner-primary", "fingerprint": "861f84e1b385311a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2e4f7d5cc658763a", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 opensankey/client/src/Algorithms/NodePositioning.tsx:532"}, "properties": {"repobilityId": "a78cc096072a3f3b", "scanner": "scanner-primary", "fingerprint": "2e4f7d5cc658763a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-7dce842e5cc54232", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 opensankey/client/src/Algorithms/NodePositioning.tsx:110"}, "properties": {"repobilityId": "c04a942bf471a045", "scanner": "scanner-primary", "fingerprint": "7dce842e5cc54232", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b87dc3add3b7bd09", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: ubuntu:jammy"}, "properties": {"repobilityId": "8a7e113be7d1a7e4", "scanner": "scanner-primary", "fingerprint": "b87dc3add3b7bd09", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-e2f1cddf8cbe14d3", "level": "error", "message": {"text": "Dockerfile pipes a remote installer into a shell"}, "properties": {"repobilityId": "ea6efead5bedd7dc", "scanner": "scanner-primary", "fingerprint": "e2f1cddf8cbe14d3", "layer": "hardware", "severity": "high", "confidence": 1.0, "tags": ["supply-chain", "docker", "remote-installer"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-aa5acaa49eb8315b", "level": "note", "message": {"text": "Containers defined but no K8s/orchestration manifest found"}, "properties": {"repobilityId": "b230ea9b68736081", "scanner": "scanner-primary", "fingerprint": "aa5acaa49eb8315b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["coverage", "deployment"]}}, {"ruleId": "scanner-9ff60c0c30ea872c", "level": "warning", "message": {"text": "Insecure pattern 'subprocess_shell_true' in scripts/gitlab_stale_branches.py:18"}, "properties": {"repobilityId": "c78f5d83b8c00e84", "scanner": "scanner-primary", "fingerprint": "9ff60c0c30ea872c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/gitlab_stale_branches.py"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-8da4ee3e2f9efdd4", "level": "warning", "message": {"text": "Insecure pattern 'subprocess_shell_true' in scripts/git_branch_cleaner.py:19"}, "properties": {"repobilityId": "3644ff35e6b357df", "scanner": "scanner-primary", "fingerprint": "8da4ee3e2f9efdd4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/git_branch_cleaner.py"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-6f175d2293fc42b4", "level": "warning", "message": {"text": "Insecure pattern 'subprocess_shell_true' in scripts/git_branch_selector.py:18"}, "properties": {"repobilityId": "bc765eb9125f9df4", "scanner": "scanner-primary", "fingerprint": "6f175d2293fc42b4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "subprocess_shell_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/git_branch_selector.py"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-aec202da8b4111b8", "level": "note", "message": {"text": "Insecure pattern 'debug_true' in opensankey/app.py:29"}, "properties": {"repobilityId": "e5e2414dab9b53ca", "scanner": "scanner-primary", "fingerprint": "aec202da8b4111b8", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "debug_true"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "opensankey/app.py"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-09232db710dc8be7", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in opensankey/client/src/Persistence/SankeyPersistence.tsx:447"}, "properties": {"repobilityId": "2c99d40669aadd9f", "scanner": "scanner-primary", "fingerprint": "09232db710dc8be7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "opensankey/client/src/Persistence/SankeyPersistence.tsx"}, "region": {"startLine": 447}}}]}, {"ruleId": "scanner-0119a7f3bc01e691", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in opensankey/client/src/Elements/Legend.tsx:313"}, "properties": {"repobilityId": "60df7ec86144743b", "scanner": "scanner-primary", "fingerprint": "0119a7f3bc01e691", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "opensankey/client/src/Elements/Legend.tsx"}, "region": {"startLine": 313}}}]}, {"ruleId": "scanner-c6e7c136bcdbf82d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in opensankey/client/src/Elements/TooltipsCSS.tsx:43"}, "properties": {"repobilityId": "4d3c7a777bde3b0a", "scanner": "scanner-primary", "fingerprint": "c6e7c136bcdbf82d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "opensankey/client/src/Elements/TooltipsCSS.tsx"}, "region": {"startLine": 43}}}]}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-1495d02a3073b6af", "level": "note", "message": {"text": "package.json defines install-time lifecycle scripts"}, "properties": {"repobilityId": "77def4303aefa21a", "scanner": "scanner-primary", "fingerprint": "1495d02a3073b6af", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/1.1.4/viewer/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e9d6b2f6c0f6bace", "level": "note", "message": {"text": "package.json defines install-time lifecycle scripts"}, "properties": {"repobilityId": "eb96faea56375cd4", "scanner": "scanner-primary", "fingerprint": "e9d6b2f6c0f6bace", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/current/viewer/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-82c4c9766e53647b", "level": "note", "message": {"text": "Very large file: opensankey/client/src/types/MenuConfig.tsx (1535 lines)"}, "properties": {"repobilityId": "4b976ef994dd1114", "scanner": "scanner-primary", "fingerprint": "82c4c9766e53647b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9d160b0eecf83e0d", "level": "note", "message": {"text": "Very large file: opensankey/client/src/types/ApplicationData.tsx (1924 lines)"}, "properties": {"repobilityId": "c140a77c001ae8eb", "scanner": "scanner-primary", "fingerprint": "9d160b0eecf83e0d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5705078ab08f0e6e", "level": "note", "message": {"text": "Very large file: opensankey/client/src/types/DrawingArea.tsx (3386 lines)"}, "properties": {"repobilityId": "7b29113ab52f1860", "scanner": "scanner-primary", "fingerprint": "5705078ab08f0e6e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b45547dad89d6318", "level": "note", "message": {"text": "Very large file: opensankey/client/src/components/configmenus/MenuCommon.tsx (1769 lines)"}, "properties": {"repobilityId": "f9a159291e0b0113", "scanner": "scanner-primary", "fingerprint": "b45547dad89d6318", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fb04258640db6e66", "level": "note", "message": {"text": "Very large file: opensankey/client/src/components/configmenus/MenuElementsAppearance.tsx (3498 lines)"}, "properties": {"repobilityId": "81a696b7e7db666e", "scanner": "scanner-primary", "fingerprint": "fb04258640db6e66", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a3d3bc88aa61f3c3", "level": "note", "message": {"text": "Very large file: opensankey/client/src/components/topmenus/MenuTop.tsx (1478 lines)"}, "properties": {"repobilityId": "becc62d78eb97a2c", "scanner": "scanner-primary", "fingerprint": "a3d3bc88aa61f3c3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c7ac864b9fda9964", "level": "note", "message": {"text": "Very large file: opensankey/client/src/components/dialogs/PersistenceProcessDialog.tsx (1580 lines)"}, "properties": {"repobilityId": "e86da2780db78bbd", "scanner": "scanner-primary", "fingerprint": "c7ac864b9fda9964", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a075d19210e4d96b", "level": "note", "message": {"text": "Very large file: opensankey/client/src/components/dialogs/PersistenceProcessDialogConfigs.tsx (2289 lines)"}, "properties": {"repobilityId": "f1c2dfd34f1a3935", "scanner": "scanner-primary", "fingerprint": "a075d19210e4d96b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ea37dec048bd8a01", "level": "note", "message": {"text": "Very large file: opensankey/client/src/Persistence/Legacy.tsx (2795 lines)"}, "properties": {"repobilityId": "3c38183af0adc630", "scanner": "scanner-primary", "fingerprint": "ea37dec048bd8a01", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-41c87751b327ec6a", "level": "note", "message": {"text": "Very large file: opensankey/client/src/Persistence/SankeyPersistence.tsx (2447 lines)"}, "properties": {"repobilityId": "58f385bfcaf98832", "scanner": "scanner-primary", "fingerprint": "41c87751b327ec6a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-39632a565f2bbf6b", "level": "note", "message": {"text": "Very large file: opensankey/client/src/Elements/Node.tsx (2257 lines)"}, "properties": {"repobilityId": "e65b027fc6ba174f", "scanner": "scanner-primary", "fingerprint": "39632a565f2bbf6b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-49a401e7070dfc75", "level": "note", "message": {"text": "Very large file: opensankey/client/src/Elements/Element.tsx (1359 lines)"}, "properties": {"repobilityId": "9a51b6426db255a7", "scanner": "scanner-primary", "fingerprint": "49a401e7070dfc75", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8a8397ebab2f7bb5", "level": "note", "message": {"text": "Very large file: opensankey/client/src/Elements/Link.tsx (2422 lines)"}, "properties": {"repobilityId": "2cf3c926efcea3b3", "scanner": "scanner-primary", "fingerprint": "8a8397ebab2f7bb5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-aa7bb343c8e62436", "level": "note", "message": {"text": "Very large file: opensankey/client/src/Elements/ElementsAttributesConfig.tsx (3366 lines)"}, "properties": {"repobilityId": "13035a47354273e7", "scanner": "scanner-primary", "fingerprint": "aa7bb343c8e62436", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-18845c4cbacfc6ed", "level": "note", "message": {"text": "Very large file: opensankey/client/src/Elements/DrawLabel.tsx (2820 lines)"}, "properties": {"repobilityId": "83501a7c90b90b57", "scanner": "scanner-primary", "fingerprint": "18845c4cbacfc6ed", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-12f1004a15f36cb2", "level": "note", "message": {"text": "Very large file: opensankey/client/src/css/Theme.tsx (3274 lines)"}, "properties": {"repobilityId": "a6dd5fb8cb5c2a93", "scanner": "scanner-primary", "fingerprint": "12f1004a15f36cb2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3339e73bf128abbb", "level": "note", "message": {"text": "Very large file: opensankey/client/src/css/IconLibrairie.tsx (1870 lines)"}, "properties": {"repobilityId": "7f84fe7e7fa329f3", "scanner": "scanner-primary", "fingerprint": "3339e73bf128abbb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-27bd1cfdb0bfc4b4", "level": "note", "message": {"text": "Very large file: opensankey/client/src/traductions/traduction_nodes.tsx (1230 lines)"}, "properties": {"repobilityId": "9ef815e1ffe53817", "scanner": "scanner-primary", "fingerprint": "27bd1cfdb0bfc4b4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-53022c773e57c76b", "level": "note", "message": {"text": "Very large file: opensankey/client/src/traductions/traduction_app_elements.tsx (2747 lines)"}, "properties": {"repobilityId": "5a22bb991fab6ac0", "scanner": "scanner-primary", "fingerprint": "53022c773e57c76b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bfea326867117f20", "level": "note", "message": {"text": "Very large file: opensankey/client/src/Algorithms/NodePositioning.tsx (3565 lines)"}, "properties": {"repobilityId": "a613c0d230fd202e", "scanner": "scanner-primary", "fingerprint": "bfea326867117f20", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-94a9d5c89070a870", "level": "note", "message": {"text": "Very large file: opensankey/server/views.py (1486 lines)"}, "properties": {"repobilityId": "4f7c2cd2958bee32", "scanner": "scanner-primary", "fingerprint": "94a9d5c89070a870", "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-09bad5ab1f174fc5", "level": "note", "message": {"text": "34 TODO/FIXME markers"}, "properties": {"repobilityId": "4b38c118003e07d2", "scanner": "scanner-primary", "fingerprint": "09bad5ab1f174fc5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["maintenance"]}}, {"ruleId": "scanner-5faac4c02a5dc920", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: examples/1.0.7/viewer/package.json"}, "properties": {"repobilityId": "eda57c0f6ff8d127", "scanner": "scanner-primary", "fingerprint": "5faac4c02a5dc920", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/1.0.7/viewer/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-89b76f3cce8c89ed", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: examples/1.0.7/editor/package.json"}, "properties": {"repobilityId": "5e3589092b0e640e", "scanner": "scanner-primary", "fingerprint": "89b76f3cce8c89ed", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/1.0.7/editor/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-10c92c811ae38eda", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: examples/1.1.4/viewer/package.json"}, "properties": {"repobilityId": "d153034803850407", "scanner": "scanner-primary", "fingerprint": "10c92c811ae38eda", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/1.1.4/viewer/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b7c6806d25142236", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: examples/1.1.4/editor/package.json"}, "properties": {"repobilityId": "89730d3a49927309", "scanner": "scanner-primary", "fingerprint": "b7c6806d25142236", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/1.1.4/editor/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-22c02832fa2bf749", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: examples/current/viewer/package.json"}, "properties": {"repobilityId": "4f60c72da24ad5b5", "scanner": "scanner-primary", "fingerprint": "22c02832fa2bf749", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/current/viewer/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8ed693ed5a161841", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: examples/current/editor/package.json"}, "properties": {"repobilityId": "933f4b684dbda4e5", "scanner": "scanner-primary", "fingerprint": "8ed693ed5a161841", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/current/editor/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a28955ae125e2203", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: opensankey/client/package.json"}, "properties": {"repobilityId": "881bee044af49dbe", "scanner": "scanner-primary", "fingerprint": "a28955ae125e2203", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "opensankey/client/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "1cecc78b3c788dce", "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": "d2c148e9c3c92a49", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "2b361afdc4d4eb0d", "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": "aff7f66f77340a8f", "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": "8ecdd114ad05fbfc", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-16f5bf06af4c054e", "level": "none", "message": {"text": "Commented-code block (6 lines) in examples/1.1.4/viewer/scripts/dedupe-deps.cjs:1"}, "properties": {"repobilityId": "2431209a71994670", "scanner": "scanner-primary", "fingerprint": "16f5bf06af4c054e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2fb91ea1f9a9fae2", "level": "none", "message": {"text": "Commented-code block (6 lines) in examples/current/viewer/scripts/dedupe-deps.cjs:1"}, "properties": {"repobilityId": "56142c7a6d611089", "scanner": "scanner-primary", "fingerprint": "2fb91ea1f9a9fae2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-12fbbb9c0faf8af7", "level": "note", "message": {"text": "Legacy-named symbol `errorOnDeprecated` in opensankey/client/jest.config.ts:51"}, "properties": {"repobilityId": "4673ef981476134b", "scanner": "scanner-primary", "fingerprint": "12fbbb9c0faf8af7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e04904e769423026", "level": "none", "message": {"text": "Commented-code block (5 lines) in opensankey/client/jest.config.ts:151"}, "properties": {"repobilityId": "ea1f4d44526f4c30", "scanner": "scanner-primary", "fingerprint": "e04904e769423026", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96a4cfb84d2b5e28", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/Modules.tsx:6"}, "properties": {"repobilityId": "a341696acf03af10", "scanner": "scanner-primary", "fingerprint": "96a4cfb84d2b5e28", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-68ad1b8b1e06ca38", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 opensankey/client/src/registerServiceWorker.js:86"}, "properties": {"repobilityId": "aecdec3ba0d1fe14", "scanner": "scanner-primary", "fingerprint": "68ad1b8b1e06ca38", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5b54ec6768420967", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/index.tsx:6"}, "properties": {"repobilityId": "c18f3cf56cf94dd0", "scanner": "scanner-primary", "fingerprint": "5b54ec6768420967", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-60ddaa0acadf2b24", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/DefaultApp.tsx:6"}, "properties": {"repobilityId": "0cbf8b4d532959ec", "scanner": "scanner-primary", "fingerprint": "60ddaa0acadf2b24", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-689d4bb2fec869b7", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/ViewApp.tsx:6"}, "properties": {"repobilityId": "dcb608d09dc66f88", "scanner": "scanner-primary", "fingerprint": "689d4bb2fec869b7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-245a9f332a1fc9b3", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/App.tsx:6"}, "properties": {"repobilityId": "6f20069f803253ea", "scanner": "scanner-primary", "fingerprint": "245a9f332a1fc9b3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3189d43ca5c952ca", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/types/MenuConfig.tsx:6"}, "properties": {"repobilityId": "76a50e66086ea4ee", "scanner": "scanner-primary", "fingerprint": "3189d43ca5c952ca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8c937b573ccc3cd8", "level": "none", "message": {"text": "Commented-code block (7 lines) in opensankey/client/src/types/PublishOptions.tsx:1"}, "properties": {"repobilityId": "432f54d8a0703ef0", "scanner": "scanner-primary", "fingerprint": "8c937b573ccc3cd8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c5f23751fb60861", "level": "note", "message": {"text": "Legacy-named symbol `tagg_to_copy` in opensankey/client/src/types/TagGroup.tsx:78"}, "properties": {"repobilityId": "1b81ea2ab5a84106", "scanner": "scanner-primary", "fingerprint": "2c5f23751fb60861", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5d4bc5a1146a558c", "level": "none", "message": {"text": "Commented-code block (7 lines) in opensankey/client/src/types/TagGroup.tsx:94"}, "properties": {"repobilityId": "b160f437f6d3f970", "scanner": "scanner-primary", "fingerprint": "5d4bc5a1146a558c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8c42f2187708bbc8", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/types/ApplicationData.tsx:6"}, "properties": {"repobilityId": "effade98d24199e9", "scanner": "scanner-primary", "fingerprint": "8c42f2187708bbc8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-00f5154b1a011e9b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 opensankey/client/src/types/ApplicationData.tsx:882"}, "properties": {"repobilityId": "abbff000891c180f", "scanner": "scanner-primary", "fingerprint": "00f5154b1a011e9b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3347d81bacf167f7", "level": "note", "message": {"text": "Legacy-named symbol `tag_to_copy` in opensankey/client/src/types/Tag.tsx:128"}, "properties": {"repobilityId": "42cfa3de43a9416f", "scanner": "scanner-primary", "fingerprint": "3347d81bacf167f7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2529151d2e383bf5", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/types/Tag.tsx:6"}, "properties": {"repobilityId": "ae9eff3784aa0fdf", "scanner": "scanner-primary", "fingerprint": "2529151d2e383bf5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cdd2fc33f5fb2853", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/types/ApplicationHistory.tsx:6"}, "properties": {"repobilityId": "d62554566c0adf5b", "scanner": "scanner-primary", "fingerprint": "cdd2fc33f5fb2853", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-75dfb358edee0926", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/types/Utils.tsx:6"}, "properties": {"repobilityId": "acddb7cb7470f1bc", "scanner": "scanner-primary", "fingerprint": "75dfb358edee0926", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6f32852699f528d8", "level": "note", "message": {"text": "Legacy-named symbol `sankey_to_copy` in opensankey/client/src/types/Sankey.tsx:235"}, "properties": {"repobilityId": "59e542393b08bbba", "scanner": "scanner-primary", "fingerprint": "6f32852699f528d8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f2ca086d6a78b139", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/types/Sankey.tsx:6"}, "properties": {"repobilityId": "040fb73b57c2bf32", "scanner": "scanner-primary", "fingerprint": "f2ca086d6a78b139", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ce8a8cae9fbffc61", "level": "note", "message": {"text": "Legacy-named symbol `drawing_area_to_copy` in opensankey/client/src/types/DrawingArea.tsx:402"}, "properties": {"repobilityId": "5580412afef172bf", "scanner": "scanner-primary", "fingerprint": "ce8a8cae9fbffc61", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f93e1c9d57fffe19", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/types/DrawingArea.tsx:6"}, "properties": {"repobilityId": "ef781ad32d569f38", "scanner": "scanner-primary", "fingerprint": "f93e1c9d57fffe19", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-084c20ef700d7da3", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/SankeyMenuTypes.tsx:6"}, "properties": {"repobilityId": "27ae2f874a533b62", "scanner": "scanner-primary", "fingerprint": "084c20ef700d7da3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-10a95484aa4e9295", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/configmenus/MenuCommon.tsx:6"}, "properties": {"repobilityId": "4d7b280f603bd35a", "scanner": "scanner-primary", "fingerprint": "10a95484aa4e9295", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a249168e230e8401", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/configmenus/SankeyMenuConfigurationLinksData.tsx:6"}, "properties": {"repobilityId": "27de654f1540e2ae", "scanner": "scanner-primary", "fingerprint": "a249168e230e8401", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-014c7b0e581377e2", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/configmenus/SankeyMenuConfigurationLayout.tsx:6"}, "properties": {"repobilityId": "e88ef1cb36bc6624", "scanner": "scanner-primary", "fingerprint": "014c7b0e581377e2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ef0e657d58e4087c", "level": "none", "message": {"text": "Commented-code block (5 lines) in opensankey/client/src/components/configmenus/MenuElementsSelection.tsx:885"}, "properties": {"repobilityId": "a12822d563e8ede0", "scanner": "scanner-primary", "fingerprint": "ef0e657d58e4087c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-70d9899de93a5a4a", "level": "none", "message": {"text": "Commented-code block (7 lines) in opensankey/client/src/components/configmenus/MenuElementsAppearance.tsx:1482"}, "properties": {"repobilityId": "e4c6b172c8874dd8", "scanner": "scanner-primary", "fingerprint": "70d9899de93a5a4a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f158ca803322f103", "level": "none", "message": {"text": "Commented-code block (11 lines) in opensankey/client/src/components/spreadsheet/MainZoneTabs.tsx:1"}, "properties": {"repobilityId": "216c0041a02bd867", "scanner": "scanner-primary", "fingerprint": "f158ca803322f103", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3dd78a3fd8f83bff", "level": "none", "message": {"text": "Commented-code block (10 lines) in opensankey/client/src/components/spreadsheet/univer-modules.d.ts:1"}, "properties": {"repobilityId": "54eb849a780c9008", "scanner": "scanner-primary", "fingerprint": "3dd78a3fd8f83bff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ceb5119470c89a1", "level": "none", "message": {"text": "Commented-code block (8 lines) in opensankey/client/src/components/spreadsheet/UniverHierarchyOps.tsx:1"}, "properties": {"repobilityId": "071ffbb757a883e8", "scanner": "scanner-primary", "fingerprint": "8ceb5119470c89a1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-903b8d6a8c6a2a33", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/spreadsheet/UniverSpreadSheet.tsx:1"}, "properties": {"repobilityId": "7b3b538f683a895e", "scanner": "scanner-primary", "fingerprint": "903b8d6a8c6a2a33", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1764226b0ba9a14e", "level": "none", "message": {"text": "Commented-code block (5 lines) in opensankey/client/src/components/spreadsheet/DocPanel.tsx:1"}, "properties": {"repobilityId": "c06fdcd39ce80692", "scanner": "scanner-primary", "fingerprint": "1764226b0ba9a14e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-29871b85e555dac1", "level": "none", "message": {"text": "Commented-code block (10 lines) in opensankey/client/src/components/spreadsheet/UniverSankeyData.tsx:1"}, "properties": {"repobilityId": "522da983cdbb0e41", "scanner": "scanner-primary", "fingerprint": "29871b85e555dac1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-33672607ac94c4ba", "level": "none", "message": {"text": "Commented-code block (11 lines) in opensankey/client/src/components/spreadsheet/AddConstraintModal.tsx:1"}, "properties": {"repobilityId": "5b923e1edf22f588", "scanner": "scanner-primary", "fingerprint": "33672607ac94c4ba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6310d07128c43b81", "level": "none", "message": {"text": "Commented-code block (7 lines) in opensankey/client/src/components/spreadsheet/UniverSankeyBridge.tsx:1"}, "properties": {"repobilityId": "356d666a79283382", "scanner": "scanner-primary", "fingerprint": "6310d07128c43b81", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1c612d69629bda1a", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/spreadsheet/SpreadSheet.tsx:6"}, "properties": {"repobilityId": "09a3d348b6023e29", "scanner": "scanner-primary", "fingerprint": "1c612d69629bda1a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a66bcc085e32e1d3", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/topmenus/SankeyExports.tsx:6"}, "properties": {"repobilityId": "1cb30010c9402827", "scanner": "scanner-primary", "fingerprint": "a66bcc085e32e1d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0249b273cefbb4f2", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/topmenus/SankeyTemplates.tsx:6"}, "properties": {"repobilityId": "b372a807f0fae1de", "scanner": "scanner-primary", "fingerprint": "0249b273cefbb4f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-91cfd8d76cbb4ad7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 opensankey/client/src/components/topmenus/SankeyTemplates.tsx:108"}, "properties": {"repobilityId": "e83b5b3493149bed", "scanner": "scanner-primary", "fingerprint": "91cfd8d76cbb4ad7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c00b3373fb6aa0f6", "level": "none", "message": {"text": "Commented-code block (7 lines) in opensankey/client/src/components/topmenus/Toolbar.tsx:446"}, "properties": {"repobilityId": "e6df9e68f9cbe240", "scanner": "scanner-primary", "fingerprint": "c00b3373fb6aa0f6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ff54b6aa060a7461", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/topmenus/MenuTop.tsx:6"}, "properties": {"repobilityId": "0003fb6ebcd82627", "scanner": "scanner-primary", "fingerprint": "ff54b6aa060a7461", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f4ce29be52bbdbe", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/topmenus/SankeyMenus.tsx:6"}, "properties": {"repobilityId": "50d7e38a89b452e5", "scanner": "scanner-primary", "fingerprint": "1f4ce29be52bbdbe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3b93d133ea650682", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/dialogs/NodeActions.tsx:184"}, "properties": {"repobilityId": "6d80e50a3135489b", "scanner": "scanner-primary", "fingerprint": "3b93d133ea650682", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ed6dd4a4ac6ecce4", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/dialogs/SankeyMenuContext.tsx:6"}, "properties": {"repobilityId": "6b4c506d5e3d7548", "scanner": "scanner-primary", "fingerprint": "ed6dd4a4ac6ecce4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f795bf13979a22a3", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/dialogs/SankeyStyle.tsx:6"}, "properties": {"repobilityId": "52baecd02307b3ff", "scanner": "scanner-primary", "fingerprint": "f795bf13979a22a3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-762bafd4d46feef3", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/dialogs/ContextLinkConfig.tsx:6"}, "properties": {"repobilityId": "a732e82d17681d8d", "scanner": "scanner-primary", "fingerprint": "762bafd4d46feef3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-57470b3d4946d4e3", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/dialogs/PersistenceProcessDialog.tsx:6"}, "properties": {"repobilityId": "d264af309b688e86", "scanner": "scanner-primary", "fingerprint": "57470b3d4946d4e3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6ed56daf2e257623", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 opensankey/client/src/components/dialogs/PersistenceProcessDialog.tsx:561"}, "properties": {"repobilityId": "10a76919592f9db3", "scanner": "scanner-primary", "fingerprint": "6ed56daf2e257623", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2da01cae000149cb", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/dialogs/MenuContextWidgetFactory.tsx:6"}, "properties": {"repobilityId": "d11edc9ec75df52f", "scanner": "scanner-primary", "fingerprint": "2da01cae000149cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3939f7bbf44b4d0d", "level": "none", "message": {"text": "Commented-code block (5 lines) in opensankey/client/src/components/dialogs/PersistenceProcessDialogTerminal.tsx:1"}, "properties": {"repobilityId": "0cbe5fb5fd91385b", "scanner": "scanner-primary", "fingerprint": "3939f7bbf44b4d0d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a8c0095150f10a1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 opensankey/client/src/components/dialogs/PersistenceProcessDialogTerminal.tsx:328"}, "properties": {"repobilityId": "086eca8e084c5594", "scanner": "scanner-primary", "fingerprint": "7a8c0095150f10a1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7eb3df1fe7f25856", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/dialogs/SankeyMenuDialogs.tsx:6"}, "properties": {"repobilityId": "da99296cecb08ce7", "scanner": "scanner-primary", "fingerprint": "7eb3df1fe7f25856", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3d34ee4554e6f37e", "level": "none", "message": {"text": "Commented-code block (5 lines) in opensankey/client/src/components/dialogs/ContextZDDConfig.tsx:25"}, "properties": {"repobilityId": "3d0c4b7d9a778132", "scanner": "scanner-primary", "fingerprint": "3d34ee4554e6f37e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b509c4ed8de24df8", "level": "none", "message": {"text": "Commented-code block (5 lines) in opensankey/client/src/components/dialogs/PersistenceProcessDialogConfigs.tsx:754"}, "properties": {"repobilityId": "cb9c0defe58e99af", "scanner": "scanner-primary", "fingerprint": "b509c4ed8de24df8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c2472a6806baf22", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/dialogs/NodeIOReorganizer.tsx:6"}, "properties": {"repobilityId": "a5c09207da9f87dd", "scanner": "scanner-primary", "fingerprint": "2c2472a6806baf22", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bcf44a500ed8f8ef", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/welcome/ModalWelcome.tsx:6"}, "properties": {"repobilityId": "2226dc72a8dada93", "scanner": "scanner-primary", "fingerprint": "bcf44a500ed8f8ef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d5e2aa333032ec5", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/welcome/MenuExamples.tsx:7"}, "properties": {"repobilityId": "b2749a9300b748e7", "scanner": "scanner-primary", "fingerprint": "6d5e2aa333032ec5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-46f19c7990b2d041", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/components/welcome/SplashScreen.tsx:6"}, "properties": {"repobilityId": "7c7b141ed7a3af61", "scanner": "scanner-primary", "fingerprint": "46f19c7990b2d041", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-00652c1a8a542eb9", "level": "note", "message": {"text": "Legacy-named symbol `convert_data_legacy` in opensankey/client/src/Persistence/Legacy.tsx:342"}, "properties": {"repobilityId": "7a165d6d4957cfbe", "scanner": "scanner-primary", "fingerprint": "00652c1a8a542eb9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1192e18d9adc5a8c", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/Persistence/Legacy.tsx:6"}, "properties": {"repobilityId": "21acbc56aa6510e8", "scanner": "scanner-primary", "fingerprint": "1192e18d9adc5a8c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d72fb4a1aa2904e0", "level": "note", "message": {"text": "Legacy-named symbol `convert_data_legacy` in opensankey/client/src/Persistence/SankeyPersistence.tsx:50"}, "properties": {"repobilityId": "90d7602d77c726d5", "scanner": "scanner-primary", "fingerprint": "d72fb4a1aa2904e0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8444fde1971365de", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/Persistence/SankeyPersistence.tsx:6"}, "properties": {"repobilityId": "ab3e1dd59c85f624", "scanner": "scanner-primary", "fingerprint": "8444fde1971365de", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-63b874e3ca728ff4", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/Persistence/LegacyType.tsx:6"}, "properties": {"repobilityId": "a9b633c801ea98cf", "scanner": "scanner-primary", "fingerprint": "63b874e3ca728ff4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-47526342413723d2", "level": "note", "message": {"text": "Legacy-named symbol `node_to_copy` in opensankey/client/src/Elements/Node.tsx:169"}, "properties": {"repobilityId": "b58241125eeb0e12", "scanner": "scanner-primary", "fingerprint": "47526342413723d2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-58a079de536f940d", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/Elements/Node.tsx:6"}, "properties": {"repobilityId": "487db3479a89a007", "scanner": "scanner-primary", "fingerprint": "58a079de536f940d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3879db830ce5ee92", "level": "note", "message": {"text": "Legacy-named symbol `element_to_copy` in opensankey/client/src/Elements/Element.tsx:182"}, "properties": {"repobilityId": "850132eaa4de79d7", "scanner": "scanner-primary", "fingerprint": "3879db830ce5ee92", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8f8704b490c897b3", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/Elements/Element.tsx:6"}, "properties": {"repobilityId": "e2417475d64b2a82", "scanner": "scanner-primary", "fingerprint": "8f8704b490c897b3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a6c8cbeab115514b", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/Elements/Link.tsx:6"}, "properties": {"repobilityId": "2b916fa1b2b9a963", "scanner": "scanner-primary", "fingerprint": "a6c8cbeab115514b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3092c1c86efe5244", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/Elements/SelectionZone.tsx:6"}, "properties": {"repobilityId": "de6a2f8c04438aa9", "scanner": "scanner-primary", "fingerprint": "3092c1c86efe5244", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c54a4b0450ea7711", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/Elements/Handler.tsx:6"}, "properties": {"repobilityId": "e113bf012eb519f7", "scanner": "scanner-primary", "fingerprint": "c54a4b0450ea7711", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c5a73b4337ab7dba", "level": "note", "message": {"text": "Legacy-named symbol `node_to_copy` in opensankey/client/src/Elements/NodeDimension.tsx:606"}, "properties": {"repobilityId": "3c329c5fca4e42e9", "scanner": "scanner-primary", "fingerprint": "c5a73b4337ab7dba", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-cca3cbd22a4273f8", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/Elements/NodeDimension.tsx:6"}, "properties": {"repobilityId": "e99d57876292af6b", "scanner": "scanner-primary", "fingerprint": "cca3cbd22a4273f8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e4b3b46bf3c468e6", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/Elements/ElementsAttributesConfig.tsx:6"}, "properties": {"repobilityId": "0a2c1f8901b2ef16", "scanner": "scanner-primary", "fingerprint": "e4b3b46bf3c468e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-53efba294a4e30bb", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/Elements/LinkDrawShape.tsx:6"}, "properties": {"repobilityId": "1d24c0598596f9e4", "scanner": "scanner-primary", "fingerprint": "53efba294a4e30bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b6e1e053049991c0", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/Elements/NodeDrawShape.tsx:6"}, "properties": {"repobilityId": "80833d6297fa44e1", "scanner": "scanner-primary", "fingerprint": "b6e1e053049991c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f67703d75e304b71", "level": "note", "message": {"text": "Legacy-named symbol `node_to_copy` in opensankey/client/src/Elements/NodeTagsManager.tsx:58"}, "properties": {"repobilityId": "aa9f42126a7e6c60", "scanner": "scanner-primary", "fingerprint": "f67703d75e304b71", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0f9e0c6a24777e49", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/Elements/NodeTagsManager.tsx:6"}, "properties": {"repobilityId": "2db382e596a28d91", "scanner": "scanner-primary", "fingerprint": "0f9e0c6a24777e49", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-539adfbb7402fd0b", "level": "note", "message": {"text": "Legacy-named symbol `child_to_copy` in opensankey/client/src/Elements/LinkValues.tsx:103"}, "properties": {"repobilityId": "dc9bb7ee9eea1d5d", "scanner": "scanner-primary", "fingerprint": "539adfbb7402fd0b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f79e9d91fc9e4cb9", "level": "none", "message": {"text": "Commented-code block (7 lines) in opensankey/client/src/Elements/DrawLabel.tsx:37"}, "properties": {"repobilityId": "26856bf6c4349472", "scanner": "scanner-primary", "fingerprint": "f79e9d91fc9e4cb9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a3f91a8b8ed1963", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/Elements/NodeBase.tsx:6"}, "properties": {"repobilityId": "4de6ddf41dcff9ce", "scanner": "scanner-primary", "fingerprint": "1a3f91a8b8ed1963", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6126429c4ab543cb", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/Elements/LinkControlPoints.tsx:6"}, "properties": {"repobilityId": "41eb82f2ec55fe8b", "scanner": "scanner-primary", "fingerprint": "6126429c4ab543cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4042a137d49b3fd5", "level": "note", "message": {"text": "Legacy-named symbol `cast_copy` in opensankey/client/src/Elements/Legend.tsx:74"}, "properties": {"repobilityId": "39ad2c45f809de55", "scanner": "scanner-primary", "fingerprint": "4042a137d49b3fd5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-cc542cf876175bfd", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/Elements/Legend.tsx:6"}, "properties": {"repobilityId": "ff8af0ef11098b20", "scanner": "scanner-primary", "fingerprint": "cc542cf876175bfd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-18b8b27dc8425053", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/Elements/NodeEventsHandler.tsx:6"}, "properties": {"repobilityId": "96ec37bec797de62", "scanner": "scanner-primary", "fingerprint": "18b8b27dc8425053", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f608dd3f3d3d8e45", "level": "note", "message": {"text": "Legacy-named symbol `container_to_copy` in opensankey/client/src/Elements/TextZone.tsx:26"}, "properties": {"repobilityId": "e283e574d99af4c9", "scanner": "scanner-primary", "fingerprint": "f608dd3f3d3d8e45", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-696367f9b4d95119", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/Elements/StockShape.tsx:6"}, "properties": {"repobilityId": "4bae7079e2040a2b", "scanner": "scanner-primary", "fingerprint": "696367f9b4d95119", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a12a826291414914", "level": "none", "message": {"text": "Commented-code block (5 lines) in opensankey/client/src/css/Theme.tsx:1228"}, "properties": {"repobilityId": "0d55f629db9c6715", "scanner": "scanner-primary", "fingerprint": "a12a826291414914", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-61219ef284f9ef64", "level": "note", "message": {"text": "Legacy-named symbol `_icon_copy` in opensankey/client/src/css/IconLibrairie.tsx:1651"}, "properties": {"repobilityId": "bdb70c93fd053376", "scanner": "scanner-primary", "fingerprint": "61219ef284f9ef64", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-21586bd9f8fb34e0", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/css/IconLibrairie.tsx:6"}, "properties": {"repobilityId": "77d9ebcbd740eee3", "scanner": "scanner-primary", "fingerprint": "21586bd9f8fb34e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba8d04b628b89e41", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/Algorithms/NodePositioning.tsx:6"}, "properties": {"repobilityId": "ebf8cac03622d45b", "scanner": "scanner-primary", "fingerprint": "ba8d04b628b89e41", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f6c8f1878f911023", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/Algorithms/SankeyAnimation.tsx:6"}, "properties": {"repobilityId": "e2b5f713b6f940a1", "scanner": "scanner-primary", "fingerprint": "f6c8f1878f911023", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9fe1270fe92d7ef8", "level": "none", "message": {"text": "Commented-code block (5 lines) in opensankey/client/src/Algorithms/UnitaryBoard.tsx:102"}, "properties": {"repobilityId": "f7a997056178c149", "scanner": "scanner-primary", "fingerprint": "9fe1270fe92d7ef8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3d36079125179975", "level": "none", "message": {"text": "Commented-code block (13 lines) in opensankey/client/src/Algorithms/UpdateFrom.tsx:264"}, "properties": {"repobilityId": "da9e45aba71ac8da", "scanner": "scanner-primary", "fingerprint": "3d36079125179975", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dbabd6eb52cd51f0", "level": "none", "message": {"text": "Commented-code block (6 lines) in opensankey/client/src/Algorithms/Hierarchies.tsx:6"}, "properties": {"repobilityId": "31c274bf998e63f7", "scanner": "scanner-primary", "fingerprint": "dbabd6eb52cd51f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-832b35fc908bf1b0", "level": "none", "message": {"text": "Commented-code block (9 lines) in opensankey/tests/test_dict_results.py:242"}, "properties": {"repobilityId": "8a4cf3478e091e9b", "scanner": "scanner-primary", "fingerprint": "832b35fc908bf1b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-efd61e5d32b28d94", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 opensankey/server/views_export.py:148"}, "properties": {"repobilityId": "0c3edd890efb266c", "scanner": "scanner-primary", "fingerprint": "efd61e5d32b28d94", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a93d9b5423a27d8b", "level": "none", "message": {"text": "Commented-code block (5 lines) in opensankey/server/views.py:222"}, "properties": {"repobilityId": "462fae8f1b67aa66", "scanner": "scanner-primary", "fingerprint": "a93d9b5423a27d8b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a91adfc7e02b743", "level": "none", "message": {"text": "Commented-code block (7 lines) in opensankey/server/views_utils.py:172"}, "properties": {"repobilityId": "09aa970c14d852d6", "scanner": "scanner-primary", "fingerprint": "7a91adfc7e02b743", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "9f6de05d1c1e6492", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "a32876eaf00d9ccf", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "76b67e447574d4be", "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": "2425947f6b75f4ae", "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": "2bc2531c4dae8555", "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": "d60c1e7c7c91c9c5", "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": "b07809d020c8eeec", "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": "6c3db17a1dc7ed65", "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": "699cbd6ea7c9f900", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-41a93d933e97ebe9", "level": "error", "message": {"text": "Dangling fetch: POST /opensankey/menus/excel_template (opensankey/client/src/components/topmenus/ExcelTemplateModal.tsx:146)"}, "properties": {"repobilityId": "0759e33d369137d6", "scanner": "scanner-primary", "fingerprint": "41a93d933e97ebe9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7581ee4b1032e13e", "level": "error", "message": {"text": "Dangling fetch: POST /example/upload (opensankey/client/src/Persistence/UniversalJSONCompression.tsx:217)"}, "properties": {"repobilityId": "9bdb77906284da1e", "scanner": "scanner-primary", "fingerprint": "7581ee4b1032e13e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1a6d91f2236825bf", "level": "note", "message": {"text": "Unused endpoint: ANY /"}, "properties": {"repobilityId": "d7c9fdd4f865b174", "scanner": "scanner-primary", "fingerprint": "1a6d91f2236825bf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d0d3fd09e4699ad4", "level": "note", "message": {"text": "Unused endpoint: ANY /<adress>"}, "properties": {"repobilityId": "21d58df34b82a86f", "scanner": "scanner-primary", "fingerprint": "d0d3fd09e4699ad4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ecd7d8e9c3fdb132", "level": "note", "message": {"text": "Unused endpoint: ANY /_images/<path>"}, "properties": {"repobilityId": "6f6de315e19edb01", "scanner": "scanner-primary", "fingerprint": "ecd7d8e9c3fdb132", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9e1a6b03743b2124", "level": "note", "message": {"text": "Unused endpoint: ANY /save/svg"}, "properties": {"repobilityId": "d7861c45aaab0a37", "scanner": "scanner-primary", "fingerprint": "9e1a6b03743b2124", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e3fb16d4c26e4158", "level": "note", "message": {"text": "Unused endpoint: ANY /save/png"}, "properties": {"repobilityId": "94e01ecac5dceaa5", "scanner": "scanner-primary", "fingerprint": "e3fb16d4c26e4158", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e88831fba491db32", "level": "note", "message": {"text": "Unused endpoint: ANY /save/pdf"}, "properties": {"repobilityId": "755b902dbb870457", "scanner": "scanner-primary", "fingerprint": "e88831fba491db32", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e340137c1092d0bd", "level": "note", "message": {"text": "Unused endpoint: ANY /save/svg/post_clean"}, "properties": {"repobilityId": "d1bc1de0e5915f31", "scanner": "scanner-primary", "fingerprint": "e340137c1092d0bd", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-622a1a83aae43e4a", "level": "note", "message": {"text": "Unused endpoint: ANY /save/png/post_clean"}, "properties": {"repobilityId": "f6c2c0e1123fe031", "scanner": "scanner-primary", "fingerprint": "622a1a83aae43e4a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-418f1784214cbd05", "level": "note", "message": {"text": "Unused endpoint: ANY /save/pdf/post_clean"}, "properties": {"repobilityId": "dac9a0ad54adbb24", "scanner": "scanner-primary", "fingerprint": "418f1784214cbd05", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2b1a58177985db4d", "level": "note", "message": {"text": "Unused endpoint: ANY /upload/check_process"}, "properties": {"repobilityId": "2b4b7996d1fb4766", "scanner": "scanner-primary", "fingerprint": "2b1a58177985db4d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a277cbbe57b0b901", "level": "note", "message": {"text": "Unused endpoint: ANY /upload/retrieve_result"}, "properties": {"repobilityId": "591a7be0c35621aa", "scanner": "scanner-primary", "fingerprint": "a277cbbe57b0b901", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4c0a5b69c8f79ad2", "level": "note", "message": {"text": "Unused endpoint: ANY /upload/retrieve_json"}, "properties": {"repobilityId": "3b1d4cd1edbac482", "scanner": "scanner-primary", "fingerprint": "4c0a5b69c8f79ad2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-16dc67e819a08837", "level": "note", "message": {"text": "Unused endpoint: ANY /convert/peek_options"}, "properties": {"repobilityId": "ea8fa9d7dfc030ca", "scanner": "scanner-primary", "fingerprint": "16dc67e819a08837", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-afc6f1be22d0358f", "level": "note", "message": {"text": "Unused endpoint: ANY /convert/launch"}, "properties": {"repobilityId": "27fef7b32ec8cf9f", "scanner": "scanner-primary", "fingerprint": "afc6f1be22d0358f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1a8737f8b833b50b", "level": "note", "message": {"text": "Unused endpoint: ANY /upload/clean"}, "properties": {"repobilityId": "c1756d1fb0e3aad7", "scanner": "scanner-primary", "fingerprint": "1a8737f8b833b50b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1760167fbfd2cdd5", "level": "note", "message": {"text": "Unused endpoint: ANY /example/download"}, "properties": {"repobilityId": "bb8ce9ccb61e213f", "scanner": "scanner-primary", "fingerprint": "1760167fbfd2cdd5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2f6175e310b4829a", "level": "note", "message": {"text": "Unused endpoint: ANY /menus/excel_template"}, "properties": {"repobilityId": "164f873f80ade76e", "scanner": "scanner-primary", "fingerprint": "2f6175e310b4829a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f2d6be250342fde8", "level": "note", "message": {"text": "Unused endpoint: ANY /menus/templates"}, "properties": {"repobilityId": "82372b17f688a2d2", "scanner": "scanner-primary", "fingerprint": "f2d6be250342fde8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4e43104557c93917", "level": "note", "message": {"text": "Unused endpoint: ANY /menus/examples"}, "properties": {"repobilityId": "b9be5fc09006ae6e", "scanner": "scanner-primary", "fingerprint": "4e43104557c93917", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9362199740c8df95", "level": "note", "message": {"text": "Unused endpoint: ANY /menus/tutorials"}, "properties": {"repobilityId": "25bf0cb194c1463e", "scanner": "scanner-primary", "fingerprint": "9362199740c8df95", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-aba2a7414f67d25f", "level": "note", "message": {"text": "Unused endpoint: ANY /open_sankeymatic"}, "properties": {"repobilityId": "ebc29f3d33c8726c", "scanner": "scanner-primary", "fingerprint": "aba2a7414f67d25f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-242a5afabb890fb1", "level": "note", "message": {"text": "Unused endpoint: ANY /url/load_json"}, "properties": {"repobilityId": "4bb4dc77b953dbf0", "scanner": "scanner-primary", "fingerprint": "242a5afabb890fb1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}