{"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-97446ad46eba3dd4", "name": "Stray `console.log` in TS/JS \u2014 js/boot.js:111", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/boot.js:111"}, "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-1091d564f7fc6434", "name": "Icon-only button without accessible name \u2014 js/apps/sticky-notes.js:41", "shortDescription": {"text": "Icon-only button without accessible name \u2014 js/apps/sticky-notes.js:41"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-598d1ed1ecaa8f57", "name": "Stray `console.log` in TS/JS \u2014 js/apps/live-chat.js:181", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/apps/live-chat.js:181"}, "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-4ee038039a32384b", "name": "Icon-only button without accessible name \u2014 js/apps/calculator.js:51", "shortDescription": {"text": "Icon-only button without accessible name \u2014 js/apps/calculator.js:51"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c7304d396234d8db", "name": "Icon-only button without accessible name \u2014 js/apps/recipe-book.js:92", "shortDescription": {"text": "Icon-only button without accessible name \u2014 js/apps/recipe-book.js:92"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c00fd94967f8aade", "name": "Icon-only button without accessible name \u2014 js/apps/kanban.js:61", "shortDescription": {"text": "Icon-only button without accessible name \u2014 js/apps/kanban.js:61"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-88796a207b7d7bdf", "name": "Stray `console.log` in TS/JS \u2014 js/apps/messages.js:736", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/apps/messages.js:736"}, "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-34f8c648285054fe", "name": "Icon-only button without accessible name \u2014 js/apps/countdown.js:45", "shortDescription": {"text": "Icon-only button without accessible name \u2014 js/apps/countdown.js:45"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-09e5cfb908910823", "name": "Icon-only button without accessible name \u2014 js/apps/budget.js:24", "shortDescription": {"text": "Icon-only button without accessible name \u2014 js/apps/budget.js:24"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1ec42ecab0516720", "name": "Stray `console.log` in TS/JS \u2014 js/lib/safe-math.js:155", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/lib/safe-math.js:155"}, "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-dac433428ca72880", "name": "Stray `console.log` in TS/JS \u2014 js/shell/chat-panel.js:138", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/shell/chat-panel.js:138"}, "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-a8e9f132b40c5e4b", "name": "Stray `console.log` in TS/JS \u2014 js/shell/menubar.js:350", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/shell/menubar.js:350"}, "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-762abdd708e85d99", "name": "Stray `console.log` in TS/JS \u2014 js/shell/spotlight.js:864", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/shell/spotlight.js:864"}, "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-9e697aeda5093f96", "name": "Stray `console.log` in TS/JS \u2014 js/shell/idle-lock.js:36", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/shell/idle-lock.js:36"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-68e40172e2354293", "name": "Stray `console.log` in TS/JS \u2014 js/shell/screensaver.js:28", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/shell/screensaver.js:28"}, "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-2982902804d92713", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/intent-executor.js:139", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/intent-executor.js:139"}, "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-e8c175e071f88653", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/selfmod-soak.js:694", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/selfmod-soak.js:694"}, "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-aa6341c207b7d627", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/predicate-parser.js:364", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/predicate-parser.js:364"}, "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-dc78a7b26591f9e7", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/test-runner.js:298", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/test-runner.js:298"}, "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-8e6e18bce9b82380", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/ai-service.js:760", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/ai-service.js:760"}, "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-900443d78a24e0a8", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/synthetic-proposals.js:204", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/synthetic-proposals.js:204"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-19c0d0685cc7e565", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/socratic-prompter.js:167", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/socratic-prompter.js:167"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-54f6669574213407", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/chaos-injector.js:209", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/chaos-injector.js:209"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5eda068436b96124", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/drift-detector.js:185", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/drift-detector.js:185"}, "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-5bff36f31644eba3", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/value-lock.js:108", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/value-lock.js:108"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dec9806e503c463d", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/skill-parser.js:338", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/skill-parser.js:338"}, "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-c5cf3ec6139af749", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/skill-scheduler.js:189", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/skill-scheduler.js:189"}, "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-f07c028878d99a8b", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/red-team.js:236", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/red-team.js:236"}, "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-e176f5630e35ab65", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/conversation-memory.js:188", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/conversation-memory.js:188"}, "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-9e0e38f0f26df334", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/intent-parser.js:658", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/intent-parser.js:658"}, "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-d6f6ddc406e52312", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/generated-app-loader.js:180", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/generated-app-loader.js:180"}, "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-d158e7f45a9330bf", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/rubber-stamp-tracker.js:147", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/rubber-stamp-tracker.js:147"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ebd47400f761f32d", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/golden-check.js:70", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/golden-check.js:70"}, "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-d5faeb4e36b2d0e7", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/graph-query.js:855", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/graph-query.js:855"}, "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-5dabb9caf14d7f32", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/capability-providers.js:1606", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/capability-providers.js:1606"}, "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-8f7339c3876818b8", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/test-generator.js:338", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/test-generator.js:338"}, "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-8859bc4f877f9b01", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/healer.js:60", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/healer.js:60"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1a4f1644efe4a665", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/skill-registry.js:258", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/skill-registry.js:258"}, "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-5210b5e03c0987a9", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/context-bundle.js:83", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/context-bundle.js:83"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-11961433ef6d9e7a", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/budget-manager.js:199", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/budget-manager.js:199"}, "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-9d5b8c3c3ad4cb3b", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/selfmod-sandbox.js:305", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/selfmod-sandbox.js:305"}, "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-db4d80d7a5cc902c", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/calibration-tracker.js:191", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/calibration-tracker.js:191"}, "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-f24aebe0b7eb1c3f", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/spec-generator.js:333", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/spec-generator.js:333"}, "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-a4ec05fbabafcea4", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/code-generator.js:306", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/code-generator.js:306"}, "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-b1016692b2539223", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/intent-planner.js:421", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/intent-planner.js:421"}, "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-ecf11d35a23af145", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/ai-audio-cues.js:67", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/ai-audio-cues.js:67"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-76ae0e297695a7b1", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/graph-store.js:1138", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/graph-store.js:1138"}, "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-dec635c4741a76f5", "name": "Stray `console.log` in TS/JS \u2014 js/kernel/graph-migration.js:131", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/graph-migration.js:131"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-73f4f90339f5e30b", "name": "Stray `console.log` in TS/JS \u2014 server/index.js:125", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/index.js:125"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bcfe3d610348c70f", "name": "Stray `console.log` in TS/JS \u2014 installer/main.js:37", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 installer/main.js:37"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c5e11fcd6cb6e52c", "name": "Stray `console.log` in TS/JS \u2014 installer/app/js/boot.js:173", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 installer/app/js/boot.js:173"}, "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-841b182f60aa1c23", "name": "Stray `console.log` in TS/JS \u2014 installer/app/js/apps/terminal.js:516", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 installer/app/js/apps/terminal.js:516"}, "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-00a9b2428f333c59", "name": "Icon-only button without accessible name \u2014 installer/app/js/apps/calculator.js:50", "shortDescription": {"text": "Icon-only button without accessible name \u2014 installer/app/js/apps/calculator.js:50"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6adcf9996ebe7bed", "name": "Insecure pattern 'direct_innerhtml_assignment' in search.html:61", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in search.html:61"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7b6b2d258f7db1d4", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/voice-memos.js:39", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/voice-memos.js:39"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6b8d6d33acb0aecb", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/snake.js:71", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/snake.js:71"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-22dd64dfd4c0c0ba", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/wordle.js:68", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/wordle.js:68"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cd83edbb8558e5cf", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/stopwatch.js:9", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/stopwatch.js:9"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-28d8011204171ca0", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/settings.js:64", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/settings.js:64"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-419486e39ebd1734", "name": "Insecure pattern 'insert_adjacent_html' in js/apps/settings.js:890", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in js/apps/settings.js:890"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b1695edea3a294e7", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/video-editor.js:51", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/video-editor.js:51"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bcca15f91584ee80", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/dictionary.js:17", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/dictionary.js:17"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6dcf68d503f63643", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/quotes.js:25", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/quotes.js:25"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-90a05b0923462c92", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/browser.js:93", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/browser.js:93"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a287e7da4b817151", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/sticky-notes.js:38", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/sticky-notes.js:38"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-264fa17b7446ef63", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/beat-studio.js:97", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/beat-studio.js:97"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-03ed4d17ac27bef2", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/installer.js:20", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/installer.js:20"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bfe6a2bde1b98749", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/live-chat.js:42", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/live-chat.js:42"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-97815971924f7d99", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/sudoku.js:84", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/sudoku.js:84"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f7d045dc46edecd6", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/timer.js:12", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/timer.js:12"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0b6cfae27a07e03e", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/speed-test.js:23", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/speed-test.js:23"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5ea9104ee6956181", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/terminal.js:22", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/terminal.js:22"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dc8fc9c899027d97", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/color-picker.js:28", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/color-picker.js:28"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2025fb0c6cf47248", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/habit-tracker.js:39", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/habit-tracker.js:39"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-27b77ca4ec59e744", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/tic-tac-toe.js:61", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/tic-tac-toe.js:61"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-db576106a61db8ac", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/appstore.js:94", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/appstore.js:94"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-14b8fee0b22f5169", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/rock-paper-scissors.js:38", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/rock-paper-scissors.js:38"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-edda44180561e1e3", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/journal.js:13", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/journal.js:13"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cedbe0f4075e7ac5", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/ai-art.js:244", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/ai-art.js:244"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6e9bd31b543118fc", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/random-facts.js:65", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/random-facts.js:65"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3ca6f0ce38d5d934", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/calculator.js:29", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/calculator.js:29"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7a0a50717cb1cb58", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/trash.js:61", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/trash.js:61"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-08bdea50c817688a", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/draw.js:37", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/draw.js:37"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dc4be01574ab3313", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/todo.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/todo.js:48"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-457cf86d4105ec5b", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/music.js:511", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/music.js:511"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-91de6e277d383e9d", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/system-info.js:18", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/system-info.js:18"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d50cad74714209bf", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/minesweeper.js:77", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/minesweeper.js:77"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1274074cfecdd409", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/chess.js:475", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/chess.js:475"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f4b2a724f8f0f994", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/2048.js:213", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/2048.js:213"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cb10ac02c75c1f13", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/adaptations.js:62", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/adaptations.js:62"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1c6a25483edae0ed", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/emoji-kitchen.js:74", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/emoji-kitchen.js:74"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c3d7d1e8ad3dcfb5", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/password-gen.js:9", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/password-gen.js:9"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0eae165e6a37f814", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/reaction-test.js:66", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/reaction-test.js:66"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-22a142e30cba2752", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/recipe-book.js:66", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/recipe-book.js:66"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8b9664ef9f568532", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/pomodoro.js:38", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/pomodoro.js:38"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-155519fca936f3ee", "name": "Insecure pattern 'local_storage_auth_token' in js/apps/pomodoro.js:117", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in js/apps/pomodoro.js:117"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-39b1bcb2a22b89f6", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/kanban.js:47", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/kanban.js:47"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-eb9c127d5e3d20bf", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/messages.js:207", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/messages.js:207"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5e534e1d4f40835e", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/youtube.js:28", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/youtube.js:28"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-853098c5892d7213", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/countdown.js:42", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/countdown.js:42"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a6f17aa5cd684611", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/weather.js:187", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/weather.js:187"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-89a2bf2ea7e7d56e", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/ai-writer.js:45", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/ai-writer.js:45"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c624bf02ebfc8111", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/maps.js:19", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/maps.js:19"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b36f085b02dd6183", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/activity-monitor.js:37", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/activity-monitor.js:37"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-883788a64a69a50d", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/translator.js:23", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/translator.js:23"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a0d75ee729b24001", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/qr-code.js:7", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/qr-code.js:7"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f21e629ab6ede496", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/neon-void.js:10", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/neon-void.js:10"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9299c64a6a5b830d", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/bmi-calc.js:33", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/bmi-calc.js:33"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3f27f43cfade017c", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/soundboard.js:94", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/soundboard.js:94"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f472c5065c64f00a", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/pdf-viewer.js:20", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/pdf-viewer.js:20"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6050646684273ba2", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/unit-converter.js:50", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/unit-converter.js:50"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6ecff6b5cd9faa16", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/color-palette.js:86", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/color-palette.js:86"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-125fc0982630a934", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/screen-recorder.js:36", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/screen-recorder.js:36"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b1baaed3674a11b4", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/notes.js:62", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/notes.js:62"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c9c9b0bf4372056f", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/meditation.js:41", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/meditation.js:41"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fb59a1008e479387", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/pixel-art.js:37", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/pixel-art.js:37"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b6f007e770491cc9", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/finder.js:33", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/finder.js:33"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2b2055c7d0c333c8", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/video-player.js:18", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/video-player.js:18"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5e48025d21c50a22", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/animate.js:171", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/animate.js:171"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-31a0a7df831ed683", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/contacts.js:38", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/contacts.js:38"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-eb0f0396043af6fd", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/reminders.js:119", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/reminders.js:119"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0bec41c70fe60894", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/calendar.js:34", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/calendar.js:34"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0e924af9ea35689c", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/photos.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/photos.js:48"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-75267460f9e75d06", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/clock.js:34", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/clock.js:34"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cb76f7c4740dae03", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/whiteboard.js:6", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/whiteboard.js:6"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-72742f724932a357", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/text-editor.js:155", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/text-editor.js:155"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-216480aab18a3cb0", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/markdown.js:6", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/markdown.js:6"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-eb46b0e2bbff72ee", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/typing-test.js:9", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/typing-test.js:9"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ee8696d37fb29d61", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/flashcards.js:13", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/flashcards.js:13"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d5e3e196c5fee933", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/healer-log.js:45", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/healer-log.js:45"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1bba2e8977fd5870", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/budget.js:14", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/budget.js:14"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9a2cc0d2a5033de3", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/vault.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/vault.js:48"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-57a363d947e10549", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/lib/dialog.js:9", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/lib/dialog.js:9"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-61773df686aaabc3", "name": "Insecure pattern 'eval_used' in js/lib/safe-math.js:148", "shortDescription": {"text": "Insecure pattern 'eval_used' in js/lib/safe-math.js:148"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f11316d7e076221a", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/lock-screen.js:35", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/lock-screen.js:35"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5fe99cc93c17952d", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/widgets.js:156", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/widgets.js:156"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-af04d3fd3f700b19", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/control-center.js:40", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/control-center.js:40"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6511b249415d2804", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/emoji-picker.js:253", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/emoji-picker.js:253"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9e8b4e97dc4ebf93", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/wizard-ai-brain.js:140", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/wizard-ai-brain.js:140"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7797a5bd5f7ee988", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/volume-hud.js:106", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/volume-hud.js:106"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-29342fd50ade9920", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/launchpad.js:79", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/launchpad.js:79"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1deadf4355e8320b", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/chat-panel.js:178", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/chat-panel.js:178"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-aef9da25585d5f10", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/menubar.js:442", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/menubar.js:442"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-929724a7757d267d", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/desktop.js:17", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/desktop.js:17"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-40b5ff4ca08ac32c", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/clipboard-manager.js:125", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/clipboard-manager.js:125"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c3d47fbd9a446bb0", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/focus-mode.js:88", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/focus-mode.js:88"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-282b1078ef27376b", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/wifi-picker.js:45", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/wifi-picker.js:45"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-55b26f1dcf46082d", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/bluetooth-picker.js:33", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/bluetooth-picker.js:33"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7e3b8971c7875eb7", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/quick-look.js:80", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/quick-look.js:80"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f087c73a7d13072d", "name": "Possible secret in js/shell/spotlight.js", "shortDescription": {"text": "Possible secret in js/shell/spotlight.js"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-f22c4d91332851d0", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/spotlight.js:114", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/spotlight.js:114"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-51583f30ac3e88c7", "name": "Insecure pattern 'insert_adjacent_html' in js/shell/spotlight.js:400", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in js/shell/spotlight.js:400"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5077fa22b57ebebc", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/shortcuts-overlay.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/shortcuts-overlay.js:48"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-445533240e1796bf", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/spaces.js:141", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/spaces.js:141"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4c9eb7dcbe4a9204", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/setup-wizard.js:96", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/setup-wizard.js:96"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e438c1466944ce46", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/screensaver.js:107", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/screensaver.js:107"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-aaba9782bf015c18", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/dock.js:134", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/dock.js:134"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fea0b1c75bdec1f9", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/kernel/app-stubs.js:99", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/kernel/app-stubs.js:99"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-35a98f682ab06dd2", "name": "Insecure pattern 'eval_used' in js/kernel/synthetic-proposals.js:74", "shortDescription": {"text": "Insecure pattern 'eval_used' in js/kernel/synthetic-proposals.js:74"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4dc5fe08fd927c20", "name": "Insecure pattern 'new_function_used' in js/kernel/synthetic-proposals.js:77", "shortDescription": {"text": "Insecure pattern 'new_function_used' in js/kernel/synthetic-proposals.js:77"}, "fullDescription": {"text": "Found a known-risky pattern (new_function_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6c85e2ffeef54e49", "name": "Insecure pattern 'eval_used' in js/kernel/self-upgrader.js:81", "shortDescription": {"text": "Insecure pattern 'eval_used' in js/kernel/self-upgrader.js:81"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9db5bf440ed364b3", "name": "Insecure pattern 'new_function_used' in js/kernel/self-upgrader.js:82", "shortDescription": {"text": "Insecure pattern 'new_function_used' in js/kernel/self-upgrader.js:82"}, "fullDescription": {"text": "Found a known-risky pattern (new_function_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-15c4367d37600d20", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/kernel/permissions.js:91", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/kernel/permissions.js:91"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ee64928e455a9213", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/kernel/toy-stubs.js:70", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/kernel/toy-stubs.js:70"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c6d3086fca7f1e6f", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/kernel/generated-app-runner.js:113", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/kernel/generated-app-runner.js:113"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d89c4b8f2644af94", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/kernel/notifications.js:73", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/kernel/notifications.js:73"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9b54b0775de3977c", "name": "Insecure pattern 'eval_used' in js/kernel/app-installer.js:77", "shortDescription": {"text": "Insecure pattern 'eval_used' in js/kernel/app-installer.js:77"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6026cdbc0c37b947", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/kernel/app-installer.js:28", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/kernel/app-installer.js:28"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-790b16c45c084f44", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/kernel/generated-app-loader.js:141", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/kernel/generated-app-loader.js:141"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1fda6778811c7208", "name": "Insecure pattern 'direct_innerhtml_assignment' in js/kernel/window-manager.js:170", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/kernel/window-manager.js:170"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f97d6f6a65ed0200", "name": "Insecure pattern 'eval_used' in js/kernel/pen-test.js:120", "shortDescription": {"text": "Insecure pattern 'eval_used' in js/kernel/pen-test.js:120"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4cdb05d55a743a0d", "name": "Insecure pattern 'new_function_used' in js/kernel/pen-test.js:121", "shortDescription": {"text": "Insecure pattern 'new_function_used' in js/kernel/pen-test.js:121"}, "fullDescription": {"text": "Found a known-risky pattern (new_function_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-88b524bda1717f8a", "name": "Insecure pattern 'eval_used' in js/kernel/selfmod-sandbox.js:122", "shortDescription": {"text": "Insecure pattern 'eval_used' in js/kernel/selfmod-sandbox.js:122"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2dc0fd39059176d0", "name": "Insecure pattern 'new_function_used' in js/kernel/selfmod-sandbox.js:123", "shortDescription": {"text": "Insecure pattern 'new_function_used' in js/kernel/selfmod-sandbox.js:123"}, "fullDescription": {"text": "Found a known-risky pattern (new_function_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1de26051ffc27376", "name": "Insecure pattern 'new_function_used' in js/kernel/code-generator.js:67", "shortDescription": {"text": "Insecure pattern 'new_function_used' in js/kernel/code-generator.js:67"}, "fullDescription": {"text": "Found a known-risky pattern (new_function_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-82e65a85216174ce", "name": "Insecure pattern 'direct_innerhtml_assignment' in scripts/reset-test-state.html:100", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in scripts/reset-test-state.html:100"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9896560cb5796795", "name": "Insecure pattern 'eval_used' in website/index.html:607", "shortDescription": {"text": "Insecure pattern 'eval_used' in website/index.html:607"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-668dbfae126905d5", "name": "Insecure pattern 'exec_used' in server/index.js:123", "shortDescription": {"text": "Insecure pattern 'exec_used' in server/index.js:123"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bf8af6a5ec6ce7b8", "name": "Insecure pattern 'node_child_process' in server/index.js:9", "shortDescription": {"text": "Insecure pattern 'node_child_process' in server/index.js:9"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a730b698c20d5118", "name": "Insecure pattern 'direct_innerhtml_assignment' in server/index.js:959", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in server/index.js:959"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-90f73e0a08713164", "name": "Insecure pattern 'cors_wildcard' in server/index.js:743", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in server/index.js:743"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-21cc35950ed66558", "name": "Insecure pattern 'direct_innerhtml_assignment' in distro/astrion-browser/renderer/browser.js:23", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in distro/astrion-browser/renderer/browser.js:23"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fac15b17e49427b9", "name": "Insecure pattern 'direct_innerhtml_assignment' in distro/astrion-browser/renderer/reader.html:194", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in distro/astrion-browser/renderer/reader.html:194"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b3ee19ad66edd4e5", "name": "Insecure pattern 'direct_innerhtml_assignment' in distro/astrion-browser/renderer/reading-list.html:156", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in distro/astrion-browser/renderer/reading-list.html:156"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a463058b945f4db4", "name": "Insecure pattern 'direct_innerhtml_assignment' in distro/astrion-browser/renderer/history.html:152", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in distro/astrion-browser/renderer/history.html:152"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b4c04e30f7fa870d", "name": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/settings.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/settings.js:48"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b13d1b19aaf5e02b", "name": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/browser.js:35", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/browser.js:35"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-860b1a22d1fc39f2", "name": "Insecure pattern 'eval_used' in installer/app/js/apps/terminal.js:515", "shortDescription": {"text": "Insecure pattern 'eval_used' in installer/app/js/apps/terminal.js:515"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aaed86c447d912c5", "name": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/terminal.js:26", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/terminal.js:26"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6d92e5bf8a4f8f82", "name": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/appstore.js:93", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/appstore.js:93"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-76861c5a449ad510", "name": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/calculator.js:28", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/calculator.js:28"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0afccd3546646df6", "name": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/draw.js:37", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/draw.js:37"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c00112829b20d0c4", "name": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/music.js:160", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/music.js:160"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-feea003cf82794e0", "name": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/weather.js:54", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/weather.js:54"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0f076eeaf93848f3", "name": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/activity-monitor.js:26", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/activity-monitor.js:26"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fcdde629d44b1d32", "name": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/notes.js:34", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/notes.js:34"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3f23846bd5b19e55", "name": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/finder.js:27", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/finder.js:27"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1fa2f0436cbe4fcd", "name": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/reminders.js:46", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/reminders.js:46"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7df9e65385140d04", "name": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/calendar.js:34", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/calendar.js:34"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-43331dec8c5c4700", "name": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/photos.js:48", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/photos.js:48"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8c5b8568719c9f63", "name": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/clock.js:33", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/clock.js:33"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6fb10baac9218ed2", "name": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/text-editor.js:155", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/text-editor.js:155"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-42f0654dd5fb9693", "name": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/shell/lock-screen.js:33", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/shell/lock-screen.js:33"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e263f065f910c489", "name": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/shell/control-center.js:40", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/shell/control-center.js:40"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-040b00dccb90220a", "name": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/shell/launchpad.js:55", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/shell/launchpad.js:55"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7c2a494073341f2c", "name": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/shell/menubar.js:300", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/shell/menubar.js:300"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8fd86fabefbbcfe9", "name": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/shell/desktop.js:17", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/shell/desktop.js:17"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d9772c591e8f6789", "name": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/shell/wifi-picker.js:36", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/shell/wifi-picker.js:36"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a8037748d953ad0b", "name": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/shell/spotlight.js:37", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/shell/spotlight.js:37"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-42acbcf4662914b3", "name": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/shell/setup-wizard.js:58", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/shell/setup-wizard.js:58"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fd7ad9e1542400af", "name": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/shell/dock.js:26", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/shell/dock.js:26"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b190ca41b072fb7c", "name": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/kernel/notifications.js:31", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/kernel/notifications.js:31"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2f8fd7f15e22246b", "name": "Insecure pattern 'eval_used' in installer/app/js/kernel/app-installer.js:76", "shortDescription": {"text": "Insecure pattern 'eval_used' in installer/app/js/kernel/app-installer.js:76"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9e51e66dec249c76", "name": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/kernel/app-installer.js:27", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/kernel/app-installer.js:27"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-420d66fc38c2e0ce", "name": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/kernel/window-manager.js:42", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/kernel/window-manager.js:42"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-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-077f344dfe29faa4", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/upload-artifact@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9fecea1bc50d9e3b", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-28c4a04bd807da0c", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/deploy-pages@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ad6701f0a8405e22", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e166321bd27611ec", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/upload-artifact@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6d647634edfe1553", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dad138f419869f24", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/upload-artifact@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-27bcea42cba6c545", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ecba33d1289f543c", "name": "Very large file: js/apps/settings.js (2014 lines)", "shortDescription": {"text": "Very large file: js/apps/settings.js (2014 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-4d7c255360fbe58f", "name": "Very large file: js/apps/music.js (1266 lines)", "shortDescription": {"text": "Very large file: js/apps/music.js (1266 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-79dd5d0930235b77", "name": "Very large file: js/shell/chat-panel.js (2075 lines)", "shortDescription": {"text": "Very large file: js/shell/chat-panel.js (2075 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-9b2ea534d1f794f8", "name": "Very large file: js/shell/spotlight.js (2578 lines)", "shortDescription": {"text": "Very large file: js/shell/spotlight.js (2578 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-30ed14c4496f586d", "name": "Very large file: js/kernel/capability-providers.js (1612 lines)", "shortDescription": {"text": "Very large file: js/kernel/capability-providers.js (1612 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-65db635d9cf89da9", "name": "Very large file: server/index.js (1859 lines)", "shortDescription": {"text": "Very large file: server/index.js (1859 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "6 test file(s) for 230 source file(s) (ratio 0.03). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9e413a2cc0ece797", "name": "Node manifest has dependencies but no lockfile: distro/astrion-browser/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: distro/astrion-browser/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 83 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 163 placeholder/mock markers across 71 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9d79c4077342a7d0", "name": "Runtime service client appears to use placeholder configuration", "shortDescription": {"text": "Runtime service client appears to use placeholder configuration"}, "fullDescription": {"text": "A runtime source file appears to wire Supabase/Firebase/AI/payment-style clients to placeholder URLs, keys, or fallback values. In the Fable corpus this often means the UI/API shape is present while the backend service is not actually configured."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-11825279136b53a3", "name": "CI is configured but no tests are detected", "shortDescription": {"text": "CI is configured but no tests are detected"}, "fullDescription": {"text": "A CI pipeline exists, but the scan found no test files to gate. Opus labeled this generated-code pattern as config theater: release machinery exists, but it has little behavioral signal."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: tests, lockfile. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-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-9c297a7513370c1d", "name": "Commented-code block (6 lines) in js/boot.js:32", "shortDescription": {"text": "Commented-code block (6 lines) in js/boot.js:32"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-03cda21bc14e36a0", "name": "Commented-code block (5 lines) in js/apps/settings.js:330", "shortDescription": {"text": "Commented-code block (5 lines) in js/apps/settings.js:330"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ec71a23dd776d037", "name": "`fetch()` without try/.catch or AbortSignal \u2014 js/apps/settings.js:172", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/apps/settings.js:172"}, "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-8a2836ed850c86e1", "name": "Commented-code block (8 lines) in js/apps/dictionary.js:5", "shortDescription": {"text": "Commented-code block (8 lines) in js/apps/dictionary.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-41f074f3d89f59ba", "name": "`fetch()` without try/.catch or AbortSignal \u2014 js/apps/dictionary.js:25", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/apps/dictionary.js:25"}, "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-7848e53346c44de6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 js/apps/appstore.js:586", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/apps/appstore.js:586"}, "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-7a2ba9069487b08c", "name": "Commented-code block (5 lines) in js/apps/system-info.js:89", "shortDescription": {"text": "Commented-code block (5 lines) in js/apps/system-info.js:89"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4dc14ae6a8ecf553", "name": "Commented-code block (5 lines) in js/apps/chess.js:499", "shortDescription": {"text": "Commented-code block (5 lines) in js/apps/chess.js:499"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2871c3a15fc57a06", "name": "Commented-code block (6 lines) in js/apps/adaptations.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in js/apps/adaptations.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7f8e7085459dfbfe", "name": "Commented-code block (5 lines) in js/apps/messages.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in js/apps/messages.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f12476c0ab9aaad7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 js/apps/activity-monitor.js:173", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/apps/activity-monitor.js:173"}, "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-0d9a279596190a13", "name": "Commented-code block (5 lines) in js/lib/safe-math.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in js/lib/safe-math.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1056582ab8b6c5db", "name": "Commented-code block (5 lines) in js/lib/render-md.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in js/lib/render-md.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6f2fed237a92e6af", "name": "Commented-code block (5 lines) in js/lib/smart-answers.js:98", "shortDescription": {"text": "Commented-code block (5 lines) in js/lib/smart-answers.js:98"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f15dfa9060206353", "name": "Commented-code block (7 lines) in js/lib/safe-html.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in js/lib/safe-html.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-286b053f89645a8b", "name": "Commented-code block (5 lines) in js/shell/dock-usage-toast.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in js/shell/dock-usage-toast.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2f778f7ef25adcf7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 js/shell/widgets.js:180", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/shell/widgets.js:180"}, "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-70e91d7b3cf524fd", "name": "Commented-code block (7 lines) in js/shell/wizard-ai-brain.js:3", "shortDescription": {"text": "Commented-code block (7 lines) in js/shell/wizard-ai-brain.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4f7a5097e3c7bd9c", "name": "Commented-code block (5 lines) in js/shell/launchpad.js:12", "shortDescription": {"text": "Commented-code block (5 lines) in js/shell/launchpad.js:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-193349f78c197ff3", "name": "Commented-code block (5 lines) in js/shell/chat-panel.js:54", "shortDescription": {"text": "Commented-code block (5 lines) in js/shell/chat-panel.js:54"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c081eaf7cc09db82", "name": "Commented-code block (6 lines) in js/shell/skill-proposal-toast.js:8", "shortDescription": {"text": "Commented-code block (6 lines) in js/shell/skill-proposal-toast.js:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-26fb650045f0f761", "name": "`fetch()` without try/.catch or AbortSignal \u2014 js/shell/bluetooth-picker.js:50", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/shell/bluetooth-picker.js:50"}, "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-39f060d960089525", "name": "Commented-code block (5 lines) in js/shell/spotlight.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in js/shell/spotlight.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4c5a78c1aa16ed00", "name": "Commented-code block (5 lines) in js/shell/text-learner-toast.js:10", "shortDescription": {"text": "Commented-code block (5 lines) in js/shell/text-learner-toast.js:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4c8f528f16457420", "name": "Commented-code block (5 lines) in js/shell/focus-trap.js:7", "shortDescription": {"text": "Commented-code block (5 lines) in js/shell/focus-trap.js: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-49c54cb21d922875", "name": "Commented-code block (5 lines) in js/shell/setup-wizard.js:195", "shortDescription": {"text": "Commented-code block (5 lines) in js/shell/setup-wizard.js:195"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b0fd7559ef691279", "name": "Commented-code block (7 lines) in js/kernel/intent-executor.js:11", "shortDescription": {"text": "Commented-code block (7 lines) in js/kernel/intent-executor.js:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-11162a43d1570087", "name": "Commented-code block (5 lines) in js/kernel/graph-learner.js:7", "shortDescription": {"text": "Commented-code block (5 lines) in js/kernel/graph-learner.js: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-83fa9cddfeb977a8", "name": "Commented-code block (6 lines) in js/kernel/selfmod-soak.js:7", "shortDescription": {"text": "Commented-code block (6 lines) in js/kernel/selfmod-soak.js: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-cc0f24d0d3559443", "name": "Commented-code block (7 lines) in js/kernel/app-stubs.js:3", "shortDescription": {"text": "Commented-code block (7 lines) in js/kernel/app-stubs.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-864341024c159d0e", "name": "Commented-code block (11 lines) in js/kernel/predicate-parser.js:8", "shortDescription": {"text": "Commented-code block (11 lines) in js/kernel/predicate-parser.js:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5efa239726ccf7fc", "name": "Commented-code block (6 lines) in js/kernel/app-categories.js:5", "shortDescription": {"text": "Commented-code block (6 lines) in js/kernel/app-categories.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-44fb4808e3e8494b", "name": "Commented-code block (9 lines) in js/kernel/test-runner.js:8", "shortDescription": {"text": "Commented-code block (9 lines) in js/kernel/test-runner.js:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0c0dee7fcddf8816", "name": "Commented-code block (7 lines) in js/kernel/usage-tracker.js:6", "shortDescription": {"text": "Commented-code block (7 lines) in js/kernel/usage-tracker.js:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-23089d9c6137b940", "name": "Commented-code block (7 lines) in js/kernel/ai-service.js:5", "shortDescription": {"text": "Commented-code block (7 lines) in js/kernel/ai-service.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5468c2f9fbcfbde6", "name": "Commented-code block (5 lines) in js/kernel/synthetic-proposals.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in js/kernel/synthetic-proposals.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5ee26a507b353d50", "name": "Commented-code block (8 lines) in js/kernel/socratic-prompter.js:3", "shortDescription": {"text": "Commented-code block (8 lines) in js/kernel/socratic-prompter.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b650a064af4cfea6", "name": "Commented-code block (5 lines) in js/kernel/intent-miss-proposer.js:5", "shortDescription": {"text": "Commented-code block (5 lines) in js/kernel/intent-miss-proposer.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b1f4dccb1d2cf396", "name": "Commented-code block (5 lines) in js/kernel/operation-interceptor.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in js/kernel/operation-interceptor.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9512ab1cc650956d", "name": "Commented-code block (9 lines) in js/kernel/capability-api.js:3", "shortDescription": {"text": "Commented-code block (9 lines) in js/kernel/capability-api.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-87d02e3466c47cb5", "name": "Commented-code block (7 lines) in js/kernel/chaos-injector.js:3", "shortDescription": {"text": "Commented-code block (7 lines) in js/kernel/chaos-injector.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dd7516b3858a27dc", "name": "Commented-code block (6 lines) in js/kernel/drift-detector.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in js/kernel/drift-detector.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-261d6ca284ad76db", "name": "Commented-code block (5 lines) in js/kernel/self-upgrader.js:7", "shortDescription": {"text": "Commented-code block (5 lines) in js/kernel/self-upgrader.js: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-39f4f9e45201351e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 js/kernel/self-upgrader.js:23", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/kernel/self-upgrader.js:23"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-30d473a59e8a9bb5", "name": "Commented-code block (6 lines) in js/kernel/value-lock.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in js/kernel/value-lock.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d1b88ccbe1d8588a", "name": "Commented-code block (9 lines) in js/kernel/macro-recorder.js:9", "shortDescription": {"text": "Commented-code block (9 lines) in js/kernel/macro-recorder.js:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-31678721ea9e4aa7", "name": "Commented-code block (11 lines) in js/kernel/skill-parser.js:7", "shortDescription": {"text": "Commented-code block (11 lines) in js/kernel/skill-parser.js: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-5b7c17356800856f", "name": "Commented-code block (6 lines) in js/kernel/sequence-observer.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in js/kernel/sequence-observer.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-02975387af9b9c3a", "name": "Commented-code block (5 lines) in js/kernel/toy-stubs.js:5", "shortDescription": {"text": "Commented-code block (5 lines) in js/kernel/toy-stubs.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-60feaf878e562f69", "name": "Commented-code block (7 lines) in js/kernel/generated-app-runner.js:7", "shortDescription": {"text": "Commented-code block (7 lines) in js/kernel/generated-app-runner.js: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-51e9429ee7f0d99a", "name": "Commented-code block (5 lines) in js/kernel/notifications.js:174", "shortDescription": {"text": "Commented-code block (5 lines) in js/kernel/notifications.js:174"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f397873fb383832e", "name": "Commented-code block (13 lines) in js/kernel/app-generation-pipeline.js:8", "shortDescription": {"text": "Commented-code block (13 lines) in js/kernel/app-generation-pipeline.js:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-67d9489339be9bc4", "name": "Commented-code block (6 lines) in js/kernel/skill-scheduler.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in js/kernel/skill-scheduler.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e5fc8d5a4dd39b8c", "name": "Commented-code block (7 lines) in js/kernel/red-team.js:3", "shortDescription": {"text": "Commented-code block (7 lines) in js/kernel/red-team.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-61c3f9b9ca2b3cbd", "name": "Commented-code block (5 lines) in js/kernel/conversation-memory.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in js/kernel/conversation-memory.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-39cfffd51b240bd8", "name": "Commented-code block (8 lines) in js/kernel/intent-parser.js:7", "shortDescription": {"text": "Commented-code block (8 lines) in js/kernel/intent-parser.js: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-ce797179a04c6043", "name": "Commented-code block (5 lines) in js/kernel/generated-app-loader.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in js/kernel/generated-app-loader.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-35330fdf8bdb1ed9", "name": "Commented-code block (5 lines) in js/kernel/rubber-stamp-tracker.js:8", "shortDescription": {"text": "Commented-code block (5 lines) in js/kernel/rubber-stamp-tracker.js:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e8177504953923ba", "name": "Commented-code block (5 lines) in js/kernel/golden-check.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in js/kernel/golden-check.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e6bac88eba5257e2", "name": "Commented-code block (5 lines) in js/kernel/skill-proposer.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in js/kernel/skill-proposer.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-05b47fce82432fad", "name": "Commented-code block (7 lines) in js/kernel/graph-query.js:10", "shortDescription": {"text": "Commented-code block (7 lines) in js/kernel/graph-query.js:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d98528eaf8581e4e", "name": "Commented-code block (12 lines) in js/kernel/capability-providers.js:3", "shortDescription": {"text": "Commented-code block (12 lines) in js/kernel/capability-providers.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a70db9466b37339c", "name": "Commented-code block (5 lines) in js/kernel/test-generator.js:8", "shortDescription": {"text": "Commented-code block (5 lines) in js/kernel/test-generator.js:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e50e03a4776f0abc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 js/kernel/test-generator.js:325", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/kernel/test-generator.js:325"}, "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-64faaac7db4caa36", "name": "Commented-code block (5 lines) in js/kernel/plan-rehearser.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in js/kernel/plan-rehearser.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4d171049bc2126b9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 js/kernel/healer.js:250", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/kernel/healer.js:250"}, "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-9eb9f4526fb4d0de", "name": "Commented-code block (9 lines) in js/kernel/window-manager.js:5", "shortDescription": {"text": "Commented-code block (9 lines) in js/kernel/window-manager.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-51d34e78cb9b0ee0", "name": "Commented-code block (10 lines) in js/kernel/skill-registry.js:3", "shortDescription": {"text": "Commented-code block (10 lines) in js/kernel/skill-registry.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-58e1360f7376dc0a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 js/kernel/skill-registry.js:198", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/kernel/skill-registry.js:198"}, "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-e9437578b1e62474", "name": "Commented-code block (5 lines) in js/kernel/pen-test.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in js/kernel/pen-test.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dea1bdb8aceb9990", "name": "Commented-code block (6 lines) in js/kernel/adaptation-engine.js:5", "shortDescription": {"text": "Commented-code block (6 lines) in js/kernel/adaptation-engine.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-98f38ba6bc1e6868", "name": "Commented-code block (9 lines) in js/kernel/context-bundle.js:9", "shortDescription": {"text": "Commented-code block (9 lines) in js/kernel/context-bundle.js:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2abb4314f5a8939e", "name": "Commented-code block (9 lines) in js/kernel/budget-manager.js:8", "shortDescription": {"text": "Commented-code block (9 lines) in js/kernel/budget-manager.js:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-883efc8769f2a8c2", "name": "Commented-code block (6 lines) in js/kernel/generation-runner.js:9", "shortDescription": {"text": "Commented-code block (6 lines) in js/kernel/generation-runner.js:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-16dc909feb0b810c", "name": "Commented-code block (6 lines) in js/kernel/selfmod-sandbox.js:8", "shortDescription": {"text": "Commented-code block (6 lines) in js/kernel/selfmod-sandbox.js:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e0a362fb07857887", "name": "Commented-code block (10 lines) in js/kernel/file-system.js:107", "shortDescription": {"text": "Commented-code block (10 lines) in js/kernel/file-system.js:107"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7be7110ae3a676a6", "name": "Commented-code block (9 lines) in js/kernel/calibration-tracker.js:8", "shortDescription": {"text": "Commented-code block (9 lines) in js/kernel/calibration-tracker.js:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-70f5e2402658c448", "name": "Commented-code block (8 lines) in js/kernel/spec-generator.js:12", "shortDescription": {"text": "Commented-code block (8 lines) in js/kernel/spec-generator.js:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6b7d1d6d3c718564", "name": "Commented-code block (5 lines) in js/kernel/code-generator.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in js/kernel/code-generator.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f1adfe205e5a296c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 js/kernel/code-generator.js:293", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/kernel/code-generator.js:293"}, "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-88975385f81aea35", "name": "Commented-code block (7 lines) in js/kernel/intent-planner.js:3", "shortDescription": {"text": "Commented-code block (7 lines) in js/kernel/intent-planner.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-96c29e8130c0e3e7", "name": "Commented-code block (9 lines) in js/kernel/branch-manager.js:8", "shortDescription": {"text": "Commented-code block (9 lines) in js/kernel/branch-manager.js:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-287df7c6f2510913", "name": "Commented-code block (7 lines) in js/kernel/app-promoter.js:11", "shortDescription": {"text": "Commented-code block (7 lines) in js/kernel/app-promoter.js:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4a1bfa8fc47b10a8", "name": "Legacy-named symbol `endOld` in js/kernel/text-learner.js:208", "shortDescription": {"text": "Legacy-named symbol `endOld` in js/kernel/text-learner.js:208"}, "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-e0f085e2bb664758", "name": "Commented-code block (5 lines) in js/kernel/text-learner.js:5", "shortDescription": {"text": "Commented-code block (5 lines) in js/kernel/text-learner.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7b1814b1b475c50b", "name": "Commented-code block (5 lines) in js/kernel/dock-usage-proposer.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in js/kernel/dock-usage-proposer.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-540c2dae983a8182", "name": "Commented-code block (5 lines) in js/kernel/graph-store.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in js/kernel/graph-store.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3a6edb59c448b3e4", "name": "Commented-code block (9 lines) in js/kernel/graph-migration.js:12", "shortDescription": {"text": "Commented-code block (9 lines) in js/kernel/graph-migration.js:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6af439fa0904428f", "name": "Commented-code block (5 lines) in js/kernel/api-surface.lock.js:5", "shortDescription": {"text": "Commented-code block (5 lines) in js/kernel/api-surface.lock.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5a39c4e9a77714c0", "name": "Commented-code block (6 lines) in server/index.js:178", "shortDescription": {"text": "Commented-code block (6 lines) in server/index.js:178"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-892ca47197f0b049", "name": "`fetch()` without try/.catch or AbortSignal \u2014 server/index.js:804", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/index.js:804"}, "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-f1cee8076f5c801d", "name": "Commented-code block (14 lines) in distro/astrion-browser/main.js:3", "shortDescription": {"text": "Commented-code block (14 lines) in distro/astrion-browser/main.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5b3767bca4b2bd33", "name": "Commented-code block (5 lines) in distro/astrion-browser/blocklist.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in distro/astrion-browser/blocklist.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c129d1169d751dbd", "name": "Commented-code block (6 lines) in installer/main.js:16", "shortDescription": {"text": "Commented-code block (6 lines) in installer/main.js:16"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d0b17c8c07a7421d", "name": "8 env vars used in code but missing from .env.example", "shortDescription": {"text": "8 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `ASTRION_BIND`, `ASTRION_OLLAMA_MODEL`, `ASTRION_OLLAMA_URL`, `ASTRION_SELFMOD_DISABLED`, `ASTRION_SERVER`, `HOME`, `PATH`, `USER`. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4b02f25c48cd5045", "name": "Dangling fetch: GET https://api.dictionaryapi.dev/api/v2/entries/en/${encodeURIComponent(w)} (js/apps/dictionary.js:25)", "shortDescription": {"text": "Dangling fetch: GET https://api.dictionaryapi.dev/api/v2/entries/en/${encodeURIComponent(w)} (js/apps/dictionary.js:25)"}, "fullDescription": {"text": "`js/apps/dictionary.js:25` calls `GET https://api.dictionaryapi.dev/api/v2/entries/en/${encodeURIComponent(w)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.dictionaryapi.dev/api/v2/entries/en/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-57ef146cdb9b4179", "name": "Dangling fetch: GET https://api.open-meteo.com/v1/forecast?${params} (js/apps/weather.js:76)", "shortDescription": {"text": "Dangling fetch: GET https://api.open-meteo.com/v1/forecast?${params} (js/apps/weather.js:76)"}, "fullDescription": {"text": "`js/apps/weather.js:76` calls `GET https://api.open-meteo.com/v1/forecast?${params}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.open-meteo.com/v1/forecast`\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-ab088ae6cd3f7fcd", "name": "Dangling fetch: GET https://nominatim.openstreetmap.org/reverse?format=json&lat=${latitude}&lon=${longitude} (js/apps/we", "shortDescription": {"text": "Dangling fetch: GET https://nominatim.openstreetmap.org/reverse?format=json&lat=${latitude}&lon=${longitude} (js/apps/weather.js:109)"}, "fullDescription": {"text": "`js/apps/weather.js:109` calls `GET https://nominatim.openstreetmap.org/reverse?format=json&lat=${latitude}&lon=${longitude}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/nominatim.openstreetmap.org/reverse`\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-9e6dc5f9bbd67c5e", "name": "Dangling fetch: GET https://nominatim.openstreetmap.org/search?format=json&q=${encodeURIComponent(query)}&limit=1 (js/ap", "shortDescription": {"text": "Dangling fetch: GET https://nominatim.openstreetmap.org/search?format=json&q=${encodeURIComponent(query)}&limit=1 (js/apps/maps.js:50)"}, "fullDescription": {"text": "`js/apps/maps.js:50` calls `GET https://nominatim.openstreetmap.org/search?format=json&q=${encodeURIComponent(query)}&limit=1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/nominatim.openstreetmap.org/search`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c7166cf97c6d4c1c", "name": "Dangling fetch: POST /api/${key} (js/shell/control-center.js:202)", "shortDescription": {"text": "Dangling fetch: POST /api/${key} (js/shell/control-center.js:202)"}, "fullDescription": {"text": "`js/shell/control-center.js:202` calls `POST /api/${key}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a32f99465e30da31", "name": "Dangling fetch: GET https://worldtimeapi.org/api/ip (js/shell/menubar.js:342)", "shortDescription": {"text": "Dangling fetch: GET https://worldtimeapi.org/api/ip (js/shell/menubar.js:342)"}, "fullDescription": {"text": "`js/shell/menubar.js:342` calls `GET https://worldtimeapi.org/api/ip` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/worldtimeapi.org/api/ip`\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-fef351745a3823d3", "name": "Dangling fetch: GET https://worldtimeapi.org/api/ip (js/shell/menubar.js:372)", "shortDescription": {"text": "Dangling fetch: GET https://worldtimeapi.org/api/ip (js/shell/menubar.js:372)"}, "fullDescription": {"text": "`js/shell/menubar.js:372` calls `GET https://worldtimeapi.org/api/ip` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/worldtimeapi.org/api/ip`\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-91675ef8abd28bc6", "name": "Dangling fetch: GET /golden.lock.json (js/kernel/drift-detector.js:71)", "shortDescription": {"text": "Dangling fetch: GET /golden.lock.json (js/kernel/drift-detector.js:71)"}, "fullDescription": {"text": "`js/kernel/drift-detector.js:71` calls `GET /golden.lock.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/golden.lock.json`\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-062d71a315a90de7", "name": "Dangling fetch: GET http://x (js/kernel/test-generator.js:325)", "shortDescription": {"text": "Dangling fetch: GET http://x (js/kernel/test-generator.js:325)"}, "fullDescription": {"text": "`js/kernel/test-generator.js:325` calls `GET http://x` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/x`\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-2c6d00462f2078ff", "name": "Dangling fetch: GET /x (js/kernel/code-generator.js:293)", "shortDescription": {"text": "Dangling fetch: GET /x (js/kernel/code-generator.js:293)"}, "fullDescription": {"text": "`js/kernel/code-generator.js:293` calls `GET /x` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/x`\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-9274a20b6e1131cc", "name": "Dangling fetch: GET https://api.github.com/repos/viraajbindra-a11y/Astrion-OS/commits/main (server/index.js:104)", "shortDescription": {"text": "Dangling fetch: GET https://api.github.com/repos/viraajbindra-a11y/Astrion-OS/commits/main (server/index.js:104)"}, "fullDescription": {"text": "`server/index.js:104` calls `GET https://api.github.com/repos/viraajbindra-a11y/Astrion-OS/commits/main` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.github.com/repos/viraajbindra-a11y/astrion-os/commits/main`\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-c8f6803ef0fb0b3a", "name": "Dangling fetch: GET http://localhost:11434/api/tags (server/index.js:186)", "shortDescription": {"text": "Dangling fetch: GET http://localhost:11434/api/tags (server/index.js:186)"}, "fullDescription": {"text": "`server/index.js:186` calls `GET http://localhost:11434/api/tags` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/localhost:11434/api/tags`\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-378cd11fb9e517dc", "name": "Dangling fetch: GET http://localhost:11434/api/tags (server/index.js:224)", "shortDescription": {"text": "Dangling fetch: GET http://localhost:11434/api/tags (server/index.js:224)"}, "fullDescription": {"text": "`server/index.js:224` calls `GET http://localhost:11434/api/tags` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/localhost:11434/api/tags`\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-cd85205883831cdf", "name": "Dangling fetch: POST https://api.anthropic.com/v1/messages (server/index.js:377)", "shortDescription": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (server/index.js:377)"}, "fullDescription": {"text": "`server/index.js:377` calls `POST https://api.anthropic.com/v1/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.anthropic.com/v1/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2bbca353ade32b2f", "name": "Dangling fetch: POST https://api.anthropic.com/v1/messages (installer/main.js:130)", "shortDescription": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (installer/main.js:130)"}, "fullDescription": {"text": "`installer/main.js:130` calls `POST https://api.anthropic.com/v1/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.anthropic.com/v1/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f9cbaeca03571fca", "name": "Dangling fetch: GET /api (installer/app/js/apps/terminal.js:496)", "shortDescription": {"text": "Dangling fetch: GET /api (installer/app/js/apps/terminal.js:496)"}, "fullDescription": {"text": "`installer/app/js/apps/terminal.js:496` calls `GET /api` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/`\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-42a6ec84c4d51539", "name": "Unused endpoint: GET /api/ai/ollama-tags", "shortDescription": {"text": "Unused endpoint: GET /api/ai/ollama-tags"}, "fullDescription": {"text": "`server/index.js` declares `GET /api/ai/ollama-tags` 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-b1e9a960b07c50d5", "name": "Unused endpoint: GET /api/files/search", "shortDescription": {"text": "Unused endpoint: GET /api/files/search"}, "fullDescription": {"text": "`server/index.js` declares `GET /api/files/search` 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-f6153ef7660823bb", "name": "Unused endpoint: GET /api/proxy", "shortDescription": {"text": "Unused endpoint: GET /api/proxy"}, "fullDescription": {"text": "`server/index.js` declares `GET /api/proxy` 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-e716537c750beccc", "name": "Unused endpoint: GET /system-overlay", "shortDescription": {"text": "Unused endpoint: GET /system-overlay"}, "fullDescription": {"text": "`server/index.js` declares `GET /system-overlay` 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-e301650d27191fc5", "name": "Unused endpoint: GET /popup/screensaver", "shortDescription": {"text": "Unused endpoint: GET /popup/screensaver"}, "fullDescription": {"text": "`server/index.js` declares `GET /popup/screensaver` 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-94baf7fd97bd0d31", "name": "Unused endpoint: GET /popup/emoji", "shortDescription": {"text": "Unused endpoint: GET /popup/emoji"}, "fullDescription": {"text": "`server/index.js` declares `GET /popup/emoji` 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-963a66970c568eea", "name": "Unused endpoint: GET /popup/clipboard", "shortDescription": {"text": "Unused endpoint: GET /popup/clipboard"}, "fullDescription": {"text": "`server/index.js` declares `GET /popup/clipboard` 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-e410369b478f7cf1", "name": "Unused endpoint: GET /popup/spotlight", "shortDescription": {"text": "Unused endpoint: GET /popup/spotlight"}, "fullDescription": {"text": "`server/index.js` declares `GET /popup/spotlight` 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-6d2d03441c05d420", "name": "Unused endpoint: GET /app/:appId", "shortDescription": {"text": "Unused endpoint: GET /app/:appId"}, "fullDescription": {"text": "`server/index.js` declares `GET /app/:appId` 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-1a65d6d9873e2219", "name": "Unused endpoint: POST /api/browser/open", "shortDescription": {"text": "Unused endpoint: POST /api/browser/open"}, "fullDescription": {"text": "`server/index.js` declares `POST /api/browser/open` 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-8b84b72557e7615c", "name": "Unused endpoint: GET /api/browser/proxy", "shortDescription": {"text": "Unused endpoint: GET /api/browser/proxy"}, "fullDescription": {"text": "`server/index.js` declares `GET /api/browser/proxy` 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-15c5c3afcab75f98", "name": "Unused endpoint: POST /api/android/install-apk", "shortDescription": {"text": "Unused endpoint: POST /api/android/install-apk"}, "fullDescription": {"text": "`server/index.js` declares `POST /api/android/install-apk` 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-6c94ba68eabe23f8", "name": "Unused endpoint: POST /api/system/shutdown", "shortDescription": {"text": "Unused endpoint: POST /api/system/shutdown"}, "fullDescription": {"text": "`server/index.js` declares `POST /api/system/shutdown` 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-2bb700dffe288236", "name": "Unused endpoint: POST /api/system/restart", "shortDescription": {"text": "Unused endpoint: POST /api/system/restart"}, "fullDescription": {"text": "`server/index.js` declares `POST /api/system/restart` 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-70fdee08cc65d54f", "name": "Unused endpoint: POST /api/system/sleep", "shortDescription": {"text": "Unused endpoint: POST /api/system/sleep"}, "fullDescription": {"text": "`server/index.js` declares `POST /api/system/sleep` 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/22305"}, "properties": {"repository": "viraajbindra-a11y/Astrion-OS", "repoUrl": "https://github.com/viraajbindra-a11y/Astrion-OS", "branch": "main"}, "results": [{"ruleId": "scanner-97446ad46eba3dd4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/boot.js:111"}, "properties": {"repobilityId": "8edfe954e55cc351", "scanner": "scanner-primary", "fingerprint": "97446ad46eba3dd4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1091d564f7fc6434", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 js/apps/sticky-notes.js:41"}, "properties": {"repobilityId": "86cf17ec0f2bde6b", "scanner": "scanner-primary", "fingerprint": "1091d564f7fc6434", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-598d1ed1ecaa8f57", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/apps/live-chat.js:181"}, "properties": {"repobilityId": "f2c5cf6a8587b4c7", "scanner": "scanner-primary", "fingerprint": "598d1ed1ecaa8f57", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4ee038039a32384b", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 js/apps/calculator.js:51"}, "properties": {"repobilityId": "027bcdbfde9cfa6f", "scanner": "scanner-primary", "fingerprint": "4ee038039a32384b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-c7304d396234d8db", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 js/apps/recipe-book.js:92"}, "properties": {"repobilityId": "c89fb3a16565974b", "scanner": "scanner-primary", "fingerprint": "c7304d396234d8db", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-c00fd94967f8aade", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 js/apps/kanban.js:61"}, "properties": {"repobilityId": "f2e2317a7590fa8e", "scanner": "scanner-primary", "fingerprint": "c00fd94967f8aade", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-88796a207b7d7bdf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/apps/messages.js:736"}, "properties": {"repobilityId": "e9ba436270e2c843", "scanner": "scanner-primary", "fingerprint": "88796a207b7d7bdf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-34f8c648285054fe", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 js/apps/countdown.js:45"}, "properties": {"repobilityId": "7ab1a8facc308b51", "scanner": "scanner-primary", "fingerprint": "34f8c648285054fe", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-09e5cfb908910823", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 js/apps/budget.js:24"}, "properties": {"repobilityId": "e3ff4fc38510188e", "scanner": "scanner-primary", "fingerprint": "09e5cfb908910823", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-1ec42ecab0516720", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/lib/safe-math.js:155"}, "properties": {"repobilityId": "fb4e20eaf283c833", "scanner": "scanner-primary", "fingerprint": "1ec42ecab0516720", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-dac433428ca72880", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/shell/chat-panel.js:138"}, "properties": {"repobilityId": "f510960ad30e55ff", "scanner": "scanner-primary", "fingerprint": "dac433428ca72880", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a8e9f132b40c5e4b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/shell/menubar.js:350"}, "properties": {"repobilityId": "54c7065daa82ac4e", "scanner": "scanner-primary", "fingerprint": "a8e9f132b40c5e4b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-762abdd708e85d99", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/shell/spotlight.js:864"}, "properties": {"repobilityId": "88ba9f6f72acc71e", "scanner": "scanner-primary", "fingerprint": "762abdd708e85d99", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9e697aeda5093f96", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/shell/idle-lock.js:36"}, "properties": {"repobilityId": "c2f33e36a6f8a9f3", "scanner": "scanner-primary", "fingerprint": "9e697aeda5093f96", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-68e40172e2354293", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/shell/screensaver.js:28"}, "properties": {"repobilityId": "a00c52df4ac3509b", "scanner": "scanner-primary", "fingerprint": "68e40172e2354293", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2982902804d92713", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/intent-executor.js:139"}, "properties": {"repobilityId": "dd1662b1cfa5c114", "scanner": "scanner-primary", "fingerprint": "2982902804d92713", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e8c175e071f88653", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/selfmod-soak.js:694"}, "properties": {"repobilityId": "ded1d66671c2065a", "scanner": "scanner-primary", "fingerprint": "e8c175e071f88653", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-aa6341c207b7d627", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/predicate-parser.js:364"}, "properties": {"repobilityId": "cdab64cee95d6c8c", "scanner": "scanner-primary", "fingerprint": "aa6341c207b7d627", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-dc78a7b26591f9e7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/test-runner.js:298"}, "properties": {"repobilityId": "2c953ee888503a61", "scanner": "scanner-primary", "fingerprint": "dc78a7b26591f9e7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8e6e18bce9b82380", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/ai-service.js:760"}, "properties": {"repobilityId": "21b759fcb38ad3ba", "scanner": "scanner-primary", "fingerprint": "8e6e18bce9b82380", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-900443d78a24e0a8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/synthetic-proposals.js:204"}, "properties": {"repobilityId": "c323b730bf65d5c4", "scanner": "scanner-primary", "fingerprint": "900443d78a24e0a8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-19c0d0685cc7e565", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/socratic-prompter.js:167"}, "properties": {"repobilityId": "3ffdcdc36ec11e97", "scanner": "scanner-primary", "fingerprint": "19c0d0685cc7e565", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-54f6669574213407", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/chaos-injector.js:209"}, "properties": {"repobilityId": "8cecac9001e615ee", "scanner": "scanner-primary", "fingerprint": "54f6669574213407", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5eda068436b96124", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/drift-detector.js:185"}, "properties": {"repobilityId": "850fab03b8b988ab", "scanner": "scanner-primary", "fingerprint": "5eda068436b96124", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5bff36f31644eba3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/value-lock.js:108"}, "properties": {"repobilityId": "651e78380c193c2a", "scanner": "scanner-primary", "fingerprint": "5bff36f31644eba3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-dec9806e503c463d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/skill-parser.js:338"}, "properties": {"repobilityId": "4023f41bcc7ae57a", "scanner": "scanner-primary", "fingerprint": "dec9806e503c463d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c5cf3ec6139af749", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/skill-scheduler.js:189"}, "properties": {"repobilityId": "8417fc533f6c897e", "scanner": "scanner-primary", "fingerprint": "c5cf3ec6139af749", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f07c028878d99a8b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/red-team.js:236"}, "properties": {"repobilityId": "9b7a316a2fe3455f", "scanner": "scanner-primary", "fingerprint": "f07c028878d99a8b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e176f5630e35ab65", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/conversation-memory.js:188"}, "properties": {"repobilityId": "ea8eacec1f8118da", "scanner": "scanner-primary", "fingerprint": "e176f5630e35ab65", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9e0e38f0f26df334", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/intent-parser.js:658"}, "properties": {"repobilityId": "0067f8e73319c8c3", "scanner": "scanner-primary", "fingerprint": "9e0e38f0f26df334", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d6f6ddc406e52312", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/generated-app-loader.js:180"}, "properties": {"repobilityId": "2729134bd40d8240", "scanner": "scanner-primary", "fingerprint": "d6f6ddc406e52312", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d158e7f45a9330bf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/rubber-stamp-tracker.js:147"}, "properties": {"repobilityId": "73e950a739b8bde2", "scanner": "scanner-primary", "fingerprint": "d158e7f45a9330bf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ebd47400f761f32d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/golden-check.js:70"}, "properties": {"repobilityId": "073ce9962e511036", "scanner": "scanner-primary", "fingerprint": "ebd47400f761f32d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d5faeb4e36b2d0e7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/graph-query.js:855"}, "properties": {"repobilityId": "44652f4c96dcc819", "scanner": "scanner-primary", "fingerprint": "d5faeb4e36b2d0e7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5dabb9caf14d7f32", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/capability-providers.js:1606"}, "properties": {"repobilityId": "6da86402db8dd094", "scanner": "scanner-primary", "fingerprint": "5dabb9caf14d7f32", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8f7339c3876818b8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/test-generator.js:338"}, "properties": {"repobilityId": "99f012530be360e9", "scanner": "scanner-primary", "fingerprint": "8f7339c3876818b8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8859bc4f877f9b01", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/healer.js:60"}, "properties": {"repobilityId": "84ea661259582017", "scanner": "scanner-primary", "fingerprint": "8859bc4f877f9b01", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1a4f1644efe4a665", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/skill-registry.js:258"}, "properties": {"repobilityId": "58f3fe7246dd12fc", "scanner": "scanner-primary", "fingerprint": "1a4f1644efe4a665", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5210b5e03c0987a9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/context-bundle.js:83"}, "properties": {"repobilityId": "ec6a547e52a08e0d", "scanner": "scanner-primary", "fingerprint": "5210b5e03c0987a9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-11961433ef6d9e7a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/budget-manager.js:199"}, "properties": {"repobilityId": "0b3b7509aceca0a7", "scanner": "scanner-primary", "fingerprint": "11961433ef6d9e7a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9d5b8c3c3ad4cb3b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/selfmod-sandbox.js:305"}, "properties": {"repobilityId": "aec61f95ca829c6a", "scanner": "scanner-primary", "fingerprint": "9d5b8c3c3ad4cb3b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-db4d80d7a5cc902c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/calibration-tracker.js:191"}, "properties": {"repobilityId": "20e7f1c23910058e", "scanner": "scanner-primary", "fingerprint": "db4d80d7a5cc902c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f24aebe0b7eb1c3f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/spec-generator.js:333"}, "properties": {"repobilityId": "394309d9e7b87b34", "scanner": "scanner-primary", "fingerprint": "f24aebe0b7eb1c3f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a4ec05fbabafcea4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/code-generator.js:306"}, "properties": {"repobilityId": "946e9429c12b619b", "scanner": "scanner-primary", "fingerprint": "a4ec05fbabafcea4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b1016692b2539223", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/intent-planner.js:421"}, "properties": {"repobilityId": "173392bd593b37de", "scanner": "scanner-primary", "fingerprint": "b1016692b2539223", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ecf11d35a23af145", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/ai-audio-cues.js:67"}, "properties": {"repobilityId": "78e43ac1b1245a6b", "scanner": "scanner-primary", "fingerprint": "ecf11d35a23af145", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-76ae0e297695a7b1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/graph-store.js:1138"}, "properties": {"repobilityId": "7bf3055c98864371", "scanner": "scanner-primary", "fingerprint": "76ae0e297695a7b1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-dec635c4741a76f5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 js/kernel/graph-migration.js:131"}, "properties": {"repobilityId": "1fb3ca34983a3062", "scanner": "scanner-primary", "fingerprint": "dec635c4741a76f5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-73f4f90339f5e30b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/index.js:125"}, "properties": {"repobilityId": "21e6b3de2b3dd856", "scanner": "scanner-primary", "fingerprint": "73f4f90339f5e30b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bcfe3d610348c70f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 installer/main.js:37"}, "properties": {"repobilityId": "611e70642bf3c2e2", "scanner": "scanner-primary", "fingerprint": "bcfe3d610348c70f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c5e11fcd6cb6e52c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 installer/app/js/boot.js:173"}, "properties": {"repobilityId": "3881d15b70bd1de7", "scanner": "scanner-primary", "fingerprint": "c5e11fcd6cb6e52c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-841b182f60aa1c23", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 installer/app/js/apps/terminal.js:516"}, "properties": {"repobilityId": "23fabe99766d4b5a", "scanner": "scanner-primary", "fingerprint": "841b182f60aa1c23", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-00a9b2428f333c59", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 installer/app/js/apps/calculator.js:50"}, "properties": {"repobilityId": "418af469e4fdbc8a", "scanner": "scanner-primary", "fingerprint": "00a9b2428f333c59", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-6adcf9996ebe7bed", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in search.html:61"}, "properties": {"repobilityId": "341cc12a6487d86f", "scanner": "scanner-primary", "fingerprint": "6adcf9996ebe7bed", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "search.html"}, "region": {"startLine": 61}}}]}, {"ruleId": "scanner-7b6b2d258f7db1d4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/voice-memos.js:39"}, "properties": {"repobilityId": "9d10452123b02e8d", "scanner": "scanner-primary", "fingerprint": "7b6b2d258f7db1d4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/voice-memos.js"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-6b8d6d33acb0aecb", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/snake.js:71"}, "properties": {"repobilityId": "8e853a5eca7a7e2d", "scanner": "scanner-primary", "fingerprint": "6b8d6d33acb0aecb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/snake.js"}, "region": {"startLine": 71}}}]}, {"ruleId": "scanner-22dd64dfd4c0c0ba", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/wordle.js:68"}, "properties": {"repobilityId": "fbe06333f1116d2c", "scanner": "scanner-primary", "fingerprint": "22dd64dfd4c0c0ba", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/wordle.js"}, "region": {"startLine": 68}}}]}, {"ruleId": "scanner-cd83edbb8558e5cf", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/stopwatch.js:9"}, "properties": {"repobilityId": "337dab3e23429c50", "scanner": "scanner-primary", "fingerprint": "cd83edbb8558e5cf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/stopwatch.js"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-28d8011204171ca0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/settings.js:64"}, "properties": {"repobilityId": "7900e752f32a5426", "scanner": "scanner-primary", "fingerprint": "28d8011204171ca0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/settings.js"}, "region": {"startLine": 64}}}]}, {"ruleId": "scanner-419486e39ebd1734", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in js/apps/settings.js:890"}, "properties": {"repobilityId": "43903ad99d19d96e", "scanner": "scanner-primary", "fingerprint": "419486e39ebd1734", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/settings.js"}, "region": {"startLine": 890}}}]}, {"ruleId": "scanner-b1695edea3a294e7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/video-editor.js:51"}, "properties": {"repobilityId": "16631d34e2a6062e", "scanner": "scanner-primary", "fingerprint": "b1695edea3a294e7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/video-editor.js"}, "region": {"startLine": 51}}}]}, {"ruleId": "scanner-bcca15f91584ee80", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/dictionary.js:17"}, "properties": {"repobilityId": "e8e9287993b49836", "scanner": "scanner-primary", "fingerprint": "bcca15f91584ee80", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/dictionary.js"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-6dcf68d503f63643", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/quotes.js:25"}, "properties": {"repobilityId": "0f1419bf01286a1c", "scanner": "scanner-primary", "fingerprint": "6dcf68d503f63643", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/quotes.js"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-90a05b0923462c92", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/browser.js:93"}, "properties": {"repobilityId": "0d18fd4bfe996ee5", "scanner": "scanner-primary", "fingerprint": "90a05b0923462c92", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/browser.js"}, "region": {"startLine": 93}}}]}, {"ruleId": "scanner-a287e7da4b817151", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/sticky-notes.js:38"}, "properties": {"repobilityId": "1425c08c59292541", "scanner": "scanner-primary", "fingerprint": "a287e7da4b817151", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/sticky-notes.js"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-264fa17b7446ef63", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/beat-studio.js:97"}, "properties": {"repobilityId": "5383927c5b40fe13", "scanner": "scanner-primary", "fingerprint": "264fa17b7446ef63", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/beat-studio.js"}, "region": {"startLine": 97}}}]}, {"ruleId": "scanner-03ed4d17ac27bef2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/installer.js:20"}, "properties": {"repobilityId": "3db9f2bf91e1a47b", "scanner": "scanner-primary", "fingerprint": "03ed4d17ac27bef2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/installer.js"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-bfe6a2bde1b98749", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/live-chat.js:42"}, "properties": {"repobilityId": "6f72e0a4b04d9c95", "scanner": "scanner-primary", "fingerprint": "bfe6a2bde1b98749", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/live-chat.js"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-97815971924f7d99", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/sudoku.js:84"}, "properties": {"repobilityId": "2f8dabcd3b656164", "scanner": "scanner-primary", "fingerprint": "97815971924f7d99", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/sudoku.js"}, "region": {"startLine": 84}}}]}, {"ruleId": "scanner-f7d045dc46edecd6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/timer.js:12"}, "properties": {"repobilityId": "f6c8f313845b1049", "scanner": "scanner-primary", "fingerprint": "f7d045dc46edecd6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/timer.js"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-0b6cfae27a07e03e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/speed-test.js:23"}, "properties": {"repobilityId": "3e4e3fd517a9dcd3", "scanner": "scanner-primary", "fingerprint": "0b6cfae27a07e03e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/speed-test.js"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-5ea9104ee6956181", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/terminal.js:22"}, "properties": {"repobilityId": "daf849157c7e8927", "scanner": "scanner-primary", "fingerprint": "5ea9104ee6956181", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/terminal.js"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-dc8fc9c899027d97", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/color-picker.js:28"}, "properties": {"repobilityId": "71f9bb2fc807c948", "scanner": "scanner-primary", "fingerprint": "dc8fc9c899027d97", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/color-picker.js"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-2025fb0c6cf47248", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/habit-tracker.js:39"}, "properties": {"repobilityId": "cba5238ee4758f00", "scanner": "scanner-primary", "fingerprint": "2025fb0c6cf47248", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/habit-tracker.js"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-27b77ca4ec59e744", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/tic-tac-toe.js:61"}, "properties": {"repobilityId": "1717183bcd65eb5f", "scanner": "scanner-primary", "fingerprint": "27b77ca4ec59e744", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/tic-tac-toe.js"}, "region": {"startLine": 61}}}]}, {"ruleId": "scanner-db576106a61db8ac", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/appstore.js:94"}, "properties": {"repobilityId": "ba74d67e683945a4", "scanner": "scanner-primary", "fingerprint": "db576106a61db8ac", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/appstore.js"}, "region": {"startLine": 94}}}]}, {"ruleId": "scanner-14b8fee0b22f5169", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/rock-paper-scissors.js:38"}, "properties": {"repobilityId": "2324608abcb48b88", "scanner": "scanner-primary", "fingerprint": "14b8fee0b22f5169", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/rock-paper-scissors.js"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-edda44180561e1e3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/journal.js:13"}, "properties": {"repobilityId": "4b87af135b00a59d", "scanner": "scanner-primary", "fingerprint": "edda44180561e1e3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/journal.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-cedbe0f4075e7ac5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/ai-art.js:244"}, "properties": {"repobilityId": "26015ce179d96896", "scanner": "scanner-primary", "fingerprint": "cedbe0f4075e7ac5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/ai-art.js"}, "region": {"startLine": 244}}}]}, {"ruleId": "scanner-6e9bd31b543118fc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/random-facts.js:65"}, "properties": {"repobilityId": "f2ca1fad81f72fa7", "scanner": "scanner-primary", "fingerprint": "6e9bd31b543118fc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/random-facts.js"}, "region": {"startLine": 65}}}]}, {"ruleId": "scanner-3ca6f0ce38d5d934", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/calculator.js:29"}, "properties": {"repobilityId": "e5fd1642ec09dcfb", "scanner": "scanner-primary", "fingerprint": "3ca6f0ce38d5d934", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/calculator.js"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-7a0a50717cb1cb58", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/trash.js:61"}, "properties": {"repobilityId": "0dc5dc2f4ca294f7", "scanner": "scanner-primary", "fingerprint": "7a0a50717cb1cb58", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/trash.js"}, "region": {"startLine": 61}}}]}, {"ruleId": "scanner-08bdea50c817688a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/draw.js:37"}, "properties": {"repobilityId": "4c86290da48ca00c", "scanner": "scanner-primary", "fingerprint": "08bdea50c817688a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/draw.js"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-dc4be01574ab3313", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/todo.js:48"}, "properties": {"repobilityId": "fe0a4773fc25509d", "scanner": "scanner-primary", "fingerprint": "dc4be01574ab3313", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/todo.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-457cf86d4105ec5b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/music.js:511"}, "properties": {"repobilityId": "eeb7d29428352419", "scanner": "scanner-primary", "fingerprint": "457cf86d4105ec5b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/music.js"}, "region": {"startLine": 511}}}]}, {"ruleId": "scanner-91de6e277d383e9d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/system-info.js:18"}, "properties": {"repobilityId": "7fad7f136502e9c1", "scanner": "scanner-primary", "fingerprint": "91de6e277d383e9d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/system-info.js"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-d50cad74714209bf", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/minesweeper.js:77"}, "properties": {"repobilityId": "99764bbd7cded93c", "scanner": "scanner-primary", "fingerprint": "d50cad74714209bf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/minesweeper.js"}, "region": {"startLine": 77}}}]}, {"ruleId": "scanner-1274074cfecdd409", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/chess.js:475"}, "properties": {"repobilityId": "3bb816d7479eb141", "scanner": "scanner-primary", "fingerprint": "1274074cfecdd409", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/chess.js"}, "region": {"startLine": 475}}}]}, {"ruleId": "scanner-f4b2a724f8f0f994", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/2048.js:213"}, "properties": {"repobilityId": "dd742aa18bbfe5e9", "scanner": "scanner-primary", "fingerprint": "f4b2a724f8f0f994", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/2048.js"}, "region": {"startLine": 213}}}]}, {"ruleId": "scanner-cb10ac02c75c1f13", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/adaptations.js:62"}, "properties": {"repobilityId": "ef914c6dc0dd3b40", "scanner": "scanner-primary", "fingerprint": "cb10ac02c75c1f13", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/adaptations.js"}, "region": {"startLine": 62}}}]}, {"ruleId": "scanner-1c6a25483edae0ed", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/emoji-kitchen.js:74"}, "properties": {"repobilityId": "6c944a3c0e516e43", "scanner": "scanner-primary", "fingerprint": "1c6a25483edae0ed", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/emoji-kitchen.js"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-c3d7d1e8ad3dcfb5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/password-gen.js:9"}, "properties": {"repobilityId": "e0f59d00189084d3", "scanner": "scanner-primary", "fingerprint": "c3d7d1e8ad3dcfb5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/password-gen.js"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-0eae165e6a37f814", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/reaction-test.js:66"}, "properties": {"repobilityId": "ba54027a7ec916db", "scanner": "scanner-primary", "fingerprint": "0eae165e6a37f814", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/reaction-test.js"}, "region": {"startLine": 66}}}]}, {"ruleId": "scanner-22a142e30cba2752", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/recipe-book.js:66"}, "properties": {"repobilityId": "67c230e1ae2a55b2", "scanner": "scanner-primary", "fingerprint": "22a142e30cba2752", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/recipe-book.js"}, "region": {"startLine": 66}}}]}, {"ruleId": "scanner-8b9664ef9f568532", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/pomodoro.js:38"}, "properties": {"repobilityId": "66e050d8c1a3547d", "scanner": "scanner-primary", "fingerprint": "8b9664ef9f568532", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/pomodoro.js"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-155519fca936f3ee", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in js/apps/pomodoro.js:117"}, "properties": {"repobilityId": "0081aa477eebbc21", "scanner": "scanner-primary", "fingerprint": "155519fca936f3ee", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/pomodoro.js"}, "region": {"startLine": 117}}}]}, {"ruleId": "scanner-39b1bcb2a22b89f6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/kanban.js:47"}, "properties": {"repobilityId": "af09a09731e59373", "scanner": "scanner-primary", "fingerprint": "39b1bcb2a22b89f6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/kanban.js"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-eb9c127d5e3d20bf", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/messages.js:207"}, "properties": {"repobilityId": "aaaaed1f0a6d7e0e", "scanner": "scanner-primary", "fingerprint": "eb9c127d5e3d20bf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/messages.js"}, "region": {"startLine": 207}}}]}, {"ruleId": "scanner-5e534e1d4f40835e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/youtube.js:28"}, "properties": {"repobilityId": "18d1ff81c17691a5", "scanner": "scanner-primary", "fingerprint": "5e534e1d4f40835e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/youtube.js"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-853098c5892d7213", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/countdown.js:42"}, "properties": {"repobilityId": "4326c7f9de0d851d", "scanner": "scanner-primary", "fingerprint": "853098c5892d7213", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/countdown.js"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-a6f17aa5cd684611", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/weather.js:187"}, "properties": {"repobilityId": "e8ddf8147dc79413", "scanner": "scanner-primary", "fingerprint": "a6f17aa5cd684611", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/weather.js"}, "region": {"startLine": 187}}}]}, {"ruleId": "scanner-89a2bf2ea7e7d56e", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/ai-writer.js:45"}, "properties": {"repobilityId": "486198ad09fe2be8", "scanner": "scanner-primary", "fingerprint": "89a2bf2ea7e7d56e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/ai-writer.js"}, "region": {"startLine": 45}}}]}, {"ruleId": "scanner-c624bf02ebfc8111", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/maps.js:19"}, "properties": {"repobilityId": "a0bdf8783274c526", "scanner": "scanner-primary", "fingerprint": "c624bf02ebfc8111", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/maps.js"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-b36f085b02dd6183", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/activity-monitor.js:37"}, "properties": {"repobilityId": "4079572946b3e0ac", "scanner": "scanner-primary", "fingerprint": "b36f085b02dd6183", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/activity-monitor.js"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-883788a64a69a50d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/translator.js:23"}, "properties": {"repobilityId": "d70b3ab5501a8463", "scanner": "scanner-primary", "fingerprint": "883788a64a69a50d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/translator.js"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-a0d75ee729b24001", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/qr-code.js:7"}, "properties": {"repobilityId": "279cc7f034eee261", "scanner": "scanner-primary", "fingerprint": "a0d75ee729b24001", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/qr-code.js"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-f21e629ab6ede496", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/neon-void.js:10"}, "properties": {"repobilityId": "31a20d1c93d9b096", "scanner": "scanner-primary", "fingerprint": "f21e629ab6ede496", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/neon-void.js"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-9299c64a6a5b830d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/bmi-calc.js:33"}, "properties": {"repobilityId": "3459a68e40dd6a95", "scanner": "scanner-primary", "fingerprint": "9299c64a6a5b830d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/bmi-calc.js"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-3f27f43cfade017c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/soundboard.js:94"}, "properties": {"repobilityId": "0e3fc5c4a5a6338b", "scanner": "scanner-primary", "fingerprint": "3f27f43cfade017c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/soundboard.js"}, "region": {"startLine": 94}}}]}, {"ruleId": "scanner-f472c5065c64f00a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/pdf-viewer.js:20"}, "properties": {"repobilityId": "1e7736bfd13ea2a5", "scanner": "scanner-primary", "fingerprint": "f472c5065c64f00a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/pdf-viewer.js"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-6050646684273ba2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/unit-converter.js:50"}, "properties": {"repobilityId": "5bcd0b39acdf52d1", "scanner": "scanner-primary", "fingerprint": "6050646684273ba2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/unit-converter.js"}, "region": {"startLine": 50}}}]}, {"ruleId": "scanner-6ecff6b5cd9faa16", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/color-palette.js:86"}, "properties": {"repobilityId": "17fd09becac0b8c0", "scanner": "scanner-primary", "fingerprint": "6ecff6b5cd9faa16", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/color-palette.js"}, "region": {"startLine": 86}}}]}, {"ruleId": "scanner-125fc0982630a934", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/screen-recorder.js:36"}, "properties": {"repobilityId": "5ccb65fe70fc37be", "scanner": "scanner-primary", "fingerprint": "125fc0982630a934", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/screen-recorder.js"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-b1baaed3674a11b4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/notes.js:62"}, "properties": {"repobilityId": "4945b33aeeb456a4", "scanner": "scanner-primary", "fingerprint": "b1baaed3674a11b4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/notes.js"}, "region": {"startLine": 62}}}]}, {"ruleId": "scanner-c9c9b0bf4372056f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/meditation.js:41"}, "properties": {"repobilityId": "41ca5cd7e9f80d58", "scanner": "scanner-primary", "fingerprint": "c9c9b0bf4372056f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/meditation.js"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-fb59a1008e479387", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/pixel-art.js:37"}, "properties": {"repobilityId": "1d8f378886130ff8", "scanner": "scanner-primary", "fingerprint": "fb59a1008e479387", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/pixel-art.js"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-b6f007e770491cc9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/finder.js:33"}, "properties": {"repobilityId": "e350f54a14fe52a5", "scanner": "scanner-primary", "fingerprint": "b6f007e770491cc9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/finder.js"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-2b2055c7d0c333c8", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/video-player.js:18"}, "properties": {"repobilityId": "69c6453143bea638", "scanner": "scanner-primary", "fingerprint": "2b2055c7d0c333c8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/video-player.js"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-5e48025d21c50a22", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/animate.js:171"}, "properties": {"repobilityId": "14118cb2d69f84e3", "scanner": "scanner-primary", "fingerprint": "5e48025d21c50a22", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/animate.js"}, "region": {"startLine": 171}}}]}, {"ruleId": "scanner-31a0a7df831ed683", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/contacts.js:38"}, "properties": {"repobilityId": "7420d431a093c0e1", "scanner": "scanner-primary", "fingerprint": "31a0a7df831ed683", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/contacts.js"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-eb0f0396043af6fd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/reminders.js:119"}, "properties": {"repobilityId": "46e4dc8b517734db", "scanner": "scanner-primary", "fingerprint": "eb0f0396043af6fd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/reminders.js"}, "region": {"startLine": 119}}}]}, {"ruleId": "scanner-0bec41c70fe60894", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/calendar.js:34"}, "properties": {"repobilityId": "867a9d3b9d49d5e4", "scanner": "scanner-primary", "fingerprint": "0bec41c70fe60894", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/calendar.js"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-0e924af9ea35689c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/photos.js:48"}, "properties": {"repobilityId": "2db8e7608e08dfbe", "scanner": "scanner-primary", "fingerprint": "0e924af9ea35689c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/photos.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-75267460f9e75d06", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/clock.js:34"}, "properties": {"repobilityId": "afda46f43abfbb52", "scanner": "scanner-primary", "fingerprint": "75267460f9e75d06", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/clock.js"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-cb76f7c4740dae03", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/whiteboard.js:6"}, "properties": {"repobilityId": "c5921c139f704d20", "scanner": "scanner-primary", "fingerprint": "cb76f7c4740dae03", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/whiteboard.js"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-72742f724932a357", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/text-editor.js:155"}, "properties": {"repobilityId": "654c6f3dd63bb988", "scanner": "scanner-primary", "fingerprint": "72742f724932a357", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/text-editor.js"}, "region": {"startLine": 155}}}]}, {"ruleId": "scanner-216480aab18a3cb0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/markdown.js:6"}, "properties": {"repobilityId": "224230b12a6f07e6", "scanner": "scanner-primary", "fingerprint": "216480aab18a3cb0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/markdown.js"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-eb46b0e2bbff72ee", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/typing-test.js:9"}, "properties": {"repobilityId": "2a4148d5cd7d1dbf", "scanner": "scanner-primary", "fingerprint": "eb46b0e2bbff72ee", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/typing-test.js"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-ee8696d37fb29d61", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/flashcards.js:13"}, "properties": {"repobilityId": "7b8916b39a467911", "scanner": "scanner-primary", "fingerprint": "ee8696d37fb29d61", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/flashcards.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-d5e3e196c5fee933", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/healer-log.js:45"}, "properties": {"repobilityId": "0aa8929f386742fb", "scanner": "scanner-primary", "fingerprint": "d5e3e196c5fee933", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/healer-log.js"}, "region": {"startLine": 45}}}]}, {"ruleId": "scanner-1bba2e8977fd5870", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/budget.js:14"}, "properties": {"repobilityId": "db3b8cb0c136996c", "scanner": "scanner-primary", "fingerprint": "1bba2e8977fd5870", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/budget.js"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-9a2cc0d2a5033de3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/apps/vault.js:48"}, "properties": {"repobilityId": "f154b3b800953afe", "scanner": "scanner-primary", "fingerprint": "9a2cc0d2a5033de3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/apps/vault.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-57a363d947e10549", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/lib/dialog.js:9"}, "properties": {"repobilityId": "99a09eee7ffa6832", "scanner": "scanner-primary", "fingerprint": "57a363d947e10549", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/lib/dialog.js"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-61773df686aaabc3", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in js/lib/safe-math.js:148"}, "properties": {"repobilityId": "0ccda39c0f0e207b", "scanner": "scanner-primary", "fingerprint": "61773df686aaabc3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/lib/safe-math.js"}, "region": {"startLine": 148}}}]}, {"ruleId": "scanner-f11316d7e076221a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/lock-screen.js:35"}, "properties": {"repobilityId": "3317eafb79daf207", "scanner": "scanner-primary", "fingerprint": "f11316d7e076221a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/shell/lock-screen.js"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-5fe99cc93c17952d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/widgets.js:156"}, "properties": {"repobilityId": "a00206c53938dd6f", "scanner": "scanner-primary", "fingerprint": "5fe99cc93c17952d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/shell/widgets.js"}, "region": {"startLine": 156}}}]}, {"ruleId": "scanner-af04d3fd3f700b19", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/control-center.js:40"}, "properties": {"repobilityId": "06e122e36f41837c", "scanner": "scanner-primary", "fingerprint": "af04d3fd3f700b19", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/shell/control-center.js"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-6511b249415d2804", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/emoji-picker.js:253"}, "properties": {"repobilityId": "b90cffe330a6b8e8", "scanner": "scanner-primary", "fingerprint": "6511b249415d2804", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/shell/emoji-picker.js"}, "region": {"startLine": 253}}}]}, {"ruleId": "scanner-9e8b4e97dc4ebf93", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/wizard-ai-brain.js:140"}, "properties": {"repobilityId": "83f097b82a15f8fc", "scanner": "scanner-primary", "fingerprint": "9e8b4e97dc4ebf93", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/shell/wizard-ai-brain.js"}, "region": {"startLine": 140}}}]}, {"ruleId": "scanner-7797a5bd5f7ee988", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/volume-hud.js:106"}, "properties": {"repobilityId": "5239b54c3a7ddc2e", "scanner": "scanner-primary", "fingerprint": "7797a5bd5f7ee988", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/shell/volume-hud.js"}, "region": {"startLine": 106}}}]}, {"ruleId": "scanner-29342fd50ade9920", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/launchpad.js:79"}, "properties": {"repobilityId": "fd249bc6fe1c6c85", "scanner": "scanner-primary", "fingerprint": "29342fd50ade9920", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/shell/launchpad.js"}, "region": {"startLine": 79}}}]}, {"ruleId": "scanner-1deadf4355e8320b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/chat-panel.js:178"}, "properties": {"repobilityId": "30fefdde303b501c", "scanner": "scanner-primary", "fingerprint": "1deadf4355e8320b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/shell/chat-panel.js"}, "region": {"startLine": 178}}}]}, {"ruleId": "scanner-aef9da25585d5f10", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/menubar.js:442"}, "properties": {"repobilityId": "da1ce517d6e76a0f", "scanner": "scanner-primary", "fingerprint": "aef9da25585d5f10", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/shell/menubar.js"}, "region": {"startLine": 442}}}]}, {"ruleId": "scanner-929724a7757d267d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/desktop.js:17"}, "properties": {"repobilityId": "911cdebd58535bfc", "scanner": "scanner-primary", "fingerprint": "929724a7757d267d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/shell/desktop.js"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-40b5ff4ca08ac32c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/clipboard-manager.js:125"}, "properties": {"repobilityId": "4edf4d0d0dff472b", "scanner": "scanner-primary", "fingerprint": "40b5ff4ca08ac32c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/shell/clipboard-manager.js"}, "region": {"startLine": 125}}}]}, {"ruleId": "scanner-c3d47fbd9a446bb0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/focus-mode.js:88"}, "properties": {"repobilityId": "a63fff7df04cbb46", "scanner": "scanner-primary", "fingerprint": "c3d47fbd9a446bb0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/shell/focus-mode.js"}, "region": {"startLine": 88}}}]}, {"ruleId": "scanner-282b1078ef27376b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/wifi-picker.js:45"}, "properties": {"repobilityId": "93e59591bbbd5b4a", "scanner": "scanner-primary", "fingerprint": "282b1078ef27376b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/shell/wifi-picker.js"}, "region": {"startLine": 45}}}]}, {"ruleId": "scanner-55b26f1dcf46082d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/bluetooth-picker.js:33"}, "properties": {"repobilityId": "a7994fa1871320e5", "scanner": "scanner-primary", "fingerprint": "55b26f1dcf46082d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/shell/bluetooth-picker.js"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-7e3b8971c7875eb7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/quick-look.js:80"}, "properties": {"repobilityId": "8a4ccc6b219acabc", "scanner": "scanner-primary", "fingerprint": "7e3b8971c7875eb7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/shell/quick-look.js"}, "region": {"startLine": 80}}}]}, {"ruleId": "scanner-f087c73a7d13072d", "level": "error", "message": {"text": "Possible secret in js/shell/spotlight.js"}, "properties": {"repobilityId": "a9184537395f6335", "scanner": "scanner-primary", "fingerprint": "f087c73a7d13072d", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/shell/spotlight.js"}, "region": {"startLine": 1582}}}]}, {"ruleId": "scanner-f22c4d91332851d0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/spotlight.js:114"}, "properties": {"repobilityId": "c45183f4b3679ad4", "scanner": "scanner-primary", "fingerprint": "f22c4d91332851d0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/shell/spotlight.js"}, "region": {"startLine": 114}}}]}, {"ruleId": "scanner-51583f30ac3e88c7", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in js/shell/spotlight.js:400"}, "properties": {"repobilityId": "997b566ba5461dca", "scanner": "scanner-primary", "fingerprint": "51583f30ac3e88c7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/shell/spotlight.js"}, "region": {"startLine": 400}}}]}, {"ruleId": "scanner-5077fa22b57ebebc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/shortcuts-overlay.js:48"}, "properties": {"repobilityId": "29724e1268f16a18", "scanner": "scanner-primary", "fingerprint": "5077fa22b57ebebc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/shell/shortcuts-overlay.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-445533240e1796bf", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/spaces.js:141"}, "properties": {"repobilityId": "3e4f6d1701bccbf3", "scanner": "scanner-primary", "fingerprint": "445533240e1796bf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/shell/spaces.js"}, "region": {"startLine": 141}}}]}, {"ruleId": "scanner-4c9eb7dcbe4a9204", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/setup-wizard.js:96"}, "properties": {"repobilityId": "e77ed8448af6df48", "scanner": "scanner-primary", "fingerprint": "4c9eb7dcbe4a9204", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/shell/setup-wizard.js"}, "region": {"startLine": 96}}}]}, {"ruleId": "scanner-e438c1466944ce46", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/screensaver.js:107"}, "properties": {"repobilityId": "e9385e846d1a9ab4", "scanner": "scanner-primary", "fingerprint": "e438c1466944ce46", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/shell/screensaver.js"}, "region": {"startLine": 107}}}]}, {"ruleId": "scanner-aaba9782bf015c18", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/shell/dock.js:134"}, "properties": {"repobilityId": "04ccd03733bbdd46", "scanner": "scanner-primary", "fingerprint": "aaba9782bf015c18", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/shell/dock.js"}, "region": {"startLine": 134}}}]}, {"ruleId": "scanner-fea0b1c75bdec1f9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/kernel/app-stubs.js:99"}, "properties": {"repobilityId": "b3f1d43c44996560", "scanner": "scanner-primary", "fingerprint": "fea0b1c75bdec1f9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/kernel/app-stubs.js"}, "region": {"startLine": 99}}}]}, {"ruleId": "scanner-35a98f682ab06dd2", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in js/kernel/synthetic-proposals.js:74"}, "properties": {"repobilityId": "c949aa6cbb7912ef", "scanner": "scanner-primary", "fingerprint": "35a98f682ab06dd2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/kernel/synthetic-proposals.js"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-4dc5fe08fd927c20", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in js/kernel/synthetic-proposals.js:77"}, "properties": {"repobilityId": "aa3e650be003986f", "scanner": "scanner-primary", "fingerprint": "4dc5fe08fd927c20", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/kernel/synthetic-proposals.js"}, "region": {"startLine": 77}}}]}, {"ruleId": "scanner-6c85e2ffeef54e49", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in js/kernel/self-upgrader.js:81"}, "properties": {"repobilityId": "f47921a0d13ad707", "scanner": "scanner-primary", "fingerprint": "6c85e2ffeef54e49", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/kernel/self-upgrader.js"}, "region": {"startLine": 81}}}]}, {"ruleId": "scanner-9db5bf440ed364b3", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in js/kernel/self-upgrader.js:82"}, "properties": {"repobilityId": "5c82cc91e4eeb06a", "scanner": "scanner-primary", "fingerprint": "9db5bf440ed364b3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/kernel/self-upgrader.js"}, "region": {"startLine": 82}}}]}, {"ruleId": "scanner-15c4367d37600d20", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/kernel/permissions.js:91"}, "properties": {"repobilityId": "693e5e5867fed884", "scanner": "scanner-primary", "fingerprint": "15c4367d37600d20", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/kernel/permissions.js"}, "region": {"startLine": 91}}}]}, {"ruleId": "scanner-ee64928e455a9213", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/kernel/toy-stubs.js:70"}, "properties": {"repobilityId": "7df45ad9b4330901", "scanner": "scanner-primary", "fingerprint": "ee64928e455a9213", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/kernel/toy-stubs.js"}, "region": {"startLine": 70}}}]}, {"ruleId": "scanner-c6d3086fca7f1e6f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/kernel/generated-app-runner.js:113"}, "properties": {"repobilityId": "57b3cf395d5cc04e", "scanner": "scanner-primary", "fingerprint": "c6d3086fca7f1e6f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/kernel/generated-app-runner.js"}, "region": {"startLine": 113}}}]}, {"ruleId": "scanner-d89c4b8f2644af94", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/kernel/notifications.js:73"}, "properties": {"repobilityId": "ee605cb0018d3939", "scanner": "scanner-primary", "fingerprint": "d89c4b8f2644af94", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/kernel/notifications.js"}, "region": {"startLine": 73}}}]}, {"ruleId": "scanner-9b54b0775de3977c", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in js/kernel/app-installer.js:77"}, "properties": {"repobilityId": "27debfbea18c0bd7", "scanner": "scanner-primary", "fingerprint": "9b54b0775de3977c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/kernel/app-installer.js"}, "region": {"startLine": 77}}}]}, {"ruleId": "scanner-6026cdbc0c37b947", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/kernel/app-installer.js:28"}, "properties": {"repobilityId": "2658e63406f6ace1", "scanner": "scanner-primary", "fingerprint": "6026cdbc0c37b947", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/kernel/app-installer.js"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-790b16c45c084f44", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/kernel/generated-app-loader.js:141"}, "properties": {"repobilityId": "207b0bd3ae62d937", "scanner": "scanner-primary", "fingerprint": "790b16c45c084f44", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/kernel/generated-app-loader.js"}, "region": {"startLine": 141}}}]}, {"ruleId": "scanner-1fda6778811c7208", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in js/kernel/window-manager.js:170"}, "properties": {"repobilityId": "3e9a72f25da86cf3", "scanner": "scanner-primary", "fingerprint": "1fda6778811c7208", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/kernel/window-manager.js"}, "region": {"startLine": 170}}}]}, {"ruleId": "scanner-f97d6f6a65ed0200", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in js/kernel/pen-test.js:120"}, "properties": {"repobilityId": "dcaeb5a54c7f476f", "scanner": "scanner-primary", "fingerprint": "f97d6f6a65ed0200", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/kernel/pen-test.js"}, "region": {"startLine": 120}}}]}, {"ruleId": "scanner-4cdb05d55a743a0d", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in js/kernel/pen-test.js:121"}, "properties": {"repobilityId": "74927b7d6f716f8b", "scanner": "scanner-primary", "fingerprint": "4cdb05d55a743a0d", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/kernel/pen-test.js"}, "region": {"startLine": 121}}}]}, {"ruleId": "scanner-88b524bda1717f8a", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in js/kernel/selfmod-sandbox.js:122"}, "properties": {"repobilityId": "5922a44b20b6d8b6", "scanner": "scanner-primary", "fingerprint": "88b524bda1717f8a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/kernel/selfmod-sandbox.js"}, "region": {"startLine": 122}}}]}, {"ruleId": "scanner-2dc0fd39059176d0", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in js/kernel/selfmod-sandbox.js:123"}, "properties": {"repobilityId": "c02e069f46a9434e", "scanner": "scanner-primary", "fingerprint": "2dc0fd39059176d0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/kernel/selfmod-sandbox.js"}, "region": {"startLine": 123}}}]}, {"ruleId": "scanner-1de26051ffc27376", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in js/kernel/code-generator.js:67"}, "properties": {"repobilityId": "1c5663a35feb1c41", "scanner": "scanner-primary", "fingerprint": "1de26051ffc27376", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "js/kernel/code-generator.js"}, "region": {"startLine": 67}}}]}, {"ruleId": "scanner-82e65a85216174ce", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in scripts/reset-test-state.html:100"}, "properties": {"repobilityId": "9d1162d08c11aa06", "scanner": "scanner-primary", "fingerprint": "82e65a85216174ce", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/reset-test-state.html"}, "region": {"startLine": 100}}}]}, {"ruleId": "scanner-9896560cb5796795", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in website/index.html:607"}, "properties": {"repobilityId": "e7f2eb6ec4fa4e40", "scanner": "scanner-primary", "fingerprint": "9896560cb5796795", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "website/index.html"}, "region": {"startLine": 607}}}]}, {"ruleId": "scanner-668dbfae126905d5", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in server/index.js:123"}, "properties": {"repobilityId": "42c4f8b614d04607", "scanner": "scanner-primary", "fingerprint": "668dbfae126905d5", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/index.js"}, "region": {"startLine": 123}}}]}, {"ruleId": "scanner-bf8af6a5ec6ce7b8", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in server/index.js:9"}, "properties": {"repobilityId": "52d97e67169cf06a", "scanner": "scanner-primary", "fingerprint": "bf8af6a5ec6ce7b8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/index.js"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-a730b698c20d5118", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in server/index.js:959"}, "properties": {"repobilityId": "6f617980e08e6aa0", "scanner": "scanner-primary", "fingerprint": "a730b698c20d5118", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/index.js"}, "region": {"startLine": 959}}}]}, {"ruleId": "scanner-90f73e0a08713164", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in server/index.js:743"}, "properties": {"repobilityId": "d9e2487a3e052e8b", "scanner": "scanner-primary", "fingerprint": "90f73e0a08713164", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/index.js"}, "region": {"startLine": 743}}}]}, {"ruleId": "scanner-21cc35950ed66558", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in distro/astrion-browser/renderer/browser.js:23"}, "properties": {"repobilityId": "b131adb76646a7c3", "scanner": "scanner-primary", "fingerprint": "21cc35950ed66558", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "distro/astrion-browser/renderer/browser.js"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-fac15b17e49427b9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in distro/astrion-browser/renderer/reader.html:194"}, "properties": {"repobilityId": "8f9b2540f3a4ae8d", "scanner": "scanner-primary", "fingerprint": "fac15b17e49427b9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "distro/astrion-browser/renderer/reader.html"}, "region": {"startLine": 194}}}]}, {"ruleId": "scanner-b3ee19ad66edd4e5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in distro/astrion-browser/renderer/reading-list.html:156"}, "properties": {"repobilityId": "856bf3e3f015caaa", "scanner": "scanner-primary", "fingerprint": "b3ee19ad66edd4e5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "distro/astrion-browser/renderer/reading-list.html"}, "region": {"startLine": 156}}}]}, {"ruleId": "scanner-a463058b945f4db4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in distro/astrion-browser/renderer/history.html:152"}, "properties": {"repobilityId": "164f7a5eb99b21d4", "scanner": "scanner-primary", "fingerprint": "a463058b945f4db4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "distro/astrion-browser/renderer/history.html"}, "region": {"startLine": 152}}}]}, {"ruleId": "scanner-b4c04e30f7fa870d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/settings.js:48"}, "properties": {"repobilityId": "fb0eaa67b1a88bf9", "scanner": "scanner-primary", "fingerprint": "b4c04e30f7fa870d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "installer/app/js/apps/settings.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-b13d1b19aaf5e02b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/browser.js:35"}, "properties": {"repobilityId": "6ade3ddae5942954", "scanner": "scanner-primary", "fingerprint": "b13d1b19aaf5e02b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "installer/app/js/apps/browser.js"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-860b1a22d1fc39f2", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in installer/app/js/apps/terminal.js:515"}, "properties": {"repobilityId": "abc5c643e35789c6", "scanner": "scanner-primary", "fingerprint": "860b1a22d1fc39f2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "installer/app/js/apps/terminal.js"}, "region": {"startLine": 515}}}]}, {"ruleId": "scanner-aaed86c447d912c5", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/terminal.js:26"}, "properties": {"repobilityId": "552357e60d61f6ac", "scanner": "scanner-primary", "fingerprint": "aaed86c447d912c5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "installer/app/js/apps/terminal.js"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-6d92e5bf8a4f8f82", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/appstore.js:93"}, "properties": {"repobilityId": "1bb6548a2df7b465", "scanner": "scanner-primary", "fingerprint": "6d92e5bf8a4f8f82", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "installer/app/js/apps/appstore.js"}, "region": {"startLine": 93}}}]}, {"ruleId": "scanner-76861c5a449ad510", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/calculator.js:28"}, "properties": {"repobilityId": "9b396e314d39afdc", "scanner": "scanner-primary", "fingerprint": "76861c5a449ad510", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "installer/app/js/apps/calculator.js"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-0afccd3546646df6", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/draw.js:37"}, "properties": {"repobilityId": "0bbfb578d7cb6354", "scanner": "scanner-primary", "fingerprint": "0afccd3546646df6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "installer/app/js/apps/draw.js"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-c00112829b20d0c4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/music.js:160"}, "properties": {"repobilityId": "471ba9a1851de8fe", "scanner": "scanner-primary", "fingerprint": "c00112829b20d0c4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "installer/app/js/apps/music.js"}, "region": {"startLine": 160}}}]}, {"ruleId": "scanner-feea003cf82794e0", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/weather.js:54"}, "properties": {"repobilityId": "e0d99586648bb7c3", "scanner": "scanner-primary", "fingerprint": "feea003cf82794e0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "installer/app/js/apps/weather.js"}, "region": {"startLine": 54}}}]}, {"ruleId": "scanner-0f076eeaf93848f3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/activity-monitor.js:26"}, "properties": {"repobilityId": "ae15cf581371e604", "scanner": "scanner-primary", "fingerprint": "0f076eeaf93848f3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "installer/app/js/apps/activity-monitor.js"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-fcdde629d44b1d32", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/notes.js:34"}, "properties": {"repobilityId": "c213ed35e38b331a", "scanner": "scanner-primary", "fingerprint": "fcdde629d44b1d32", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "installer/app/js/apps/notes.js"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-3f23846bd5b19e55", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/finder.js:27"}, "properties": {"repobilityId": "43ab4fa7e43e5cd3", "scanner": "scanner-primary", "fingerprint": "3f23846bd5b19e55", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "installer/app/js/apps/finder.js"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-1fa2f0436cbe4fcd", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/reminders.js:46"}, "properties": {"repobilityId": "ff9a69a09e879592", "scanner": "scanner-primary", "fingerprint": "1fa2f0436cbe4fcd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "installer/app/js/apps/reminders.js"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-7df9e65385140d04", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/calendar.js:34"}, "properties": {"repobilityId": "ec2871e8f7c3c140", "scanner": "scanner-primary", "fingerprint": "7df9e65385140d04", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "installer/app/js/apps/calendar.js"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-43331dec8c5c4700", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/photos.js:48"}, "properties": {"repobilityId": "f5e659f27f005c67", "scanner": "scanner-primary", "fingerprint": "43331dec8c5c4700", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "installer/app/js/apps/photos.js"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-8c5b8568719c9f63", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/clock.js:33"}, "properties": {"repobilityId": "a06bf283b04159a5", "scanner": "scanner-primary", "fingerprint": "8c5b8568719c9f63", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "installer/app/js/apps/clock.js"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-6fb10baac9218ed2", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/apps/text-editor.js:155"}, "properties": {"repobilityId": "a8252c06248f2462", "scanner": "scanner-primary", "fingerprint": "6fb10baac9218ed2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "installer/app/js/apps/text-editor.js"}, "region": {"startLine": 155}}}]}, {"ruleId": "scanner-42f0654dd5fb9693", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/shell/lock-screen.js:33"}, "properties": {"repobilityId": "c3f826597a33fbd8", "scanner": "scanner-primary", "fingerprint": "42f0654dd5fb9693", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "installer/app/js/shell/lock-screen.js"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-e263f065f910c489", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/shell/control-center.js:40"}, "properties": {"repobilityId": "7860ebee860f134c", "scanner": "scanner-primary", "fingerprint": "e263f065f910c489", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "installer/app/js/shell/control-center.js"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-040b00dccb90220a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/shell/launchpad.js:55"}, "properties": {"repobilityId": "7c7c6c1fe92d3085", "scanner": "scanner-primary", "fingerprint": "040b00dccb90220a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "installer/app/js/shell/launchpad.js"}, "region": {"startLine": 55}}}]}, {"ruleId": "scanner-7c2a494073341f2c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/shell/menubar.js:300"}, "properties": {"repobilityId": "26e1a1dd9731e29a", "scanner": "scanner-primary", "fingerprint": "7c2a494073341f2c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "installer/app/js/shell/menubar.js"}, "region": {"startLine": 300}}}]}, {"ruleId": "scanner-8fd86fabefbbcfe9", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/shell/desktop.js:17"}, "properties": {"repobilityId": "6ba9f69a72b9700d", "scanner": "scanner-primary", "fingerprint": "8fd86fabefbbcfe9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "installer/app/js/shell/desktop.js"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-d9772c591e8f6789", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/shell/wifi-picker.js:36"}, "properties": {"repobilityId": "d40bfed8651625ef", "scanner": "scanner-primary", "fingerprint": "d9772c591e8f6789", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "installer/app/js/shell/wifi-picker.js"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-a8037748d953ad0b", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/shell/spotlight.js:37"}, "properties": {"repobilityId": "574be0a7ca20cccb", "scanner": "scanner-primary", "fingerprint": "a8037748d953ad0b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "installer/app/js/shell/spotlight.js"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-42acbcf4662914b3", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/shell/setup-wizard.js:58"}, "properties": {"repobilityId": "6efcb714553626a0", "scanner": "scanner-primary", "fingerprint": "42acbcf4662914b3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "installer/app/js/shell/setup-wizard.js"}, "region": {"startLine": 58}}}]}, {"ruleId": "scanner-fd7ad9e1542400af", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/shell/dock.js:26"}, "properties": {"repobilityId": "51ed02122a6fd1d2", "scanner": "scanner-primary", "fingerprint": "fd7ad9e1542400af", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "installer/app/js/shell/dock.js"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-b190ca41b072fb7c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/kernel/notifications.js:31"}, "properties": {"repobilityId": "83fbb267515a86c9", "scanner": "scanner-primary", "fingerprint": "b190ca41b072fb7c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "installer/app/js/kernel/notifications.js"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-2f8fd7f15e22246b", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in installer/app/js/kernel/app-installer.js:76"}, "properties": {"repobilityId": "24e5e6fa93f4bbff", "scanner": "scanner-primary", "fingerprint": "2f8fd7f15e22246b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "installer/app/js/kernel/app-installer.js"}, "region": {"startLine": 76}}}]}, {"ruleId": "scanner-9e51e66dec249c76", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/kernel/app-installer.js:27"}, "properties": {"repobilityId": "26ff3eed36e1df78", "scanner": "scanner-primary", "fingerprint": "9e51e66dec249c76", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "installer/app/js/kernel/app-installer.js"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-420d66fc38c2e0ce", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in installer/app/js/kernel/window-manager.js:42"}, "properties": {"repobilityId": "08de0b07d3083a87", "scanner": "scanner-primary", "fingerprint": "420d66fc38c2e0ce", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "installer/app/js/kernel/window-manager.js"}, "region": {"startLine": 42}}}]}, {"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-077f344dfe29faa4", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "acd5ebee89f18e0f", "scanner": "scanner-primary", "fingerprint": "077f344dfe29faa4", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/build-kernel.yml"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-077f344dfe29faa4", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "acd5ebee89f18e0f", "scanner": "scanner-primary", "fingerprint": "077f344dfe29faa4", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/build-kernel.yml"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-9fecea1bc50d9e3b", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "91c130a47ca46141", "scanner": "scanner-primary", "fingerprint": "9fecea1bc50d9e3b", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/build-kernel.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-28c4a04bd807da0c", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "419d1ec7943efec2", "scanner": "scanner-primary", "fingerprint": "28c4a04bd807da0c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-ad6701f0a8405e22", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "8384c23520d55657", "scanner": "scanner-primary", "fingerprint": "ad6701f0a8405e22", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e166321bd27611ec", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e3c5ecf7f30e98d7", "scanner": "scanner-primary", "fingerprint": "e166321bd27611ec", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/build-iso.yml"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-6d647634edfe1553", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "5d8fc2a094301fd1", "scanner": "scanner-primary", "fingerprint": "6d647634edfe1553", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/build-iso.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dad138f419869f24", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "40bac13e46ec6785", "scanner": "scanner-primary", "fingerprint": "dad138f419869f24", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/build-desktop.yml"}, "region": {"startLine": 96}}}]}, {"ruleId": "scanner-dad138f419869f24", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "91d0bd6baec9e2e2", "scanner": "scanner-primary", "fingerprint": "dad138f419869f24", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/build-desktop.yml"}, "region": {"startLine": 117}}}]}, {"ruleId": "scanner-dad138f419869f24", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2329c08e46fcd680", "scanner": "scanner-primary", "fingerprint": "dad138f419869f24", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/build-desktop.yml"}, "region": {"startLine": 132}}}]}, {"ruleId": "scanner-27bcea42cba6c545", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "f4ed2ebe4ec9c60b", "scanner": "scanner-primary", "fingerprint": "27bcea42cba6c545", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/build-desktop.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ecba33d1289f543c", "level": "note", "message": {"text": "Very large file: js/apps/settings.js (2014 lines)"}, "properties": {"repobilityId": "06d4f799bdee4586", "scanner": "scanner-primary", "fingerprint": "ecba33d1289f543c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4d7c255360fbe58f", "level": "note", "message": {"text": "Very large file: js/apps/music.js (1266 lines)"}, "properties": {"repobilityId": "836649fe9fdc93d5", "scanner": "scanner-primary", "fingerprint": "4d7c255360fbe58f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-79dd5d0930235b77", "level": "note", "message": {"text": "Very large file: js/shell/chat-panel.js (2075 lines)"}, "properties": {"repobilityId": "544a3233c03d9d01", "scanner": "scanner-primary", "fingerprint": "79dd5d0930235b77", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9b2ea534d1f794f8", "level": "note", "message": {"text": "Very large file: js/shell/spotlight.js (2578 lines)"}, "properties": {"repobilityId": "270b331f96bea5ab", "scanner": "scanner-primary", "fingerprint": "9b2ea534d1f794f8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-30ed14c4496f586d", "level": "note", "message": {"text": "Very large file: js/kernel/capability-providers.js (1612 lines)"}, "properties": {"repobilityId": "310bf0989a5840c3", "scanner": "scanner-primary", "fingerprint": "30ed14c4496f586d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-65db635d9cf89da9", "level": "note", "message": {"text": "Very large file: server/index.js (1859 lines)"}, "properties": {"repobilityId": "4d84f5062adc96c0", "scanner": "scanner-primary", "fingerprint": "65db635d9cf89da9", "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-9e413a2cc0ece797", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: distro/astrion-browser/package.json"}, "properties": {"repobilityId": "2ca9f7d35c9eb507", "scanner": "scanner-primary", "fingerprint": "9e413a2cc0ece797", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "distro/astrion-browser/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "3d7605b99a967c83", "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": "d48d5b7e8b25ce29", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-9d79c4077342a7d0", "level": "warning", "message": {"text": "Runtime service client appears to use placeholder configuration"}, "properties": {"repobilityId": "ab43da2d149c018d", "scanner": "scanner-primary", "fingerprint": "9d79c4077342a7d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "runtime-config", "service-client", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "4d3b7141e3c49b6d", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-11825279136b53a3", "level": "warning", "message": {"text": "CI is configured but no tests are detected"}, "properties": {"repobilityId": "3602dec45131f987", "scanner": "scanner-primary", "fingerprint": "11825279136b53a3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "ci", "config-theater", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "fa73a88cea226438", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "b603734e16aeb388", "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": "3db46c87ff05b0d1", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-9c297a7513370c1d", "level": "none", "message": {"text": "Commented-code block (6 lines) in js/boot.js:32"}, "properties": {"repobilityId": "5830b204a431bb0b", "scanner": "scanner-primary", "fingerprint": "9c297a7513370c1d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-03cda21bc14e36a0", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/apps/settings.js:330"}, "properties": {"repobilityId": "531609d8863ecee2", "scanner": "scanner-primary", "fingerprint": "03cda21bc14e36a0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ec71a23dd776d037", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/apps/settings.js:172"}, "properties": {"repobilityId": "8a4baba5452fdf6c", "scanner": "scanner-primary", "fingerprint": "ec71a23dd776d037", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8a2836ed850c86e1", "level": "none", "message": {"text": "Commented-code block (8 lines) in js/apps/dictionary.js:5"}, "properties": {"repobilityId": "d17ea25e6b641410", "scanner": "scanner-primary", "fingerprint": "8a2836ed850c86e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41f074f3d89f59ba", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/apps/dictionary.js:25"}, "properties": {"repobilityId": "31bbdf6771031575", "scanner": "scanner-primary", "fingerprint": "41f074f3d89f59ba", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7848e53346c44de6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/apps/appstore.js:586"}, "properties": {"repobilityId": "5ed3b12599c0debe", "scanner": "scanner-primary", "fingerprint": "7848e53346c44de6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7a2ba9069487b08c", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/apps/system-info.js:89"}, "properties": {"repobilityId": "56d92bb06461fef7", "scanner": "scanner-primary", "fingerprint": "7a2ba9069487b08c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4dc14ae6a8ecf553", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/apps/chess.js:499"}, "properties": {"repobilityId": "28add7799d5dd629", "scanner": "scanner-primary", "fingerprint": "4dc14ae6a8ecf553", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2871c3a15fc57a06", "level": "none", "message": {"text": "Commented-code block (6 lines) in js/apps/adaptations.js:3"}, "properties": {"repobilityId": "6844047746acec97", "scanner": "scanner-primary", "fingerprint": "2871c3a15fc57a06", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7f8e7085459dfbfe", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/apps/messages.js:1"}, "properties": {"repobilityId": "3f2644027188685a", "scanner": "scanner-primary", "fingerprint": "7f8e7085459dfbfe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f12476c0ab9aaad7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/apps/activity-monitor.js:173"}, "properties": {"repobilityId": "74fd70180b5fae61", "scanner": "scanner-primary", "fingerprint": "f12476c0ab9aaad7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0d9a279596190a13", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/lib/safe-math.js:3"}, "properties": {"repobilityId": "ea3b28fff395b959", "scanner": "scanner-primary", "fingerprint": "0d9a279596190a13", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1056582ab8b6c5db", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/lib/render-md.js:3"}, "properties": {"repobilityId": "75763e6fad546dc0", "scanner": "scanner-primary", "fingerprint": "1056582ab8b6c5db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6f2fed237a92e6af", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/lib/smart-answers.js:98"}, "properties": {"repobilityId": "0790a14d129bc0e7", "scanner": "scanner-primary", "fingerprint": "6f2fed237a92e6af", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f15dfa9060206353", "level": "none", "message": {"text": "Commented-code block (7 lines) in js/lib/safe-html.js:1"}, "properties": {"repobilityId": "e7e48b9f6ca8cb6c", "scanner": "scanner-primary", "fingerprint": "f15dfa9060206353", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-286b053f89645a8b", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/shell/dock-usage-toast.js:3"}, "properties": {"repobilityId": "3d56d5f361381b5f", "scanner": "scanner-primary", "fingerprint": "286b053f89645a8b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2f778f7ef25adcf7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/shell/widgets.js:180"}, "properties": {"repobilityId": "63c8b5cd84135420", "scanner": "scanner-primary", "fingerprint": "2f778f7ef25adcf7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-70e91d7b3cf524fd", "level": "none", "message": {"text": "Commented-code block (7 lines) in js/shell/wizard-ai-brain.js:3"}, "properties": {"repobilityId": "c3b4c83c628cd89e", "scanner": "scanner-primary", "fingerprint": "70e91d7b3cf524fd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4f7a5097e3c7bd9c", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/shell/launchpad.js:12"}, "properties": {"repobilityId": "dd664d1bfb37ec0c", "scanner": "scanner-primary", "fingerprint": "4f7a5097e3c7bd9c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-193349f78c197ff3", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/shell/chat-panel.js:54"}, "properties": {"repobilityId": "d93501ea7a912c64", "scanner": "scanner-primary", "fingerprint": "193349f78c197ff3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c081eaf7cc09db82", "level": "none", "message": {"text": "Commented-code block (6 lines) in js/shell/skill-proposal-toast.js:8"}, "properties": {"repobilityId": "50d6fca92cd110f2", "scanner": "scanner-primary", "fingerprint": "c081eaf7cc09db82", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-26fb650045f0f761", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/shell/bluetooth-picker.js:50"}, "properties": {"repobilityId": "e431b8c8958048af", "scanner": "scanner-primary", "fingerprint": "26fb650045f0f761", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-39f060d960089525", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/shell/spotlight.js:3"}, "properties": {"repobilityId": "af830006ec19351f", "scanner": "scanner-primary", "fingerprint": "39f060d960089525", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c5a78c1aa16ed00", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/shell/text-learner-toast.js:10"}, "properties": {"repobilityId": "c91358017b0ea1e3", "scanner": "scanner-primary", "fingerprint": "4c5a78c1aa16ed00", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c8f528f16457420", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/shell/focus-trap.js:7"}, "properties": {"repobilityId": "04cdf100e5f62628", "scanner": "scanner-primary", "fingerprint": "4c8f528f16457420", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-49c54cb21d922875", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/shell/setup-wizard.js:195"}, "properties": {"repobilityId": "77f4bc13b276937b", "scanner": "scanner-primary", "fingerprint": "49c54cb21d922875", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b0fd7559ef691279", "level": "none", "message": {"text": "Commented-code block (7 lines) in js/kernel/intent-executor.js:11"}, "properties": {"repobilityId": "466a571dafdf6d40", "scanner": "scanner-primary", "fingerprint": "b0fd7559ef691279", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-11162a43d1570087", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/kernel/graph-learner.js:7"}, "properties": {"repobilityId": "7d1c5b07a8383fd7", "scanner": "scanner-primary", "fingerprint": "11162a43d1570087", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-83fa9cddfeb977a8", "level": "none", "message": {"text": "Commented-code block (6 lines) in js/kernel/selfmod-soak.js:7"}, "properties": {"repobilityId": "8b4fc91e878ec72a", "scanner": "scanner-primary", "fingerprint": "83fa9cddfeb977a8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc0f24d0d3559443", "level": "none", "message": {"text": "Commented-code block (7 lines) in js/kernel/app-stubs.js:3"}, "properties": {"repobilityId": "5e94afad54b2709a", "scanner": "scanner-primary", "fingerprint": "cc0f24d0d3559443", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-864341024c159d0e", "level": "none", "message": {"text": "Commented-code block (11 lines) in js/kernel/predicate-parser.js:8"}, "properties": {"repobilityId": "74b995b44947b308", "scanner": "scanner-primary", "fingerprint": "864341024c159d0e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5efa239726ccf7fc", "level": "none", "message": {"text": "Commented-code block (6 lines) in js/kernel/app-categories.js:5"}, "properties": {"repobilityId": "b8816cd2e36aba4e", "scanner": "scanner-primary", "fingerprint": "5efa239726ccf7fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-44fb4808e3e8494b", "level": "none", "message": {"text": "Commented-code block (9 lines) in js/kernel/test-runner.js:8"}, "properties": {"repobilityId": "4b3101efba23724d", "scanner": "scanner-primary", "fingerprint": "44fb4808e3e8494b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c0dee7fcddf8816", "level": "none", "message": {"text": "Commented-code block (7 lines) in js/kernel/usage-tracker.js:6"}, "properties": {"repobilityId": "9c3a38c6a42ab276", "scanner": "scanner-primary", "fingerprint": "0c0dee7fcddf8816", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-23089d9c6137b940", "level": "none", "message": {"text": "Commented-code block (7 lines) in js/kernel/ai-service.js:5"}, "properties": {"repobilityId": "99a507b3b39fd626", "scanner": "scanner-primary", "fingerprint": "23089d9c6137b940", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5468c2f9fbcfbde6", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/kernel/synthetic-proposals.js:3"}, "properties": {"repobilityId": "23f566c9d40e5799", "scanner": "scanner-primary", "fingerprint": "5468c2f9fbcfbde6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5ee26a507b353d50", "level": "none", "message": {"text": "Commented-code block (8 lines) in js/kernel/socratic-prompter.js:3"}, "properties": {"repobilityId": "ab3802eaa971fb12", "scanner": "scanner-primary", "fingerprint": "5ee26a507b353d50", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b650a064af4cfea6", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/kernel/intent-miss-proposer.js:5"}, "properties": {"repobilityId": "6b20a886394c15c9", "scanner": "scanner-primary", "fingerprint": "b650a064af4cfea6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b1f4dccb1d2cf396", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/kernel/operation-interceptor.js:3"}, "properties": {"repobilityId": "af94dc4b7094e5b0", "scanner": "scanner-primary", "fingerprint": "b1f4dccb1d2cf396", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9512ab1cc650956d", "level": "none", "message": {"text": "Commented-code block (9 lines) in js/kernel/capability-api.js:3"}, "properties": {"repobilityId": "e2fde625442c7402", "scanner": "scanner-primary", "fingerprint": "9512ab1cc650956d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-87d02e3466c47cb5", "level": "none", "message": {"text": "Commented-code block (7 lines) in js/kernel/chaos-injector.js:3"}, "properties": {"repobilityId": "03d1309cbd5e8249", "scanner": "scanner-primary", "fingerprint": "87d02e3466c47cb5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dd7516b3858a27dc", "level": "none", "message": {"text": "Commented-code block (6 lines) in js/kernel/drift-detector.js:3"}, "properties": {"repobilityId": "9a9d37f1a3e47451", "scanner": "scanner-primary", "fingerprint": "dd7516b3858a27dc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-261d6ca284ad76db", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/kernel/self-upgrader.js:7"}, "properties": {"repobilityId": "775a0b3b31f17431", "scanner": "scanner-primary", "fingerprint": "261d6ca284ad76db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-39f4f9e45201351e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/kernel/self-upgrader.js:23"}, "properties": {"repobilityId": "8536ecf53b74a36c", "scanner": "scanner-primary", "fingerprint": "39f4f9e45201351e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-30d473a59e8a9bb5", "level": "none", "message": {"text": "Commented-code block (6 lines) in js/kernel/value-lock.js:3"}, "properties": {"repobilityId": "c2762262faccdb72", "scanner": "scanner-primary", "fingerprint": "30d473a59e8a9bb5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d1b88ccbe1d8588a", "level": "none", "message": {"text": "Commented-code block (9 lines) in js/kernel/macro-recorder.js:9"}, "properties": {"repobilityId": "fed68ef3f72929af", "scanner": "scanner-primary", "fingerprint": "d1b88ccbe1d8588a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-31678721ea9e4aa7", "level": "none", "message": {"text": "Commented-code block (11 lines) in js/kernel/skill-parser.js:7"}, "properties": {"repobilityId": "f24e7ac8641b586e", "scanner": "scanner-primary", "fingerprint": "31678721ea9e4aa7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5b7c17356800856f", "level": "none", "message": {"text": "Commented-code block (6 lines) in js/kernel/sequence-observer.js:3"}, "properties": {"repobilityId": "3887c78848c014d6", "scanner": "scanner-primary", "fingerprint": "5b7c17356800856f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-02975387af9b9c3a", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/kernel/toy-stubs.js:5"}, "properties": {"repobilityId": "e9c37172ef8613c5", "scanner": "scanner-primary", "fingerprint": "02975387af9b9c3a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-60feaf878e562f69", "level": "none", "message": {"text": "Commented-code block (7 lines) in js/kernel/generated-app-runner.js:7"}, "properties": {"repobilityId": "71d3b188973df6ac", "scanner": "scanner-primary", "fingerprint": "60feaf878e562f69", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-51e9429ee7f0d99a", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/kernel/notifications.js:174"}, "properties": {"repobilityId": "a504638f3e1b6c30", "scanner": "scanner-primary", "fingerprint": "51e9429ee7f0d99a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f397873fb383832e", "level": "none", "message": {"text": "Commented-code block (13 lines) in js/kernel/app-generation-pipeline.js:8"}, "properties": {"repobilityId": "f27dde2f7a5cf451", "scanner": "scanner-primary", "fingerprint": "f397873fb383832e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67d9489339be9bc4", "level": "none", "message": {"text": "Commented-code block (6 lines) in js/kernel/skill-scheduler.js:3"}, "properties": {"repobilityId": "09a62e21899ab2e8", "scanner": "scanner-primary", "fingerprint": "67d9489339be9bc4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e5fc8d5a4dd39b8c", "level": "none", "message": {"text": "Commented-code block (7 lines) in js/kernel/red-team.js:3"}, "properties": {"repobilityId": "d4d935be02755429", "scanner": "scanner-primary", "fingerprint": "e5fc8d5a4dd39b8c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-61c3f9b9ca2b3cbd", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/kernel/conversation-memory.js:3"}, "properties": {"repobilityId": "d7b7a1474b588e07", "scanner": "scanner-primary", "fingerprint": "61c3f9b9ca2b3cbd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-39cfffd51b240bd8", "level": "none", "message": {"text": "Commented-code block (8 lines) in js/kernel/intent-parser.js:7"}, "properties": {"repobilityId": "fbaaf460c1bf3e03", "scanner": "scanner-primary", "fingerprint": "39cfffd51b240bd8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ce797179a04c6043", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/kernel/generated-app-loader.js:3"}, "properties": {"repobilityId": "1371d9a52bbbe4fe", "scanner": "scanner-primary", "fingerprint": "ce797179a04c6043", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-35330fdf8bdb1ed9", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/kernel/rubber-stamp-tracker.js:8"}, "properties": {"repobilityId": "1d6e9473e95549c7", "scanner": "scanner-primary", "fingerprint": "35330fdf8bdb1ed9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e8177504953923ba", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/kernel/golden-check.js:3"}, "properties": {"repobilityId": "0f71ed592553a692", "scanner": "scanner-primary", "fingerprint": "e8177504953923ba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e6bac88eba5257e2", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/kernel/skill-proposer.js:3"}, "properties": {"repobilityId": "047ca205eabc3fad", "scanner": "scanner-primary", "fingerprint": "e6bac88eba5257e2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-05b47fce82432fad", "level": "none", "message": {"text": "Commented-code block (7 lines) in js/kernel/graph-query.js:10"}, "properties": {"repobilityId": "59a9943a8e8f48d4", "scanner": "scanner-primary", "fingerprint": "05b47fce82432fad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d98528eaf8581e4e", "level": "none", "message": {"text": "Commented-code block (12 lines) in js/kernel/capability-providers.js:3"}, "properties": {"repobilityId": "fa11ed094e653ed3", "scanner": "scanner-primary", "fingerprint": "d98528eaf8581e4e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a70db9466b37339c", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/kernel/test-generator.js:8"}, "properties": {"repobilityId": "70f5cfe56108a0d3", "scanner": "scanner-primary", "fingerprint": "a70db9466b37339c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e50e03a4776f0abc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/kernel/test-generator.js:325"}, "properties": {"repobilityId": "2c76f847785a9b21", "scanner": "scanner-primary", "fingerprint": "e50e03a4776f0abc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-64faaac7db4caa36", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/kernel/plan-rehearser.js:3"}, "properties": {"repobilityId": "088ae7d473be73cb", "scanner": "scanner-primary", "fingerprint": "64faaac7db4caa36", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4d171049bc2126b9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/kernel/healer.js:250"}, "properties": {"repobilityId": "71ebb02740d158e8", "scanner": "scanner-primary", "fingerprint": "4d171049bc2126b9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9eb9f4526fb4d0de", "level": "none", "message": {"text": "Commented-code block (9 lines) in js/kernel/window-manager.js:5"}, "properties": {"repobilityId": "34dbd708d4c79f86", "scanner": "scanner-primary", "fingerprint": "9eb9f4526fb4d0de", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-51d34e78cb9b0ee0", "level": "none", "message": {"text": "Commented-code block (10 lines) in js/kernel/skill-registry.js:3"}, "properties": {"repobilityId": "63650df98c94ba48", "scanner": "scanner-primary", "fingerprint": "51d34e78cb9b0ee0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-58e1360f7376dc0a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/kernel/skill-registry.js:198"}, "properties": {"repobilityId": "5ee49409747e4ad1", "scanner": "scanner-primary", "fingerprint": "58e1360f7376dc0a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e9437578b1e62474", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/kernel/pen-test.js:3"}, "properties": {"repobilityId": "8cb52b7a51051b2d", "scanner": "scanner-primary", "fingerprint": "e9437578b1e62474", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dea1bdb8aceb9990", "level": "none", "message": {"text": "Commented-code block (6 lines) in js/kernel/adaptation-engine.js:5"}, "properties": {"repobilityId": "f8dec6dfd1221f93", "scanner": "scanner-primary", "fingerprint": "dea1bdb8aceb9990", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-98f38ba6bc1e6868", "level": "none", "message": {"text": "Commented-code block (9 lines) in js/kernel/context-bundle.js:9"}, "properties": {"repobilityId": "288e051f3c7f380b", "scanner": "scanner-primary", "fingerprint": "98f38ba6bc1e6868", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2abb4314f5a8939e", "level": "none", "message": {"text": "Commented-code block (9 lines) in js/kernel/budget-manager.js:8"}, "properties": {"repobilityId": "1efec78f41594d1a", "scanner": "scanner-primary", "fingerprint": "2abb4314f5a8939e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-883efc8769f2a8c2", "level": "none", "message": {"text": "Commented-code block (6 lines) in js/kernel/generation-runner.js:9"}, "properties": {"repobilityId": "891124c14ac14dee", "scanner": "scanner-primary", "fingerprint": "883efc8769f2a8c2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-16dc909feb0b810c", "level": "none", "message": {"text": "Commented-code block (6 lines) in js/kernel/selfmod-sandbox.js:8"}, "properties": {"repobilityId": "494f033a80e99760", "scanner": "scanner-primary", "fingerprint": "16dc909feb0b810c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e0a362fb07857887", "level": "none", "message": {"text": "Commented-code block (10 lines) in js/kernel/file-system.js:107"}, "properties": {"repobilityId": "60753aa734e255f8", "scanner": "scanner-primary", "fingerprint": "e0a362fb07857887", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7be7110ae3a676a6", "level": "none", "message": {"text": "Commented-code block (9 lines) in js/kernel/calibration-tracker.js:8"}, "properties": {"repobilityId": "e0cb0841d9041851", "scanner": "scanner-primary", "fingerprint": "7be7110ae3a676a6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-70f5e2402658c448", "level": "none", "message": {"text": "Commented-code block (8 lines) in js/kernel/spec-generator.js:12"}, "properties": {"repobilityId": "71bd808440bba8e2", "scanner": "scanner-primary", "fingerprint": "70f5e2402658c448", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6b7d1d6d3c718564", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/kernel/code-generator.js:3"}, "properties": {"repobilityId": "fa4f794f110f7953", "scanner": "scanner-primary", "fingerprint": "6b7d1d6d3c718564", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1adfe205e5a296c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 js/kernel/code-generator.js:293"}, "properties": {"repobilityId": "aec18d1a67eca825", "scanner": "scanner-primary", "fingerprint": "f1adfe205e5a296c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-88975385f81aea35", "level": "none", "message": {"text": "Commented-code block (7 lines) in js/kernel/intent-planner.js:3"}, "properties": {"repobilityId": "bb439a94c9af4ea5", "scanner": "scanner-primary", "fingerprint": "88975385f81aea35", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96c29e8130c0e3e7", "level": "none", "message": {"text": "Commented-code block (9 lines) in js/kernel/branch-manager.js:8"}, "properties": {"repobilityId": "dba06fb817c1ad44", "scanner": "scanner-primary", "fingerprint": "96c29e8130c0e3e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-287df7c6f2510913", "level": "none", "message": {"text": "Commented-code block (7 lines) in js/kernel/app-promoter.js:11"}, "properties": {"repobilityId": "8adf2eecd1c3172c", "scanner": "scanner-primary", "fingerprint": "287df7c6f2510913", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4a1bfa8fc47b10a8", "level": "note", "message": {"text": "Legacy-named symbol `endOld` in js/kernel/text-learner.js:208"}, "properties": {"repobilityId": "3d40af080c32dcf8", "scanner": "scanner-primary", "fingerprint": "4a1bfa8fc47b10a8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e0f085e2bb664758", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/kernel/text-learner.js:5"}, "properties": {"repobilityId": "b310300d83a11074", "scanner": "scanner-primary", "fingerprint": "e0f085e2bb664758", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b1814b1b475c50b", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/kernel/dock-usage-proposer.js:3"}, "properties": {"repobilityId": "367dd9af456d48f0", "scanner": "scanner-primary", "fingerprint": "7b1814b1b475c50b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-540c2dae983a8182", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/kernel/graph-store.js:3"}, "properties": {"repobilityId": "0b9df1e25c250882", "scanner": "scanner-primary", "fingerprint": "540c2dae983a8182", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3a6edb59c448b3e4", "level": "none", "message": {"text": "Commented-code block (9 lines) in js/kernel/graph-migration.js:12"}, "properties": {"repobilityId": "e5dc955861753029", "scanner": "scanner-primary", "fingerprint": "3a6edb59c448b3e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6af439fa0904428f", "level": "none", "message": {"text": "Commented-code block (5 lines) in js/kernel/api-surface.lock.js:5"}, "properties": {"repobilityId": "9632a52ec453cba6", "scanner": "scanner-primary", "fingerprint": "6af439fa0904428f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5a39c4e9a77714c0", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/index.js:178"}, "properties": {"repobilityId": "a9838f93346703f1", "scanner": "scanner-primary", "fingerprint": "5a39c4e9a77714c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-892ca47197f0b049", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/index.js:804"}, "properties": {"repobilityId": "a790587e921c3f8a", "scanner": "scanner-primary", "fingerprint": "892ca47197f0b049", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f1cee8076f5c801d", "level": "none", "message": {"text": "Commented-code block (14 lines) in distro/astrion-browser/main.js:3"}, "properties": {"repobilityId": "3c2e179970b53004", "scanner": "scanner-primary", "fingerprint": "f1cee8076f5c801d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5b3767bca4b2bd33", "level": "none", "message": {"text": "Commented-code block (5 lines) in distro/astrion-browser/blocklist.js:3"}, "properties": {"repobilityId": "a2b8b9bc24a2540b", "scanner": "scanner-primary", "fingerprint": "5b3767bca4b2bd33", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c129d1169d751dbd", "level": "none", "message": {"text": "Commented-code block (6 lines) in installer/main.js:16"}, "properties": {"repobilityId": "88d98a4031166678", "scanner": "scanner-primary", "fingerprint": "c129d1169d751dbd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d0b17c8c07a7421d", "level": "note", "message": {"text": "8 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "17fe720e8247f9df", "scanner": "scanner-primary", "fingerprint": "d0b17c8c07a7421d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-4b02f25c48cd5045", "level": "error", "message": {"text": "Dangling fetch: GET https://api.dictionaryapi.dev/api/v2/entries/en/${encodeURIComponent(w)} (js/apps/dictionary.js:25)"}, "properties": {"repobilityId": "49c33e8f71d08110", "scanner": "scanner-primary", "fingerprint": "4b02f25c48cd5045", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-57ef146cdb9b4179", "level": "error", "message": {"text": "Dangling fetch: GET https://api.open-meteo.com/v1/forecast?${params} (js/apps/weather.js:76)"}, "properties": {"repobilityId": "8a06bec49b75c43f", "scanner": "scanner-primary", "fingerprint": "57ef146cdb9b4179", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ab088ae6cd3f7fcd", "level": "error", "message": {"text": "Dangling fetch: GET https://nominatim.openstreetmap.org/reverse?format=json&lat=${latitude}&lon=${longitude} (js/apps/weather.js:109)"}, "properties": {"repobilityId": "07a08a29d9f097e6", "scanner": "scanner-primary", "fingerprint": "ab088ae6cd3f7fcd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9e6dc5f9bbd67c5e", "level": "error", "message": {"text": "Dangling fetch: GET https://nominatim.openstreetmap.org/search?format=json&q=${encodeURIComponent(query)}&limit=1 (js/apps/maps.js:50)"}, "properties": {"repobilityId": "41c000561639ae1d", "scanner": "scanner-primary", "fingerprint": "9e6dc5f9bbd67c5e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c7166cf97c6d4c1c", "level": "error", "message": {"text": "Dangling fetch: POST /api/${key} (js/shell/control-center.js:202)"}, "properties": {"repobilityId": "bb5cce49c214a844", "scanner": "scanner-primary", "fingerprint": "c7166cf97c6d4c1c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a32f99465e30da31", "level": "error", "message": {"text": "Dangling fetch: GET https://worldtimeapi.org/api/ip (js/shell/menubar.js:342)"}, "properties": {"repobilityId": "86e54c65d567bd14", "scanner": "scanner-primary", "fingerprint": "a32f99465e30da31", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fef351745a3823d3", "level": "error", "message": {"text": "Dangling fetch: GET https://worldtimeapi.org/api/ip (js/shell/menubar.js:372)"}, "properties": {"repobilityId": "78ffcdaa68c13f80", "scanner": "scanner-primary", "fingerprint": "fef351745a3823d3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-91675ef8abd28bc6", "level": "error", "message": {"text": "Dangling fetch: GET /golden.lock.json (js/kernel/drift-detector.js:71)"}, "properties": {"repobilityId": "acaafe175bb8f94f", "scanner": "scanner-primary", "fingerprint": "91675ef8abd28bc6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-062d71a315a90de7", "level": "error", "message": {"text": "Dangling fetch: GET http://x (js/kernel/test-generator.js:325)"}, "properties": {"repobilityId": "cfd801a78b2737cd", "scanner": "scanner-primary", "fingerprint": "062d71a315a90de7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2c6d00462f2078ff", "level": "error", "message": {"text": "Dangling fetch: GET /x (js/kernel/code-generator.js:293)"}, "properties": {"repobilityId": "c672c102d4ed1201", "scanner": "scanner-primary", "fingerprint": "2c6d00462f2078ff", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-9274a20b6e1131cc", "level": "error", "message": {"text": "Dangling fetch: GET https://api.github.com/repos/viraajbindra-a11y/Astrion-OS/commits/main (server/index.js:104)"}, "properties": {"repobilityId": "7afbd505a11dbeeb", "scanner": "scanner-primary", "fingerprint": "9274a20b6e1131cc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c8f6803ef0fb0b3a", "level": "error", "message": {"text": "Dangling fetch: GET http://localhost:11434/api/tags (server/index.js:186)"}, "properties": {"repobilityId": "eb65fd9ec054c3c4", "scanner": "scanner-primary", "fingerprint": "c8f6803ef0fb0b3a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-378cd11fb9e517dc", "level": "error", "message": {"text": "Dangling fetch: GET http://localhost:11434/api/tags (server/index.js:224)"}, "properties": {"repobilityId": "14c45d0e2546848d", "scanner": "scanner-primary", "fingerprint": "378cd11fb9e517dc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cd85205883831cdf", "level": "error", "message": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (server/index.js:377)"}, "properties": {"repobilityId": "8ab0a3b2aec8b116", "scanner": "scanner-primary", "fingerprint": "cd85205883831cdf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2bbca353ade32b2f", "level": "error", "message": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (installer/main.js:130)"}, "properties": {"repobilityId": "b3bcd4fd8172efae", "scanner": "scanner-primary", "fingerprint": "2bbca353ade32b2f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f9cbaeca03571fca", "level": "error", "message": {"text": "Dangling fetch: GET /api (installer/app/js/apps/terminal.js:496)"}, "properties": {"repobilityId": "94c32a78de29bf0d", "scanner": "scanner-primary", "fingerprint": "f9cbaeca03571fca", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-42a6ec84c4d51539", "level": "note", "message": {"text": "Unused endpoint: GET /api/ai/ollama-tags"}, "properties": {"repobilityId": "5beb9064fd8a4c67", "scanner": "scanner-primary", "fingerprint": "42a6ec84c4d51539", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b1e9a960b07c50d5", "level": "note", "message": {"text": "Unused endpoint: GET /api/files/search"}, "properties": {"repobilityId": "dce20fc709e31522", "scanner": "scanner-primary", "fingerprint": "b1e9a960b07c50d5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f6153ef7660823bb", "level": "note", "message": {"text": "Unused endpoint: GET /api/proxy"}, "properties": {"repobilityId": "7124c164c3ed1428", "scanner": "scanner-primary", "fingerprint": "f6153ef7660823bb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e716537c750beccc", "level": "note", "message": {"text": "Unused endpoint: GET /system-overlay"}, "properties": {"repobilityId": "e430f884dc30452e", "scanner": "scanner-primary", "fingerprint": "e716537c750beccc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e301650d27191fc5", "level": "note", "message": {"text": "Unused endpoint: GET /popup/screensaver"}, "properties": {"repobilityId": "3252a343bb65b16d", "scanner": "scanner-primary", "fingerprint": "e301650d27191fc5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-94baf7fd97bd0d31", "level": "note", "message": {"text": "Unused endpoint: GET /popup/emoji"}, "properties": {"repobilityId": "191e7a22e787022e", "scanner": "scanner-primary", "fingerprint": "94baf7fd97bd0d31", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-963a66970c568eea", "level": "note", "message": {"text": "Unused endpoint: GET /popup/clipboard"}, "properties": {"repobilityId": "6236b50f7ac3ae8e", "scanner": "scanner-primary", "fingerprint": "963a66970c568eea", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e410369b478f7cf1", "level": "note", "message": {"text": "Unused endpoint: GET /popup/spotlight"}, "properties": {"repobilityId": "a60c8b92a6af93a9", "scanner": "scanner-primary", "fingerprint": "e410369b478f7cf1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6d2d03441c05d420", "level": "note", "message": {"text": "Unused endpoint: GET /app/:appId"}, "properties": {"repobilityId": "53a6e8ac92488bad", "scanner": "scanner-primary", "fingerprint": "6d2d03441c05d420", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1a65d6d9873e2219", "level": "note", "message": {"text": "Unused endpoint: POST /api/browser/open"}, "properties": {"repobilityId": "aa64a4df3ace02b6", "scanner": "scanner-primary", "fingerprint": "1a65d6d9873e2219", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8b84b72557e7615c", "level": "note", "message": {"text": "Unused endpoint: GET /api/browser/proxy"}, "properties": {"repobilityId": "512af05bd30d0cf7", "scanner": "scanner-primary", "fingerprint": "8b84b72557e7615c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-15c5c3afcab75f98", "level": "note", "message": {"text": "Unused endpoint: POST /api/android/install-apk"}, "properties": {"repobilityId": "3a77fa1335d935e2", "scanner": "scanner-primary", "fingerprint": "15c5c3afcab75f98", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6c94ba68eabe23f8", "level": "note", "message": {"text": "Unused endpoint: POST /api/system/shutdown"}, "properties": {"repobilityId": "21cc720fd1f33141", "scanner": "scanner-primary", "fingerprint": "6c94ba68eabe23f8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2bb700dffe288236", "level": "note", "message": {"text": "Unused endpoint: POST /api/system/restart"}, "properties": {"repobilityId": "647ba457ade24d97", "scanner": "scanner-primary", "fingerprint": "2bb700dffe288236", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-70fdee08cc65d54f", "level": "note", "message": {"text": "Unused endpoint: POST /api/system/sleep"}, "properties": {"repobilityId": "ed2b5c2dfa148925", "scanner": "scanner-primary", "fingerprint": "70fdee08cc65d54f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}