{"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-98fc97386e4ac624", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/create-app/app.tsx:122", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/create-app/app.tsx:122"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5799af10a71d4afa", "name": "TODO/FIXME marker in shipping code \u2014 frontend/slices/create-app/app.tsx:11", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/slices/create-app/app.tsx:11"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5b44374196d6bd0d", "name": "TODO/FIXME marker in shipping code \u2014 frontend/slices/create-app/components/icon-preview.tsx:4", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/slices/create-app/components/icon-preview.tsx:4"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f93d4c4414ca5361", "name": "TODO/FIXME marker in shipping code \u2014 frontend/slices/create-app/components/glyph-picker.tsx:3", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/slices/create-app/components/glyph-picker.tsx:3"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9c4c254a6425f902", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/auth/components/devices-panel.tsx:92", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/auth/components/devices-panel.tsx:92"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a7ec1ac5142e3799", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/auth/components/login-screen.tsx:89", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/auth/components/login-screen.tsx:89"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4c0e95620b6418cd", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/os-terminal/app.tsx:35", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/os-terminal/app.tsx:35"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6c0c01bb85c3d69e", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/os-terminal/components/pty-terminal.tsx:165", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/os-terminal/components/pty-terminal.tsx:165"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d1695b9273a00cc4", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/os-settings/app.tsx:97", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/os-settings/app.tsx:97"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-684b810484be4e7a", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/os-settings/components/theme-section.tsx:40", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/os-settings/components/theme-section.tsx:40"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5ba3fb32d3db8a69", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/os-settings/components/browser-section.tsx:62", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/os-settings/components/browser-section.tsx:62"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d09dafc64c07e1bf", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/media-viewer/components/viewer-toolbar.tsx:55", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/media-viewer/components/viewer-toolbar.tsx:55"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-143a97a09bbe4bb7", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/media-viewer/components/remote-view.tsx:67", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/media-viewer/components/remote-view.tsx:67"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5567f97f257a3708", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/media-viewer/components/audio-player.tsx:28", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/media-viewer/components/audio-player.tsx:28"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-10cc9b146aec1f5f", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/image-picker/components/image-picker/unsplash-tab.t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/image-picker/components/image-picker/unsplash-tab.tsx:84"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d8ae4a8642efa4fb", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/quicklinks/app.tsx:46", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/quicklinks/app.tsx:46"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2a9eebe384e84d71", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/window.tsx:88", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/window.tsx:88"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-64de2c73d9303ec7", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/mobile-app-library.tsx:101", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/mobile-app-library.tsx:101"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-65e8d39f734be85e", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/dock-parts.tsx:89", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/dock-parts.tsx:89"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7699406eb87ce30f", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/window-tabs.tsx:37", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/window-tabs.tsx:37"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fcb822bc88726875", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/app-launcher.tsx:111", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/app-launcher.tsx:111"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3a1dae9968a8f8f2", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/mobile-shell.tsx:134", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/mobile-shell.tsx:134"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9ce501eadbe1136b", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/window-preview.tsx:95", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/window-preview.tsx:95"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d978bc1a578de79a", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/app-switcher.tsx:90", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/app-switcher.tsx:90"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-186617a68a4b5998", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/mobile-home-parts.tsx:140", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/mobile-home-parts.tsx:140"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2913a1f67568e9f9", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/menu-bar-menus.tsx:149", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/menu-bar-menus.tsx:149"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-73cd30dcdecac28c", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/context-menu.tsx:95", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/context-menu.tsx:95"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dec0a507ae00eb0d", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/window-overview.tsx:79", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/window-overview.tsx:79"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5254cff34e767fa5", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/android/android-shell.ts", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/android/android-shell.tsx:149"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a651d120613db9dc", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/android/android-parts.ts", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/android/android-parts.tsx:88"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cda03fe8ee3ce264", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/windows/start-menu.tsx:4", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/windows/start-menu.tsx:48"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-31b7f5683f7e578e", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/windows/snap-assist.tsx:", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/windows/snap-assist.tsx:97"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-08d0bba775392f6d", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/windows/taskbar.tsx:107", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/windows/taskbar.tsx:107"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-780af32cfc41b79c", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/dashboard/dashboard-part", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/dashboard/dashboard-parts.tsx:42"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9118087dd0855294", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/features/notifications/components/dynamic-", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/features/notifications/components/dynamic-island.tsx:40"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4f7c1d59681dbad1", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/features/widgets/components/mobile-widgets", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/features/widgets/components/mobile-widgets.tsx:67"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-12e6139d5090a26e", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/features/search/components/spotlight-resul", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/features/search/components/spotlight-results.tsx:109"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-771e1dc43750908f", "name": "TODO/FIXME marker in shipping code \u2014 frontend/slices/appshell/features/search/components/spotlight-results.tsx:6", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/slices/appshell/features/search/components/spotlight-results.tsx:6"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-80f284f1b8b31cf4", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/features/clipboard/components/clipboard-ov", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/features/clipboard/components/clipboard-overlay.tsx:88"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-88940ceae3cf7623", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/features/inspector/components/inspector.ts", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/features/inspector/components/inspector.tsx:37"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-66a19a39b567d3f7", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/assistant/components/agent-form.tsx:110", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/assistant/components/agent-form.tsx:110"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a70b59be5bb3ad86", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/assistant/components/form-shell.tsx:29", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/assistant/components/form-shell.tsx:29"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9b047e4ffdf8195b", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/assistant/components/automation-view.tsx:68", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/assistant/components/automation-view.tsx:68"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0f550839fddb69bc", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/system-monitor/app.tsx:88", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/system-monitor/app.tsx:88"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7bd534b2e9224673", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/system-monitor/components/circular-gauge.tsx:50", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/system-monitor/components/circular-gauge.tsx:50"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6f7719689ab7a4ec", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/system-monitor/components/process-table.tsx:64", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/system-monitor/components/process-table.tsx:64"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1cc0386ba0ec649a", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/system-card.tsx:44", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/system-card.tsx:44"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7d72b59d36f873c6", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/store-sidebar.tsx:55", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/store-sidebar.tsx:55"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-57f4ae7a111dff62", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/app-console.tsx:59", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/app-console.tsx:59"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a3b8cab3f1938456", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/store-app-card.tsx:45", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/store-app-card.tsx:45"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e919a8c6d7146463", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/runtime-app.tsx:68", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/runtime-app.tsx:68"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-95885dd3132a5cb0", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/browser/components/bookmark-bar.tsx:28", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/browser/components/bookmark-bar.tsx:28"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-19c2bd237a0335ec", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/browser/components/history-view.tsx:55", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/browser/components/history-view.tsx:55"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-99f02c76e9210af8", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/browser/components/remote-view.tsx:128", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/browser/components/remote-view.tsx:128"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8c4f2de1e0432c8f", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/browser/components/tab-bar.tsx:36", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/browser/components/tab-bar.tsx:36"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b48af59e86ccbe1a", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/browser/components/ai-panel.tsx:89", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/browser/components/ai-panel.tsx:89"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f7dc0d45f0ca56de", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/files-manager/components/upload-bar.tsx:20", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/files-manager/components/upload-bar.tsx:20"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ba0f5d7ed899a94b", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/files-manager/components/file-item.tsx:169", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/files-manager/components/file-item.tsx:169"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-542fb85fc663092b", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/files-manager/components/file-crumbs.tsx:71", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/files-manager/components/file-crumbs.tsx:71"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a49041aca137282b", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/files-manager/components/file-details.tsx:34", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/files-manager/components/file-details.tsx:34"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ff53750a2116ff89", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/files-manager/components/files-sidebar.tsx:81", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/files-manager/components/files-sidebar.tsx:81"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-263b52cfd783b18f", "name": "TODO/FIXME marker in shipping code \u2014 frontend/slices/files-manager/hooks/use-viewport-window.ts:6", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/slices/files-manager/hooks/use-viewport-window.ts:6"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0207874d6b5b5acd", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/image-editor/components/panels/layers-panel.tsx:98", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/image-editor/components/panels/layers-panel.tsx:98"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7a7d69c2d0818c13", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/image-editor/components/panels/properties-panel.tsx", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/image-editor/components/panels/properties-panel.tsx:36"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-306ac7344fd5de98", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/image-editor/components/panels/ai-panel.tsx:85", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/image-editor/components/panels/ai-panel.tsx:85"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4091f42f5922e97c", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/reel-editor/components/files-pane.tsx:163", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/reel-editor/components/files-pane.tsx:163"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d9e74bb81dfdc95b", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/reel-editor/components/file-browser.tsx:156", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/reel-editor/components/file-browser.tsx:156"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-96babb5b9aa4c225", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/reel-editor/components/clip-block.tsx:71", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/reel-editor/components/clip-block.tsx:71"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f31ebf092f03b8c9", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/reel-editor/components/track-head.tsx:52", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/reel-editor/components/track-head.tsx:52"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b24d722ec469cbfe", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/code-editor/components/status-bar.tsx:31", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/code-editor/components/status-bar.tsx:31"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-55a75372a1029b01", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/code-editor/components/tab-strip.tsx:47", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/code-editor/components/tab-strip.tsx:47"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-daee289d470e4808", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/code-editor/components/preview-pane.tsx:32", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/code-editor/components/preview-pane.tsx:32"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-677d0425d5a3a726", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/slices/code-editor/components/editor-surface.tsx:98", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/slices/code-editor/components/editor-surface.tsx:98"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7e19c9a6b32d71c5", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/slices/code-editor/lib/highlight.ts:2", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/slices/code-editor/lib/highlight.ts:2"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7b60aa2d9c0b02a8", "name": "Stray `console.log` in TS/JS \u2014 scripts/approve-device.js:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/approve-device.js:40"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4f56ccc8e21ab327", "name": "`truncate` class without `title=` for hover reveal \u2014 components/shared/file-tree/index.tsx:32", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/shared/file-tree/index.tsx:32"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5e0e8115e68f1035", "name": "`truncate` class without `title=` for hover reveal \u2014 components/shared/file-tree/dir.tsx:141", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/shared/file-tree/dir.tsx:141"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3ecd872b759039a3", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 mock-os/js/apps/media.jsx:340", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 mock-os/js/apps/media.jsx:340"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3fee6885de7ac48a", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 mock-os/js/apps/editor.jsx:192", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 mock-os/js/apps/editor.jsx:192"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-13864fa885c42b1a", "name": "Insecure pattern 'dangerous_innerhtml' in frontend/slices/code-editor/components/editor-surface.tsx:98", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in frontend/slices/code-editor/components/editor-surface.tsx:98"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-701a466a2ffd96dc", "name": "Insecure pattern 'direct_innerhtml_assignment' in frontend/slices/code-editor/lib/build-preview.ts:92", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/slices/code-editor/lib/build-preview.ts:92"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e1631c9667ff8b98", "name": "Insecure pattern 'exec_used' in lib/host/exec.ts:88", "shortDescription": {"text": "Insecure pattern 'exec_used' in lib/host/exec.ts:88"}, "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-fd712e41e1687f79", "name": "Insecure pattern 'node_child_process' in lib/host/exec.ts:6", "shortDescription": {"text": "Insecure pattern 'node_child_process' in lib/host/exec.ts:6"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5e91e3a8f0dead60", "name": "Insecure pattern 'dangerous_innerhtml' in mock-os/js/apps/media.jsx:340", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in mock-os/js/apps/media.jsx:340"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3b59100fecf52135", "name": "Insecure pattern 'dangerous_innerhtml' in mock-os/js/apps/editor.jsx:192", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in mock-os/js/apps/editor.jsx:192"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "43 test file(s) for 650 source file(s) (ratio 0.07). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "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 21 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 230 placeholder/mock markers across 134 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-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing ci. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-60ce5256521c34a4", "name": "Commented-code block (7 lines) in eslint.config.mjs:19", "shortDescription": {"text": "Commented-code block (7 lines) in eslint.config.mjs:19"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-59b64a850b54e971", "name": "Commented-code block (5 lines) in next.config.mjs:28", "shortDescription": {"text": "Commented-code block (5 lines) in next.config.mjs:28"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c44ec788db1704c9", "name": "Commented-code block (5 lines) in proxy.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in proxy.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-61b14cc3adb9a2b5", "name": "Commented-code block (6 lines) in frontend/slices/os-shell/index.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/os-shell/index.ts: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-7c827535db47d300", "name": "Commented-code block (6 lines) in frontend/slices/os-shell/shell.manifest.ts:54", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/os-shell/shell.manifest.ts: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-d2cbdf6a87ad97f8", "name": "Commented-code block (6 lines) in frontend/slices/auth/lib/device.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/auth/lib/device.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-29689d9f6e5e624a", "name": "Commented-code block (5 lines) in frontend/slices/os-terminal/app.tsx:9", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/os-terminal/app.tsx: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-f5dea38d8fd1b8cf", "name": "Commented-code block (5 lines) in frontend/slices/os-terminal/components/key-bar.tsx:12", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/os-terminal/components/key-bar.tsx: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-725abaf13459b548", "name": "Commented-code block (5 lines) in frontend/slices/os-terminal/lib/use-pty.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/os-terminal/lib/use-pty.ts: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-91a556bdc509044b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/slices/os-terminal/lib/use-pty.ts:25", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/slices/os-terminal/lib/use-pty.ts: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-741ebea775683a6c", "name": "Commented-code block (5 lines) in frontend/slices/os-terminal/lib/commands.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/os-terminal/lib/commands.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-42efda1bbeca96f1", "name": "Commented-code block (8 lines) in frontend/slices/appshell/defaults.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/slices/appshell/defaults.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-90fb167068750c7f", "name": "Commented-code block (5 lines) in frontend/slices/appshell/responsive/use-is-mobile.ts:7", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/responsive/use-is-mobile.ts:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ce3380bd248a015f", "name": "Commented-code block (8 lines) in frontend/slices/appshell/components/home-indicator.tsx:3", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/slices/appshell/components/home-indicator.tsx: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-95f7a933f198a9b8", "name": "Commented-code block (5 lines) in frontend/slices/appshell/components/wallpaper.tsx:26", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/components/wallpaper.tsx:26"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-caebae8c3d5d4ab7", "name": "Commented-code block (5 lines) in frontend/slices/appshell/components/dock-parts.tsx:35", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/components/dock-parts.tsx:35"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-86975b5b40f71fa5", "name": "Commented-code block (5 lines) in frontend/slices/appshell/components/app-launcher.tsx:14", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/components/app-launcher.tsx:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3c45a7160e858767", "name": "Commented-code block (8 lines) in frontend/slices/appshell/components/mobile-shell.tsx:34", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/slices/appshell/components/mobile-shell.tsx:34"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e0e538e40605dfc8", "name": "Commented-code block (9 lines) in frontend/slices/appshell/components/dock.tsx:13", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/slices/appshell/components/dock.tsx:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9c189c47ef95bbb4", "name": "Commented-code block (8 lines) in frontend/slices/appshell/components/window-content.tsx:8", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/slices/appshell/components/window-content.tsx: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-9a1e65f10cfe6c4c", "name": "Commented-code block (7 lines) in frontend/slices/appshell/components/layout/app-chrome.tsx:26", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/slices/appshell/components/layout/app-chrome.tsx:26"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3f08a338cad11540", "name": "Commented-code block (5 lines) in frontend/slices/appshell/components/shells/dashboard/dashboard-shell.tsx:36", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/components/shells/dashboard/dashboard-shell.tsx:36"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-efdb5451e0ee157f", "name": "Commented-code block (5 lines) in frontend/slices/appshell/registry/shell-config.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/registry/shell-config.tsx: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-f81de6be2b9eec2a", "name": "Commented-code block (5 lines) in frontend/slices/appshell/registry/shell-ui.tsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/registry/shell-ui.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-518a98e4598eec88", "name": "Commented-code block (5 lines) in frontend/slices/appshell/registry/capabilities.tsx:8", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/registry/capabilities.tsx: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-d21df7773f7015e4", "name": "Commented-code block (5 lines) in frontend/slices/appshell/lib/window-title.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/lib/window-title.ts: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-93a1f17480e12bcc", "name": "Commented-code block (6 lines) in frontend/slices/appshell/lib/url-sync.test.ts:7", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/appshell/lib/url-sync.test.ts:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a2207b4d92d36fd5", "name": "Commented-code block (5 lines) in frontend/slices/appshell/lib/use-focused-hotkey.ts:11", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/lib/use-focused-hotkey.ts: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-077601174f8a4a99", "name": "Legacy-named symbol `offOld` in frontend/slices/appshell/lib/dnd.test.ts:8", "shortDescription": {"text": "Legacy-named symbol `offOld` in frontend/slices/appshell/lib/dnd.test.ts:8"}, "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-296a28680c8d6891", "name": "Commented-code block (5 lines) in frontend/slices/appshell/lib/store-state.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/lib/store-state.ts: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-65d28a98af57ee99", "name": "Commented-code block (5 lines) in frontend/slices/appshell/lib/window-tabs.ts:11", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/lib/window-tabs.ts: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-592e80c792755a87", "name": "Commented-code block (7 lines) in frontend/slices/appshell/lib/host-api.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/slices/appshell/lib/host-api.tsx: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-f5df63591bec3183", "name": "Commented-code block (5 lines) in frontend/slices/appshell/lib/commands.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/lib/commands.ts: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-e1f1a10c527c20cf", "name": "Commented-code block (5 lines) in frontend/slices/appshell/lib/spaces.ts:9", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/lib/spaces.ts: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-6752e49a0df96bc0", "name": "Commented-code block (6 lines) in frontend/slices/appshell/lib/store-geometry.ts:11", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/appshell/lib/store-geometry.ts: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-e8eecf08d9180147", "name": "Commented-code block (5 lines) in frontend/slices/appshell/lib/inspector.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/lib/inspector.ts: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-e5eec0b6bff76133", "name": "Commented-code block (6 lines) in frontend/slices/appshell/runtime/use-url-sync.tsx:19", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/appshell/runtime/use-url-sync.tsx:19"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9168feaae9418684", "name": "Commented-code block (5 lines) in frontend/slices/appshell/hooks/use-persist-layout.ts:14", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/hooks/use-persist-layout.ts:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-18e4f0fec106bc18", "name": "Commented-code block (5 lines) in frontend/slices/assistant/app.tsx:75", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/assistant/app.tsx:75"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-185e34a08356e6d0", "name": "Commented-code block (5 lines) in frontend/slices/assistant/components/chat-panel.tsx:37", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/assistant/components/chat-panel.tsx:37"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a408ed9152428771", "name": "Commented-code block (5 lines) in frontend/slices/assistant/lib/host.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/assistant/lib/host.ts: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-89afb8dfa115075b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/slices/media-studio/app.tsx:96", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/slices/media-studio/app.tsx:96"}, "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-fc5f9f018c972bf7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/slices/media-studio/lib/save-image.ts:35", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/slices/media-studio/lib/save-image.ts:35"}, "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-315b60bfb1b771b1", "name": "Commented-code block (5 lines) in frontend/slices/app-store/components/uninstall-confirm.tsx:7", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/app-store/components/uninstall-confirm.tsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8970b10173b98e8f", "name": "Commented-code block (6 lines) in frontend/slices/app-store/lib/enabled-store.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/app-store/lib/enabled-store.ts: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-cc1b19700e5c62b0", "name": "Commented-code block (6 lines) in frontend/slices/app-store/lib/system-catalog.ts:22", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/app-store/lib/system-catalog.ts:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7bc4500db4694425", "name": "Commented-code block (5 lines) in frontend/slices/app-store/lib/use-store-install.ts:10", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/app-store/lib/use-store-install.ts: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-60cc2e095150f06e", "name": "Commented-code block (5 lines) in frontend/slices/app-store/lib/store-catalog.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/app-store/lib/store-catalog.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-da7e1ac7ad9cfde3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/slices/browser/lib/host.ts:42", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/slices/browser/lib/host.ts:42"}, "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-238b2bca9b740b05", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/slices/browser/lib/use-screencast.ts:30", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/slices/browser/lib/use-screencast.ts:30"}, "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-a41abfd4d03847a7", "name": "Commented-code block (7 lines) in frontend/slices/browser/lib/use-offline-tracker.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/slices/browser/lib/use-offline-tracker.ts: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-1af0490a4af1ae0a", "name": "Commented-code block (5 lines) in frontend/slices/files-manager/lib/read-drop.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/files-manager/lib/read-drop.ts: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-3d2ed7d9a1cd8d40", "name": "Commented-code block (5 lines) in frontend/slices/files-manager/hooks/use-dnd.ts:7", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/files-manager/hooks/use-dnd.ts:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8ce815436a78d774", "name": "Commented-code block (5 lines) in frontend/slices/files-manager/hooks/use-viewport-window.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/files-manager/hooks/use-viewport-window.ts: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-4b8e84fdda360f86", "name": "Commented-code block (6 lines) in frontend/slices/files-manager/hooks/use-file-commands.ts:74", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/files-manager/hooks/use-file-commands.ts:74"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6b18f932e06a1029", "name": "Commented-code block (5 lines) in frontend/slices/image-editor/server.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/server.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fbdbb2fb3ab465d5", "name": "Commented-code block (5 lines) in frontend/slices/image-editor/components/confirm-remove-layer.tsx:22", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/components/confirm-remove-layer.tsx:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-028f762ff1b8a455", "name": "Commented-code block (5 lines) in frontend/slices/image-editor/components/mobile-shell.tsx:27", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/components/mobile-shell.tsx:27"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5b0c31c06742f005", "name": "Commented-code block (6 lines) in frontend/slices/image-editor/components/project-loader.tsx:8", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/image-editor/components/project-loader.tsx: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-a9a589b141045309", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/slices/image-editor/components/project-loader.tsx:24", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/slices/image-editor/components/project-loader.tsx:24"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7a173d326dac37c7", "name": "Commented-code block (5 lines) in frontend/slices/image-editor/components/tool-options-bar.tsx:14", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/components/tool-options-bar.tsx:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f5d26dc5ad4a029c", "name": "Commented-code block (5 lines) in frontend/slices/image-editor/components/stage/paint-layer.tsx:12", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/components/stage/paint-layer.tsx: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-82094b5734c4eb5f", "name": "Commented-code block (5 lines) in frontend/slices/image-editor/components/stage/masked-group.tsx:7", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/components/stage/masked-group.tsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-db625dfd68943c6f", "name": "Commented-code block (6 lines) in frontend/slices/image-editor/components/panels/layers-panel.tsx:24", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/image-editor/components/panels/layers-panel.tsx:24"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4c3f2f96f2244467", "name": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/snapshot.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/snapshot.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4639ad9cc78e87be", "name": "Commented-code block (7 lines) in frontend/slices/image-editor/lib/history.ts:8", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/slices/image-editor/lib/history.ts: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-11634bdc199e46e7", "name": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/bbox.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/bbox.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b4f4cb470fac3d2f", "name": "Commented-code block (6 lines) in frontend/slices/image-editor/lib/doc-ops.ts:37", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/image-editor/lib/doc-ops.ts:37"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-df39f674414467d3", "name": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/types.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/types.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-494d390699e7ca08", "name": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/headless/run.ts:69", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/headless/run.ts:69"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b79c2253cec4f701", "name": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/headless/editor-core.ts:13", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/headless/editor-core.ts:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2630eb5739eb73f0", "name": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/headless/image-size.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/headless/image-size.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f2bc15c7a2c69732", "name": "Commented-code block (5 lines) in frontend/slices/image-editor/hooks/use-keyboard.ts:31", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/hooks/use-keyboard.ts:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9623840709579c42", "name": "Commented-code block (5 lines) in frontend/slices/image-editor/hooks/use-stage-interactions.ts:11", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/hooks/use-stage-interactions.ts: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-ba99828b1aaad5f8", "name": "Commented-code block (6 lines) in frontend/slices/reel-editor/components/reel-panes.tsx:20", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/reel-editor/components/reel-panes.tsx:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9e4abea1d4471a58", "name": "Commented-code block (5 lines) in frontend/slices/reel-editor/components/compact-panes.tsx:18", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/reel-editor/components/compact-panes.tsx:18"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-86b21824310cbd3e", "name": "Commented-code block (6 lines) in frontend/slices/reel-editor/components/preview-stage.tsx:10", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/reel-editor/components/preview-stage.tsx: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-95b478130d022f76", "name": "Commented-code block (6 lines) in frontend/slices/reel-editor/lib/host.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/reel-editor/lib/host.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-49f357ce439f7a1e", "name": "Commented-code block (5 lines) in frontend/slices/reel-editor/lib/frame-store.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/reel-editor/lib/frame-store.ts: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-bcf27f39687bd28b", "name": "Commented-code block (5 lines) in frontend/slices/reel-editor/lib/media-sync.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/reel-editor/lib/media-sync.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ceb6f0a23ca598fa", "name": "Commented-code block (6 lines) in frontend/slices/reel-editor/lib/media-cache.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/reel-editor/lib/media-cache.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9cc9bdb8bace05ab", "name": "Commented-code block (5 lines) in frontend/slices/reel-editor/lib/render.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/reel-editor/lib/render.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-450aa2e85bfd17cb", "name": "Commented-code block (5 lines) in frontend/slices/reel-editor/lib/layout.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/reel-editor/lib/layout.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b469c9dec485c9a4", "name": "Commented-code block (7 lines) in frontend/slices/reel-editor/lib/media-audio.ts:31", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/slices/reel-editor/lib/media-audio.ts:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ed2ead5e6f7285e1", "name": "Commented-code block (5 lines) in frontend/slices/code-editor/lib/highlight.ts:117", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/code-editor/lib/highlight.ts:117"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dc98975605d6b4e0", "name": "Commented-code block (6 lines) in frontend/slices/code-editor/lib/tokenize.test.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/slices/code-editor/lib/tokenize.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1d74ee9090e597dd", "name": "Commented-code block (5 lines) in frontend/slices/code-editor/lib/build-preview.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/slices/code-editor/lib/build-preview.ts: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-15acb675601c2bc7", "name": "Commented-code block (6 lines) in components/shared/file-tree/dir.tsx:38", "shortDescription": {"text": "Commented-code block (6 lines) in components/shared/file-tree/dir.tsx:38"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2fd414dbf01624c9", "name": "Commented-code block (5 lines) in app/os-root.tsx:21", "shortDescription": {"text": "Commented-code block (5 lines) in app/os-root.tsx:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-673989a47b0a0fe9", "name": "Commented-code block (6 lines) in app/api/auth/login/route.ts:26", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/auth/login/route.ts:26"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0741abe9cccf0240", "name": "Commented-code block (6 lines) in app/api/v1/term/stream/route.ts:10", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/v1/term/stream/route.ts: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-238bc1d1ca47687b", "name": "Commented-code block (5 lines) in app/api/v1/fs/raw/route.ts:31", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/v1/fs/raw/route.ts:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-30b4acfb075360a0", "name": "Commented-code block (7 lines) in app/api/sw/route.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/sw/route.ts: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-023e95e3be195f1c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sw/route.ts:43", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sw/route.ts:43"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d10d08781340cdcd", "name": "Commented-code block (5 lines) in app/api/assistant/route.ts:11", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/assistant/route.ts: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-4d71fe985250d912", "name": "Commented-code block (6 lines) in app/[[...slug]]/page.tsx:10", "shortDescription": {"text": "Commented-code block (6 lines) in app/[[...slug]]/page.tsx: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-29d7194a3ee76076", "name": "Commented-code block (5 lines) in lib/ai/stream.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/ai/stream.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3219f7e06535a9d0", "name": "Commented-code block (5 lines) in lib/auth/require-session.ts:14", "shortDescription": {"text": "Commented-code block (5 lines) in lib/auth/require-session.ts:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-18a51c3dcdabb672", "name": "Commented-code block (5 lines) in lib/auth/device-store.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in lib/auth/device-store.ts: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-65ccab0fedce004c", "name": "Commented-code block (6 lines) in lib/host/host-error.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/host/host-error.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1e4f5117520db712", "name": "Commented-code block (7 lines) in lib/host/paths.test.ts:15", "shortDescription": {"text": "Commented-code block (7 lines) in lib/host/paths.test.ts:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e676a68f71313a39", "name": "Commented-code block (7 lines) in lib/host/pty.ts:5", "shortDescription": {"text": "Commented-code block (7 lines) in lib/host/pty.ts: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-06701722b58de612", "name": "Commented-code block (6 lines) in lib/host/child-env.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/host/child-env.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-22414dcf01fc2768", "name": "Commented-code block (6 lines) in lib/host/fs.test.ts:16", "shortDescription": {"text": "Commented-code block (6 lines) in lib/host/fs.test.ts: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-13dd1e0eb15c7e54", "name": "Commented-code block (6 lines) in lib/host/paths.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/host/paths.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d166885d7fa712fb", "name": "Commented-code block (6 lines) in lib/host/exec-filter.test.ts:99", "shortDescription": {"text": "Commented-code block (6 lines) in lib/host/exec-filter.test.ts:99"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1447f30c20bf79eb", "name": "Commented-code block (5 lines) in lib/host/audit-schema.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/host/audit-schema.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-51e8ba9dca840bf0", "name": "Commented-code block (5 lines) in lib/host/api-error.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/host/api-error.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7d5ea3a21bdee6e8", "name": "Commented-code block (6 lines) in lib/host/fs-upload.ts:51", "shortDescription": {"text": "Commented-code block (6 lines) in lib/host/fs-upload.ts:51"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2a92d4301edff00a", "name": "Commented-code block (5 lines) in lib/host/exec.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/host/exec.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-58bb24b2d41d2d0e", "name": "Commented-code block (5 lines) in lib/host/multipart.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in lib/host/multipart.ts: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-3a1f8eec92d009af", "name": "Commented-code block (5 lines) in lib/agent/server.test.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in lib/agent/server.test.ts: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-e58064efd05ba9bb", "name": "Commented-code block (6 lines) in lib/agent/server.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/agent/server.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-54a596814d445ee1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/agent/server.ts:78", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/agent/server.ts:78"}, "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-4d9178f250023a55", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/os-api/http-adapter.ts:41", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/os-api/http-adapter.ts:41"}, "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-942eced213259dc6", "name": "Commented-code block (5 lines) in lib/os-api/upload.ts:8", "shortDescription": {"text": "Commented-code block (5 lines) in lib/os-api/upload.ts: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-04590169de938e05", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/os-api/upload.ts:4", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/os-api/upload.ts:4"}, "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-8e81ee1321a4f97b", "name": "Commented-code block (5 lines) in lib/os-api/index.tsx:24", "shortDescription": {"text": "Commented-code block (5 lines) in lib/os-api/index.tsx:24"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-49ca7fe91f6df47a", "name": "Commented-code block (5 lines) in lib/os-api/types.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/os-api/types.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1314c8bb9761790e", "name": "Commented-code block (5 lines) in lib/quicklinks/store.tsx:14", "shortDescription": {"text": "Commented-code block (5 lines) in lib/quicklinks/store.tsx:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d7c18eb9a65b5024", "name": "Commented-code block (6 lines) in lib/prefs/use-prefs-sync.ts:11", "shortDescription": {"text": "Commented-code block (6 lines) in lib/prefs/use-prefs-sync.ts: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-ddb9c9c2efab670a", "name": "Commented-code block (6 lines) in lib/appearance/wallpapers.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/appearance/wallpapers.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7c0c09ba439fbacc", "name": "Commented-code block (7 lines) in lib/appearance/wallpaper-upload.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in lib/appearance/wallpaper-upload.ts: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-50474df801c94f50", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/appearance/wallpaper-upload.ts:38", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/appearance/wallpaper-upload.ts:38"}, "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-c7579de656664ec8", "name": "Commented-code block (6 lines) in lib/appearance/presets/fonts.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/appearance/presets/fonts.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2fe7adf49736bb11", "name": "Commented-code block (6 lines) in lib/appearance/presets/apply.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in lib/appearance/presets/apply.ts: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-c449c469ee320616", "name": "Commented-code block (8 lines) in os-browser/server.mjs:7", "shortDescription": {"text": "Commented-code block (8 lines) in os-browser/server.mjs: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-3638677d4ee20f56", "name": "Commented-code block (7 lines) in mock-os/tweaks-panel.jsx:15", "shortDescription": {"text": "Commented-code block (7 lines) in mock-os/tweaks-panel.jsx:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8a47f94328bcddd7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 mock-os/js/core/api.jsx:40", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mock-os/js/core/api.jsx:40"}, "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-9cac7ce15e72817b", "name": "31 env vars used in code but missing from .env.example", "shortDescription": {"text": "31 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `ANTHROPIC_API_KEY`, `E2E_BASE_URL`, `NEXT_DEPLOYMENT_ID`, `NEXT_PUBLIC_BUILD_ID`, `NEXT_PUBLIC_OS_DEMO`, `NODE_ENV`, `OS_AGENT_TOKEN`, `OS_AUDIT_LOG` + 23 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/17747"}, "properties": {"repository": "rahmanef63/os-vps", "repoUrl": "https://github.com/rahmanef63/os-vps", "branch": "main"}, "results": [{"ruleId": "scanner-98fc97386e4ac624", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/create-app/app.tsx:122"}, "properties": {"repobilityId": "55a309c97bd78bbb", "scanner": "scanner-primary", "fingerprint": "98fc97386e4ac624", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5799af10a71d4afa", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/slices/create-app/app.tsx:11"}, "properties": {"repobilityId": "2ef6faad2b69979c", "scanner": "scanner-primary", "fingerprint": "5799af10a71d4afa", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-5b44374196d6bd0d", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/slices/create-app/components/icon-preview.tsx:4"}, "properties": {"repobilityId": "33ffe844092f4073", "scanner": "scanner-primary", "fingerprint": "5b44374196d6bd0d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-f93d4c4414ca5361", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/slices/create-app/components/glyph-picker.tsx:3"}, "properties": {"repobilityId": "3cf94fe640776f22", "scanner": "scanner-primary", "fingerprint": "f93d4c4414ca5361", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-9c4c254a6425f902", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/auth/components/devices-panel.tsx:92"}, "properties": {"repobilityId": "25a51c2faf16d011", "scanner": "scanner-primary", "fingerprint": "9c4c254a6425f902", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a7ec1ac5142e3799", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/auth/components/login-screen.tsx:89"}, "properties": {"repobilityId": "00066f236b376760", "scanner": "scanner-primary", "fingerprint": "a7ec1ac5142e3799", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4c0e95620b6418cd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/os-terminal/app.tsx:35"}, "properties": {"repobilityId": "98cd94ce9eff024d", "scanner": "scanner-primary", "fingerprint": "4c0e95620b6418cd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6c0c01bb85c3d69e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/os-terminal/components/pty-terminal.tsx:165"}, "properties": {"repobilityId": "d6beed5b78c2513b", "scanner": "scanner-primary", "fingerprint": "6c0c01bb85c3d69e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d1695b9273a00cc4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/os-settings/app.tsx:97"}, "properties": {"repobilityId": "edc78a946da7533b", "scanner": "scanner-primary", "fingerprint": "d1695b9273a00cc4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-684b810484be4e7a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/os-settings/components/theme-section.tsx:40"}, "properties": {"repobilityId": "79baea02c6a2551e", "scanner": "scanner-primary", "fingerprint": "684b810484be4e7a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5ba3fb32d3db8a69", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/os-settings/components/browser-section.tsx:62"}, "properties": {"repobilityId": "a371244ad0afed7f", "scanner": "scanner-primary", "fingerprint": "5ba3fb32d3db8a69", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d09dafc64c07e1bf", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/media-viewer/components/viewer-toolbar.tsx:55"}, "properties": {"repobilityId": "b6d9e72644b2a553", "scanner": "scanner-primary", "fingerprint": "d09dafc64c07e1bf", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-143a97a09bbe4bb7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/media-viewer/components/remote-view.tsx:67"}, "properties": {"repobilityId": "5c25427f01e233f2", "scanner": "scanner-primary", "fingerprint": "143a97a09bbe4bb7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5567f97f257a3708", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/media-viewer/components/audio-player.tsx:28"}, "properties": {"repobilityId": "a41e3dfe66d174a2", "scanner": "scanner-primary", "fingerprint": "5567f97f257a3708", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-10cc9b146aec1f5f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/image-picker/components/image-picker/unsplash-tab.tsx:84"}, "properties": {"repobilityId": "948fd5a12c5116e1", "scanner": "scanner-primary", "fingerprint": "10cc9b146aec1f5f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d8ae4a8642efa4fb", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/quicklinks/app.tsx:46"}, "properties": {"repobilityId": "46d9ee4d0c05bb1d", "scanner": "scanner-primary", "fingerprint": "d8ae4a8642efa4fb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2a9eebe384e84d71", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/window.tsx:88"}, "properties": {"repobilityId": "fc741ae075ed62bf", "scanner": "scanner-primary", "fingerprint": "2a9eebe384e84d71", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-64de2c73d9303ec7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/mobile-app-library.tsx:101"}, "properties": {"repobilityId": "b9b8147c59946d41", "scanner": "scanner-primary", "fingerprint": "64de2c73d9303ec7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-65e8d39f734be85e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/dock-parts.tsx:89"}, "properties": {"repobilityId": "f2938203974df259", "scanner": "scanner-primary", "fingerprint": "65e8d39f734be85e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7699406eb87ce30f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/window-tabs.tsx:37"}, "properties": {"repobilityId": "9b9455e3ccb10f51", "scanner": "scanner-primary", "fingerprint": "7699406eb87ce30f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fcb822bc88726875", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/app-launcher.tsx:111"}, "properties": {"repobilityId": "7b424d1a97357300", "scanner": "scanner-primary", "fingerprint": "fcb822bc88726875", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3a1dae9968a8f8f2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/mobile-shell.tsx:134"}, "properties": {"repobilityId": "a777ba0731d7e4a7", "scanner": "scanner-primary", "fingerprint": "3a1dae9968a8f8f2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9ce501eadbe1136b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/window-preview.tsx:95"}, "properties": {"repobilityId": "5fc77cec02263c6e", "scanner": "scanner-primary", "fingerprint": "9ce501eadbe1136b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d978bc1a578de79a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/app-switcher.tsx:90"}, "properties": {"repobilityId": "ca8414642ed6187a", "scanner": "scanner-primary", "fingerprint": "d978bc1a578de79a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-186617a68a4b5998", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/mobile-home-parts.tsx:140"}, "properties": {"repobilityId": "a537bf834c4736e4", "scanner": "scanner-primary", "fingerprint": "186617a68a4b5998", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2913a1f67568e9f9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/menu-bar-menus.tsx:149"}, "properties": {"repobilityId": "b4edcdcde94695f6", "scanner": "scanner-primary", "fingerprint": "2913a1f67568e9f9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-73cd30dcdecac28c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/context-menu.tsx:95"}, "properties": {"repobilityId": "c43a7428050fa58f", "scanner": "scanner-primary", "fingerprint": "73cd30dcdecac28c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-dec0a507ae00eb0d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/window-overview.tsx:79"}, "properties": {"repobilityId": "59f7c39907256f93", "scanner": "scanner-primary", "fingerprint": "dec0a507ae00eb0d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5254cff34e767fa5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/android/android-shell.tsx:149"}, "properties": {"repobilityId": "66e85f80ded45cae", "scanner": "scanner-primary", "fingerprint": "5254cff34e767fa5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a651d120613db9dc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/android/android-parts.tsx:88"}, "properties": {"repobilityId": "dcd2b2c5cb5ed222", "scanner": "scanner-primary", "fingerprint": "a651d120613db9dc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cda03fe8ee3ce264", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/windows/start-menu.tsx:48"}, "properties": {"repobilityId": "a8d636cb25e2f29d", "scanner": "scanner-primary", "fingerprint": "cda03fe8ee3ce264", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-31b7f5683f7e578e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/windows/snap-assist.tsx:97"}, "properties": {"repobilityId": "019ba78a43f4a175", "scanner": "scanner-primary", "fingerprint": "31b7f5683f7e578e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-08d0bba775392f6d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/windows/taskbar.tsx:107"}, "properties": {"repobilityId": "717ba981bccb36f2", "scanner": "scanner-primary", "fingerprint": "08d0bba775392f6d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-780af32cfc41b79c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/components/shells/dashboard/dashboard-parts.tsx:42"}, "properties": {"repobilityId": "d3ee10b65268df9f", "scanner": "scanner-primary", "fingerprint": "780af32cfc41b79c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9118087dd0855294", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/features/notifications/components/dynamic-island.tsx:40"}, "properties": {"repobilityId": "8b9185d0c8bff8f8", "scanner": "scanner-primary", "fingerprint": "9118087dd0855294", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4f7c1d59681dbad1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/features/widgets/components/mobile-widgets.tsx:67"}, "properties": {"repobilityId": "8c44af7b57b476c8", "scanner": "scanner-primary", "fingerprint": "4f7c1d59681dbad1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-12e6139d5090a26e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/features/search/components/spotlight-results.tsx:109"}, "properties": {"repobilityId": "be3722380848ad75", "scanner": "scanner-primary", "fingerprint": "12e6139d5090a26e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-771e1dc43750908f", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/slices/appshell/features/search/components/spotlight-results.tsx:6"}, "properties": {"repobilityId": "85df35e1c311e95c", "scanner": "scanner-primary", "fingerprint": "771e1dc43750908f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-80f284f1b8b31cf4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/features/clipboard/components/clipboard-overlay.tsx:88"}, "properties": {"repobilityId": "615deec02e988877", "scanner": "scanner-primary", "fingerprint": "80f284f1b8b31cf4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-88940ceae3cf7623", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/appshell/features/inspector/components/inspector.tsx:37"}, "properties": {"repobilityId": "630130cc9e01ac21", "scanner": "scanner-primary", "fingerprint": "88940ceae3cf7623", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-66a19a39b567d3f7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/assistant/components/agent-form.tsx:110"}, "properties": {"repobilityId": "a257c07ba7590cd9", "scanner": "scanner-primary", "fingerprint": "66a19a39b567d3f7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a70b59be5bb3ad86", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/assistant/components/form-shell.tsx:29"}, "properties": {"repobilityId": "36f848f7a3e3f9f0", "scanner": "scanner-primary", "fingerprint": "a70b59be5bb3ad86", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9b047e4ffdf8195b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/assistant/components/automation-view.tsx:68"}, "properties": {"repobilityId": "13f69c5043e7ad37", "scanner": "scanner-primary", "fingerprint": "9b047e4ffdf8195b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0f550839fddb69bc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/system-monitor/app.tsx:88"}, "properties": {"repobilityId": "334569b5cb8667b8", "scanner": "scanner-primary", "fingerprint": "0f550839fddb69bc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7bd534b2e9224673", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/system-monitor/components/circular-gauge.tsx:50"}, "properties": {"repobilityId": "8b7a45e0f85bcb9f", "scanner": "scanner-primary", "fingerprint": "7bd534b2e9224673", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6f7719689ab7a4ec", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/system-monitor/components/process-table.tsx:64"}, "properties": {"repobilityId": "f6b7a7421f26e1f9", "scanner": "scanner-primary", "fingerprint": "6f7719689ab7a4ec", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1cc0386ba0ec649a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/system-card.tsx:44"}, "properties": {"repobilityId": "159bf0acde908d2a", "scanner": "scanner-primary", "fingerprint": "1cc0386ba0ec649a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7d72b59d36f873c6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/store-sidebar.tsx:55"}, "properties": {"repobilityId": "b8aa5729bd952c3b", "scanner": "scanner-primary", "fingerprint": "7d72b59d36f873c6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-57f4ae7a111dff62", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/app-console.tsx:59"}, "properties": {"repobilityId": "5bccd14760438bf8", "scanner": "scanner-primary", "fingerprint": "57f4ae7a111dff62", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a3b8cab3f1938456", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/store-app-card.tsx:45"}, "properties": {"repobilityId": "33c6e417f6cd5138", "scanner": "scanner-primary", "fingerprint": "a3b8cab3f1938456", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e919a8c6d7146463", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/app-store/components/runtime-app.tsx:68"}, "properties": {"repobilityId": "eba842cec4ef242c", "scanner": "scanner-primary", "fingerprint": "e919a8c6d7146463", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-95885dd3132a5cb0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/browser/components/bookmark-bar.tsx:28"}, "properties": {"repobilityId": "8639a1123f7c3215", "scanner": "scanner-primary", "fingerprint": "95885dd3132a5cb0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-19c2bd237a0335ec", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/browser/components/history-view.tsx:55"}, "properties": {"repobilityId": "9ba04776b3b36346", "scanner": "scanner-primary", "fingerprint": "19c2bd237a0335ec", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-99f02c76e9210af8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/browser/components/remote-view.tsx:128"}, "properties": {"repobilityId": "d5abd4aae8526815", "scanner": "scanner-primary", "fingerprint": "99f02c76e9210af8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8c4f2de1e0432c8f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/browser/components/tab-bar.tsx:36"}, "properties": {"repobilityId": "d202af0ee48f875d", "scanner": "scanner-primary", "fingerprint": "8c4f2de1e0432c8f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b48af59e86ccbe1a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/browser/components/ai-panel.tsx:89"}, "properties": {"repobilityId": "db1378089741fe89", "scanner": "scanner-primary", "fingerprint": "b48af59e86ccbe1a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f7dc0d45f0ca56de", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/files-manager/components/upload-bar.tsx:20"}, "properties": {"repobilityId": "c3eae35c9b3291ef", "scanner": "scanner-primary", "fingerprint": "f7dc0d45f0ca56de", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ba0f5d7ed899a94b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/files-manager/components/file-item.tsx:169"}, "properties": {"repobilityId": "48770ce23b817ba8", "scanner": "scanner-primary", "fingerprint": "ba0f5d7ed899a94b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-542fb85fc663092b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/files-manager/components/file-crumbs.tsx:71"}, "properties": {"repobilityId": "9be2b7e21eb4cedd", "scanner": "scanner-primary", "fingerprint": "542fb85fc663092b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a49041aca137282b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/files-manager/components/file-details.tsx:34"}, "properties": {"repobilityId": "27f46d9e5eb43ac5", "scanner": "scanner-primary", "fingerprint": "a49041aca137282b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ff53750a2116ff89", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/files-manager/components/files-sidebar.tsx:81"}, "properties": {"repobilityId": "3fe28da82cb96d18", "scanner": "scanner-primary", "fingerprint": "ff53750a2116ff89", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-263b52cfd783b18f", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/slices/files-manager/hooks/use-viewport-window.ts:6"}, "properties": {"repobilityId": "f579caa7ff3d468d", "scanner": "scanner-primary", "fingerprint": "263b52cfd783b18f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-0207874d6b5b5acd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/image-editor/components/panels/layers-panel.tsx:98"}, "properties": {"repobilityId": "8bb3bd68e46cc289", "scanner": "scanner-primary", "fingerprint": "0207874d6b5b5acd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7a7d69c2d0818c13", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/image-editor/components/panels/properties-panel.tsx:36"}, "properties": {"repobilityId": "232b67ab5df6ef63", "scanner": "scanner-primary", "fingerprint": "7a7d69c2d0818c13", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-306ac7344fd5de98", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/image-editor/components/panels/ai-panel.tsx:85"}, "properties": {"repobilityId": "ab533cc155d71323", "scanner": "scanner-primary", "fingerprint": "306ac7344fd5de98", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4091f42f5922e97c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/reel-editor/components/files-pane.tsx:163"}, "properties": {"repobilityId": "d9eada751596973f", "scanner": "scanner-primary", "fingerprint": "4091f42f5922e97c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d9e74bb81dfdc95b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/reel-editor/components/file-browser.tsx:156"}, "properties": {"repobilityId": "c456cd004a1e1e3f", "scanner": "scanner-primary", "fingerprint": "d9e74bb81dfdc95b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-96babb5b9aa4c225", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/reel-editor/components/clip-block.tsx:71"}, "properties": {"repobilityId": "8bc418e3b669570e", "scanner": "scanner-primary", "fingerprint": "96babb5b9aa4c225", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f31ebf092f03b8c9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/reel-editor/components/track-head.tsx:52"}, "properties": {"repobilityId": "406a788ccfeac52e", "scanner": "scanner-primary", "fingerprint": "f31ebf092f03b8c9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b24d722ec469cbfe", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/code-editor/components/status-bar.tsx:31"}, "properties": {"repobilityId": "2b277456b7b74ade", "scanner": "scanner-primary", "fingerprint": "b24d722ec469cbfe", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-55a75372a1029b01", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/code-editor/components/tab-strip.tsx:47"}, "properties": {"repobilityId": "bcc6d26bf8478cef", "scanner": "scanner-primary", "fingerprint": "55a75372a1029b01", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-daee289d470e4808", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/slices/code-editor/components/preview-pane.tsx:32"}, "properties": {"repobilityId": "2661ecc8ab82966d", "scanner": "scanner-primary", "fingerprint": "daee289d470e4808", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-677d0425d5a3a726", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/slices/code-editor/components/editor-surface.tsx:98"}, "properties": {"repobilityId": "5380153e30eb844f", "scanner": "scanner-primary", "fingerprint": "677d0425d5a3a726", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-7e19c9a6b32d71c5", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/slices/code-editor/lib/highlight.ts:2"}, "properties": {"repobilityId": "13e4b8d0b74afeb0", "scanner": "scanner-primary", "fingerprint": "7e19c9a6b32d71c5", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-7b60aa2d9c0b02a8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/approve-device.js:40"}, "properties": {"repobilityId": "463c0a3772fb6477", "scanner": "scanner-primary", "fingerprint": "7b60aa2d9c0b02a8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4f56ccc8e21ab327", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/shared/file-tree/index.tsx:32"}, "properties": {"repobilityId": "c0121cfcb92c75a6", "scanner": "scanner-primary", "fingerprint": "4f56ccc8e21ab327", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5e0e8115e68f1035", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/shared/file-tree/dir.tsx:141"}, "properties": {"repobilityId": "e5900744cd9f90d1", "scanner": "scanner-primary", "fingerprint": "5e0e8115e68f1035", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3ecd872b759039a3", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 mock-os/js/apps/media.jsx:340"}, "properties": {"repobilityId": "bb421589256a29fa", "scanner": "scanner-primary", "fingerprint": "3ecd872b759039a3", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-3fee6885de7ac48a", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 mock-os/js/apps/editor.jsx:192"}, "properties": {"repobilityId": "9b2ea824529311b9", "scanner": "scanner-primary", "fingerprint": "3fee6885de7ac48a", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-13864fa885c42b1a", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in frontend/slices/code-editor/components/editor-surface.tsx:98"}, "properties": {"repobilityId": "0e1180e1673c7688", "scanner": "scanner-primary", "fingerprint": "13864fa885c42b1a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/slices/code-editor/components/editor-surface.tsx"}, "region": {"startLine": 98}}}]}, {"ruleId": "scanner-701a466a2ffd96dc", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in frontend/slices/code-editor/lib/build-preview.ts:92"}, "properties": {"repobilityId": "a875ab0d9c96bdba", "scanner": "scanner-primary", "fingerprint": "701a466a2ffd96dc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/slices/code-editor/lib/build-preview.ts"}, "region": {"startLine": 92}}}]}, {"ruleId": "scanner-e1631c9667ff8b98", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in lib/host/exec.ts:88"}, "properties": {"repobilityId": "85706c2537a19e13", "scanner": "scanner-primary", "fingerprint": "e1631c9667ff8b98", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/host/exec.ts"}, "region": {"startLine": 88}}}]}, {"ruleId": "scanner-fd712e41e1687f79", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in lib/host/exec.ts:6"}, "properties": {"repobilityId": "98986e5bdbe4564b", "scanner": "scanner-primary", "fingerprint": "fd712e41e1687f79", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/host/exec.ts"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-5e91e3a8f0dead60", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in mock-os/js/apps/media.jsx:340"}, "properties": {"repobilityId": "7e35dd44944e9d8b", "scanner": "scanner-primary", "fingerprint": "5e91e3a8f0dead60", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mock-os/js/apps/media.jsx"}, "region": {"startLine": 340}}}]}, {"ruleId": "scanner-3b59100fecf52135", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in mock-os/js/apps/editor.jsx:192"}, "properties": {"repobilityId": "c998a0e334606c20", "scanner": "scanner-primary", "fingerprint": "3b59100fecf52135", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "mock-os/js/apps/editor.jsx"}, "region": {"startLine": 192}}}]}, {"ruleId": "scanner-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-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-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "b78eff4b0ef256ad", "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": "dbe1b9476bfec200", "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": "809bc51e36f35714", "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": "6ad8c4f585031eca", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "7e3f3f77e87c55f9", "scanner": "scanner-primary", "fingerprint": "749d4bc1bd66df5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "33fc9d80b857ba68", "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": "b28382a7bc04b672", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-60ce5256521c34a4", "level": "none", "message": {"text": "Commented-code block (7 lines) in eslint.config.mjs:19"}, "properties": {"repobilityId": "1c5dea41ff1ab2df", "scanner": "scanner-primary", "fingerprint": "60ce5256521c34a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-59b64a850b54e971", "level": "none", "message": {"text": "Commented-code block (5 lines) in next.config.mjs:28"}, "properties": {"repobilityId": "eaefd6d70dcbae1b", "scanner": "scanner-primary", "fingerprint": "59b64a850b54e971", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c44ec788db1704c9", "level": "none", "message": {"text": "Commented-code block (5 lines) in proxy.ts:1"}, "properties": {"repobilityId": "8d629b0e76cd3d86", "scanner": "scanner-primary", "fingerprint": "c44ec788db1704c9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-61b14cc3adb9a2b5", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/os-shell/index.ts:3"}, "properties": {"repobilityId": "658efdea3ff79895", "scanner": "scanner-primary", "fingerprint": "61b14cc3adb9a2b5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c827535db47d300", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/os-shell/shell.manifest.ts:54"}, "properties": {"repobilityId": "56be6947d393c509", "scanner": "scanner-primary", "fingerprint": "7c827535db47d300", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d2cbdf6a87ad97f8", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/auth/lib/device.ts:1"}, "properties": {"repobilityId": "a024a2f12fe969ec", "scanner": "scanner-primary", "fingerprint": "d2cbdf6a87ad97f8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-29689d9f6e5e624a", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/os-terminal/app.tsx:9"}, "properties": {"repobilityId": "48b92254d6642c82", "scanner": "scanner-primary", "fingerprint": "29689d9f6e5e624a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f5dea38d8fd1b8cf", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/os-terminal/components/key-bar.tsx:12"}, "properties": {"repobilityId": "539dc6f439c2bad5", "scanner": "scanner-primary", "fingerprint": "f5dea38d8fd1b8cf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-725abaf13459b548", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/os-terminal/lib/use-pty.ts:3"}, "properties": {"repobilityId": "a45d6bbe6c00a7e7", "scanner": "scanner-primary", "fingerprint": "725abaf13459b548", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-91a556bdc509044b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/slices/os-terminal/lib/use-pty.ts:25"}, "properties": {"repobilityId": "84e8142042da0540", "scanner": "scanner-primary", "fingerprint": "91a556bdc509044b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-741ebea775683a6c", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/os-terminal/lib/commands.ts:1"}, "properties": {"repobilityId": "fa3b4ebc31cc10ab", "scanner": "scanner-primary", "fingerprint": "741ebea775683a6c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-42efda1bbeca96f1", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/slices/appshell/defaults.ts:1"}, "properties": {"repobilityId": "f159b4e106d50a00", "scanner": "scanner-primary", "fingerprint": "42efda1bbeca96f1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-90fb167068750c7f", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/responsive/use-is-mobile.ts:7"}, "properties": {"repobilityId": "17f0357feb74edef", "scanner": "scanner-primary", "fingerprint": "90fb167068750c7f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ce3380bd248a015f", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/slices/appshell/components/home-indicator.tsx:3"}, "properties": {"repobilityId": "929600c371753ef1", "scanner": "scanner-primary", "fingerprint": "ce3380bd248a015f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-95f7a933f198a9b8", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/components/wallpaper.tsx:26"}, "properties": {"repobilityId": "aa8ae0724a56299c", "scanner": "scanner-primary", "fingerprint": "95f7a933f198a9b8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-caebae8c3d5d4ab7", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/components/dock-parts.tsx:35"}, "properties": {"repobilityId": "589b55065925ad56", "scanner": "scanner-primary", "fingerprint": "caebae8c3d5d4ab7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-86975b5b40f71fa5", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/components/app-launcher.tsx:14"}, "properties": {"repobilityId": "4fad8a3ab1391849", "scanner": "scanner-primary", "fingerprint": "86975b5b40f71fa5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c45a7160e858767", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/slices/appshell/components/mobile-shell.tsx:34"}, "properties": {"repobilityId": "ac48955312b87611", "scanner": "scanner-primary", "fingerprint": "3c45a7160e858767", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e0e538e40605dfc8", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/slices/appshell/components/dock.tsx:13"}, "properties": {"repobilityId": "0d46b095f341fba7", "scanner": "scanner-primary", "fingerprint": "e0e538e40605dfc8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9c189c47ef95bbb4", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/slices/appshell/components/window-content.tsx:8"}, "properties": {"repobilityId": "82d32313ec3be5c5", "scanner": "scanner-primary", "fingerprint": "9c189c47ef95bbb4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a1e65f10cfe6c4c", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/slices/appshell/components/layout/app-chrome.tsx:26"}, "properties": {"repobilityId": "33e617ea692ce9b8", "scanner": "scanner-primary", "fingerprint": "9a1e65f10cfe6c4c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3f08a338cad11540", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/components/shells/dashboard/dashboard-shell.tsx:36"}, "properties": {"repobilityId": "452d32ede7d42345", "scanner": "scanner-primary", "fingerprint": "3f08a338cad11540", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-efdb5451e0ee157f", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/registry/shell-config.tsx:5"}, "properties": {"repobilityId": "dd4b26eb08d6f755", "scanner": "scanner-primary", "fingerprint": "efdb5451e0ee157f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f81de6be2b9eec2a", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/registry/shell-ui.tsx:6"}, "properties": {"repobilityId": "1d30e872e5a9da95", "scanner": "scanner-primary", "fingerprint": "f81de6be2b9eec2a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-518a98e4598eec88", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/registry/capabilities.tsx:8"}, "properties": {"repobilityId": "33706cf85c9e10d0", "scanner": "scanner-primary", "fingerprint": "518a98e4598eec88", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d21df7773f7015e4", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/lib/window-title.ts:5"}, "properties": {"repobilityId": "5cf8e377bf5dd6d0", "scanner": "scanner-primary", "fingerprint": "d21df7773f7015e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-93a1f17480e12bcc", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/appshell/lib/url-sync.test.ts:7"}, "properties": {"repobilityId": "8f26c2a67e1f8689", "scanner": "scanner-primary", "fingerprint": "93a1f17480e12bcc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a2207b4d92d36fd5", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/lib/use-focused-hotkey.ts:11"}, "properties": {"repobilityId": "79024acc364aa17c", "scanner": "scanner-primary", "fingerprint": "a2207b4d92d36fd5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-077601174f8a4a99", "level": "note", "message": {"text": "Legacy-named symbol `offOld` in frontend/slices/appshell/lib/dnd.test.ts:8"}, "properties": {"repobilityId": "1ac1e90845001489", "scanner": "scanner-primary", "fingerprint": "077601174f8a4a99", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-296a28680c8d6891", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/lib/store-state.ts:3"}, "properties": {"repobilityId": "fc033cfd7dc73c5b", "scanner": "scanner-primary", "fingerprint": "296a28680c8d6891", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-65d28a98af57ee99", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/lib/window-tabs.ts:11"}, "properties": {"repobilityId": "f90430d69fbc7074", "scanner": "scanner-primary", "fingerprint": "65d28a98af57ee99", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-592e80c792755a87", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/slices/appshell/lib/host-api.tsx:3"}, "properties": {"repobilityId": "5ffc4b4be957f851", "scanner": "scanner-primary", "fingerprint": "592e80c792755a87", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f5df63591bec3183", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/lib/commands.ts:5"}, "properties": {"repobilityId": "478f59b5b03bf602", "scanner": "scanner-primary", "fingerprint": "f5df63591bec3183", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1f1a10c527c20cf", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/lib/spaces.ts:9"}, "properties": {"repobilityId": "f5244a21ae45793c", "scanner": "scanner-primary", "fingerprint": "e1f1a10c527c20cf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6752e49a0df96bc0", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/appshell/lib/store-geometry.ts:11"}, "properties": {"repobilityId": "43837bddcfa12a68", "scanner": "scanner-primary", "fingerprint": "6752e49a0df96bc0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e8eecf08d9180147", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/lib/inspector.ts:6"}, "properties": {"repobilityId": "92ca21bba66cf0fd", "scanner": "scanner-primary", "fingerprint": "e8eecf08d9180147", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e5eec0b6bff76133", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/appshell/runtime/use-url-sync.tsx:19"}, "properties": {"repobilityId": "85cea8b628da19cf", "scanner": "scanner-primary", "fingerprint": "e5eec0b6bff76133", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9168feaae9418684", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/appshell/hooks/use-persist-layout.ts:14"}, "properties": {"repobilityId": "fd80338cdeeda393", "scanner": "scanner-primary", "fingerprint": "9168feaae9418684", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-18e4f0fec106bc18", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/assistant/app.tsx:75"}, "properties": {"repobilityId": "c3cf73c79b0f7f84", "scanner": "scanner-primary", "fingerprint": "18e4f0fec106bc18", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-185e34a08356e6d0", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/assistant/components/chat-panel.tsx:37"}, "properties": {"repobilityId": "02dad09bb7e73c97", "scanner": "scanner-primary", "fingerprint": "185e34a08356e6d0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a408ed9152428771", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/assistant/lib/host.ts:3"}, "properties": {"repobilityId": "afe8aa611b7d4176", "scanner": "scanner-primary", "fingerprint": "a408ed9152428771", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-89afb8dfa115075b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/slices/media-studio/app.tsx:96"}, "properties": {"repobilityId": "345c751f3312c6de", "scanner": "scanner-primary", "fingerprint": "89afb8dfa115075b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fc5f9f018c972bf7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/slices/media-studio/lib/save-image.ts:35"}, "properties": {"repobilityId": "80408248e3896479", "scanner": "scanner-primary", "fingerprint": "fc5f9f018c972bf7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-315b60bfb1b771b1", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/app-store/components/uninstall-confirm.tsx:7"}, "properties": {"repobilityId": "4d8f99df2f33a645", "scanner": "scanner-primary", "fingerprint": "315b60bfb1b771b1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8970b10173b98e8f", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/app-store/lib/enabled-store.ts:5"}, "properties": {"repobilityId": "915953851b0523c3", "scanner": "scanner-primary", "fingerprint": "8970b10173b98e8f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc1b19700e5c62b0", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/app-store/lib/system-catalog.ts:22"}, "properties": {"repobilityId": "68069e2bf5d7d1bb", "scanner": "scanner-primary", "fingerprint": "cc1b19700e5c62b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7bc4500db4694425", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/app-store/lib/use-store-install.ts:10"}, "properties": {"repobilityId": "1b607eced548a364", "scanner": "scanner-primary", "fingerprint": "7bc4500db4694425", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-60cc2e095150f06e", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/app-store/lib/store-catalog.ts:1"}, "properties": {"repobilityId": "67e718f90310d67a", "scanner": "scanner-primary", "fingerprint": "60cc2e095150f06e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-da7e1ac7ad9cfde3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/slices/browser/lib/host.ts:42"}, "properties": {"repobilityId": "1b47fed62af8e2a3", "scanner": "scanner-primary", "fingerprint": "da7e1ac7ad9cfde3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-238b2bca9b740b05", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/slices/browser/lib/use-screencast.ts:30"}, "properties": {"repobilityId": "c1cd22db40250a47", "scanner": "scanner-primary", "fingerprint": "238b2bca9b740b05", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a41abfd4d03847a7", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/slices/browser/lib/use-offline-tracker.ts:3"}, "properties": {"repobilityId": "13c9db53a57ca233", "scanner": "scanner-primary", "fingerprint": "a41abfd4d03847a7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1af0490a4af1ae0a", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/files-manager/lib/read-drop.ts:3"}, "properties": {"repobilityId": "1246dea64cddedd9", "scanner": "scanner-primary", "fingerprint": "1af0490a4af1ae0a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3d2ed7d9a1cd8d40", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/files-manager/hooks/use-dnd.ts:7"}, "properties": {"repobilityId": "dc623edfa60e821b", "scanner": "scanner-primary", "fingerprint": "3d2ed7d9a1cd8d40", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ce815436a78d774", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/files-manager/hooks/use-viewport-window.ts:3"}, "properties": {"repobilityId": "6eb3b78359132a96", "scanner": "scanner-primary", "fingerprint": "8ce815436a78d774", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b8e84fdda360f86", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/files-manager/hooks/use-file-commands.ts:74"}, "properties": {"repobilityId": "08b103b84ddb06c4", "scanner": "scanner-primary", "fingerprint": "4b8e84fdda360f86", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6b18f932e06a1029", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/server.ts:1"}, "properties": {"repobilityId": "5b7189f60be3d3b2", "scanner": "scanner-primary", "fingerprint": "6b18f932e06a1029", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fbdbb2fb3ab465d5", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/components/confirm-remove-layer.tsx:22"}, "properties": {"repobilityId": "90dd851ac7418f96", "scanner": "scanner-primary", "fingerprint": "fbdbb2fb3ab465d5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-028f762ff1b8a455", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/components/mobile-shell.tsx:27"}, "properties": {"repobilityId": "66d894ee8a4b636d", "scanner": "scanner-primary", "fingerprint": "028f762ff1b8a455", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5b0c31c06742f005", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/image-editor/components/project-loader.tsx:8"}, "properties": {"repobilityId": "cbd37d11d02356c2", "scanner": "scanner-primary", "fingerprint": "5b0c31c06742f005", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a9a589b141045309", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/slices/image-editor/components/project-loader.tsx:24"}, "properties": {"repobilityId": "7613f049c85e49d4", "scanner": "scanner-primary", "fingerprint": "a9a589b141045309", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7a173d326dac37c7", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/components/tool-options-bar.tsx:14"}, "properties": {"repobilityId": "76deb8af5b4479a8", "scanner": "scanner-primary", "fingerprint": "7a173d326dac37c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f5d26dc5ad4a029c", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/components/stage/paint-layer.tsx:12"}, "properties": {"repobilityId": "75eff518e99ff8c6", "scanner": "scanner-primary", "fingerprint": "f5d26dc5ad4a029c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-82094b5734c4eb5f", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/components/stage/masked-group.tsx:7"}, "properties": {"repobilityId": "74be0e5669d048d0", "scanner": "scanner-primary", "fingerprint": "82094b5734c4eb5f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db625dfd68943c6f", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/image-editor/components/panels/layers-panel.tsx:24"}, "properties": {"repobilityId": "b4952a4eaa58d44b", "scanner": "scanner-primary", "fingerprint": "db625dfd68943c6f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c3f2f96f2244467", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/snapshot.ts:1"}, "properties": {"repobilityId": "acce832d34d4eefb", "scanner": "scanner-primary", "fingerprint": "4c3f2f96f2244467", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4639ad9cc78e87be", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/slices/image-editor/lib/history.ts:8"}, "properties": {"repobilityId": "296686e8bda65372", "scanner": "scanner-primary", "fingerprint": "4639ad9cc78e87be", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-11634bdc199e46e7", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/bbox.ts:1"}, "properties": {"repobilityId": "079c2dbbeef70f2b", "scanner": "scanner-primary", "fingerprint": "11634bdc199e46e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b4f4cb470fac3d2f", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/image-editor/lib/doc-ops.ts:37"}, "properties": {"repobilityId": "ea01e3bb4a2f2947", "scanner": "scanner-primary", "fingerprint": "b4f4cb470fac3d2f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-df39f674414467d3", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/types.ts:1"}, "properties": {"repobilityId": "49aaa835320a2ed7", "scanner": "scanner-primary", "fingerprint": "df39f674414467d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-494d390699e7ca08", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/headless/run.ts:69"}, "properties": {"repobilityId": "0c66babaff7e6348", "scanner": "scanner-primary", "fingerprint": "494d390699e7ca08", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b79c2253cec4f701", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/headless/editor-core.ts:13"}, "properties": {"repobilityId": "560afb5018d7f1da", "scanner": "scanner-primary", "fingerprint": "b79c2253cec4f701", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2630eb5739eb73f0", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/lib/headless/image-size.ts:1"}, "properties": {"repobilityId": "46e4908183e1a031", "scanner": "scanner-primary", "fingerprint": "2630eb5739eb73f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f2bc15c7a2c69732", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/hooks/use-keyboard.ts:31"}, "properties": {"repobilityId": "ea8ae096a35163ca", "scanner": "scanner-primary", "fingerprint": "f2bc15c7a2c69732", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9623840709579c42", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/image-editor/hooks/use-stage-interactions.ts:11"}, "properties": {"repobilityId": "9bc3bf687a19a883", "scanner": "scanner-primary", "fingerprint": "9623840709579c42", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba99828b1aaad5f8", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/reel-editor/components/reel-panes.tsx:20"}, "properties": {"repobilityId": "3e3e6d5f32c3817c", "scanner": "scanner-primary", "fingerprint": "ba99828b1aaad5f8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9e4abea1d4471a58", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/reel-editor/components/compact-panes.tsx:18"}, "properties": {"repobilityId": "cb8b2d6f59cd69c0", "scanner": "scanner-primary", "fingerprint": "9e4abea1d4471a58", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-86b21824310cbd3e", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/reel-editor/components/preview-stage.tsx:10"}, "properties": {"repobilityId": "deb31b2274151491", "scanner": "scanner-primary", "fingerprint": "86b21824310cbd3e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-95b478130d022f76", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/reel-editor/lib/host.ts:1"}, "properties": {"repobilityId": "c8880f7573bdd456", "scanner": "scanner-primary", "fingerprint": "95b478130d022f76", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-49f357ce439f7a1e", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/reel-editor/lib/frame-store.ts:5"}, "properties": {"repobilityId": "f2c20b95d39f8e2f", "scanner": "scanner-primary", "fingerprint": "49f357ce439f7a1e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bcf27f39687bd28b", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/reel-editor/lib/media-sync.ts:1"}, "properties": {"repobilityId": "602e8612d26f56ee", "scanner": "scanner-primary", "fingerprint": "bcf27f39687bd28b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ceb6f0a23ca598fa", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/reel-editor/lib/media-cache.ts:1"}, "properties": {"repobilityId": "cb8c597585bb302d", "scanner": "scanner-primary", "fingerprint": "ceb6f0a23ca598fa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9cc9bdb8bace05ab", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/reel-editor/lib/render.ts:1"}, "properties": {"repobilityId": "5f664b261bcdefec", "scanner": "scanner-primary", "fingerprint": "9cc9bdb8bace05ab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-450aa2e85bfd17cb", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/reel-editor/lib/layout.ts:1"}, "properties": {"repobilityId": "9ca6b5dec69a9cc2", "scanner": "scanner-primary", "fingerprint": "450aa2e85bfd17cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b469c9dec485c9a4", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/slices/reel-editor/lib/media-audio.ts:31"}, "properties": {"repobilityId": "dc2ce3b02feb7e17", "scanner": "scanner-primary", "fingerprint": "b469c9dec485c9a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ed2ead5e6f7285e1", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/code-editor/lib/highlight.ts:117"}, "properties": {"repobilityId": "82f4b3db9491670b", "scanner": "scanner-primary", "fingerprint": "ed2ead5e6f7285e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dc98975605d6b4e0", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/slices/code-editor/lib/tokenize.test.ts:1"}, "properties": {"repobilityId": "67d75e0d39902d4e", "scanner": "scanner-primary", "fingerprint": "dc98975605d6b4e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1d74ee9090e597dd", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/slices/code-editor/lib/build-preview.ts:3"}, "properties": {"repobilityId": "87a3c87a99f24bfd", "scanner": "scanner-primary", "fingerprint": "1d74ee9090e597dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-15acb675601c2bc7", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/shared/file-tree/dir.tsx:38"}, "properties": {"repobilityId": "af627acf88f4285e", "scanner": "scanner-primary", "fingerprint": "15acb675601c2bc7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2fd414dbf01624c9", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/os-root.tsx:21"}, "properties": {"repobilityId": "11ba87ef6bfcec48", "scanner": "scanner-primary", "fingerprint": "2fd414dbf01624c9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-673989a47b0a0fe9", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/auth/login/route.ts:26"}, "properties": {"repobilityId": "0666e204e0f49f81", "scanner": "scanner-primary", "fingerprint": "673989a47b0a0fe9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0741abe9cccf0240", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/v1/term/stream/route.ts:10"}, "properties": {"repobilityId": "14d432f5ba4993cc", "scanner": "scanner-primary", "fingerprint": "0741abe9cccf0240", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-238bc1d1ca47687b", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/v1/fs/raw/route.ts:31"}, "properties": {"repobilityId": "68e8f13d843f6afa", "scanner": "scanner-primary", "fingerprint": "238bc1d1ca47687b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-30b4acfb075360a0", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/sw/route.ts:3"}, "properties": {"repobilityId": "f3a4fae73f98f257", "scanner": "scanner-primary", "fingerprint": "30b4acfb075360a0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-023e95e3be195f1c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/sw/route.ts:43"}, "properties": {"repobilityId": "db65f077740d1cc9", "scanner": "scanner-primary", "fingerprint": "023e95e3be195f1c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d10d08781340cdcd", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/assistant/route.ts:11"}, "properties": {"repobilityId": "12dd4c3834d509a7", "scanner": "scanner-primary", "fingerprint": "d10d08781340cdcd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4d71fe985250d912", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/[[...slug]]/page.tsx:10"}, "properties": {"repobilityId": "69dbc54fb7fca4b7", "scanner": "scanner-primary", "fingerprint": "4d71fe985250d912", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-29d7194a3ee76076", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/ai/stream.ts:1"}, "properties": {"repobilityId": "51084bd55c8bfe37", "scanner": "scanner-primary", "fingerprint": "29d7194a3ee76076", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3219f7e06535a9d0", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/auth/require-session.ts:14"}, "properties": {"repobilityId": "267e0dbe022fdf59", "scanner": "scanner-primary", "fingerprint": "3219f7e06535a9d0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-18a51c3dcdabb672", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/auth/device-store.ts:5"}, "properties": {"repobilityId": "1a895194ce16f668", "scanner": "scanner-primary", "fingerprint": "18a51c3dcdabb672", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-65ccab0fedce004c", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/host/host-error.ts:1"}, "properties": {"repobilityId": "d4af7ca81de63ce8", "scanner": "scanner-primary", "fingerprint": "65ccab0fedce004c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1e4f5117520db712", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/host/paths.test.ts:15"}, "properties": {"repobilityId": "226d74868a74d58b", "scanner": "scanner-primary", "fingerprint": "1e4f5117520db712", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e676a68f71313a39", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/host/pty.ts:5"}, "properties": {"repobilityId": "70c09cec2247727e", "scanner": "scanner-primary", "fingerprint": "e676a68f71313a39", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-06701722b58de612", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/host/child-env.ts:1"}, "properties": {"repobilityId": "c1ecbb04e28e9595", "scanner": "scanner-primary", "fingerprint": "06701722b58de612", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-22414dcf01fc2768", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/host/fs.test.ts:16"}, "properties": {"repobilityId": "ecb4f858f4d6b779", "scanner": "scanner-primary", "fingerprint": "22414dcf01fc2768", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-13dd1e0eb15c7e54", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/host/paths.ts:1"}, "properties": {"repobilityId": "a50c5495e0da8002", "scanner": "scanner-primary", "fingerprint": "13dd1e0eb15c7e54", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d166885d7fa712fb", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/host/exec-filter.test.ts:99"}, "properties": {"repobilityId": "e30f5975f840a9ac", "scanner": "scanner-primary", "fingerprint": "d166885d7fa712fb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1447f30c20bf79eb", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/host/audit-schema.test.ts:1"}, "properties": {"repobilityId": "311480d23e89dd69", "scanner": "scanner-primary", "fingerprint": "1447f30c20bf79eb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-51e8ba9dca840bf0", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/host/api-error.ts:1"}, "properties": {"repobilityId": "4660458b0a137842", "scanner": "scanner-primary", "fingerprint": "51e8ba9dca840bf0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7d5ea3a21bdee6e8", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/host/fs-upload.ts:51"}, "properties": {"repobilityId": "a75b566de9fd5544", "scanner": "scanner-primary", "fingerprint": "7d5ea3a21bdee6e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2a92d4301edff00a", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/host/exec.ts:1"}, "properties": {"repobilityId": "403630c713614be5", "scanner": "scanner-primary", "fingerprint": "2a92d4301edff00a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-58bb24b2d41d2d0e", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/host/multipart.ts:3"}, "properties": {"repobilityId": "77c1155d64f5964e", "scanner": "scanner-primary", "fingerprint": "58bb24b2d41d2d0e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3a1f8eec92d009af", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/agent/server.test.ts:3"}, "properties": {"repobilityId": "af01866087600396", "scanner": "scanner-primary", "fingerprint": "3a1f8eec92d009af", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e58064efd05ba9bb", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/agent/server.ts:1"}, "properties": {"repobilityId": "bacbbf899352363b", "scanner": "scanner-primary", "fingerprint": "e58064efd05ba9bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-54a596814d445ee1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/agent/server.ts:78"}, "properties": {"repobilityId": "dd63c4f03123c16a", "scanner": "scanner-primary", "fingerprint": "54a596814d445ee1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4d9178f250023a55", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/os-api/http-adapter.ts:41"}, "properties": {"repobilityId": "0015936279767963", "scanner": "scanner-primary", "fingerprint": "4d9178f250023a55", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-942eced213259dc6", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/os-api/upload.ts:8"}, "properties": {"repobilityId": "144cf09f46941821", "scanner": "scanner-primary", "fingerprint": "942eced213259dc6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-04590169de938e05", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/os-api/upload.ts:4"}, "properties": {"repobilityId": "5c075aa122343492", "scanner": "scanner-primary", "fingerprint": "04590169de938e05", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8e81ee1321a4f97b", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/os-api/index.tsx:24"}, "properties": {"repobilityId": "396f621e436c5c9e", "scanner": "scanner-primary", "fingerprint": "8e81ee1321a4f97b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-49ca7fe91f6df47a", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/os-api/types.ts:1"}, "properties": {"repobilityId": "8ea3cbd148e63f78", "scanner": "scanner-primary", "fingerprint": "49ca7fe91f6df47a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1314c8bb9761790e", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/quicklinks/store.tsx:14"}, "properties": {"repobilityId": "6010d97a026a8b64", "scanner": "scanner-primary", "fingerprint": "1314c8bb9761790e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d7c18eb9a65b5024", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/prefs/use-prefs-sync.ts:11"}, "properties": {"repobilityId": "1b69489c7bc05e45", "scanner": "scanner-primary", "fingerprint": "d7c18eb9a65b5024", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ddb9c9c2efab670a", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/appearance/wallpapers.ts:1"}, "properties": {"repobilityId": "611f51d4968756fc", "scanner": "scanner-primary", "fingerprint": "ddb9c9c2efab670a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c0c09ba439fbacc", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/appearance/wallpaper-upload.ts:3"}, "properties": {"repobilityId": "ec19071a49bf4f65", "scanner": "scanner-primary", "fingerprint": "7c0c09ba439fbacc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-50474df801c94f50", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/appearance/wallpaper-upload.ts:38"}, "properties": {"repobilityId": "52589e2ef5c33356", "scanner": "scanner-primary", "fingerprint": "50474df801c94f50", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c7579de656664ec8", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/appearance/presets/fonts.ts:1"}, "properties": {"repobilityId": "5c1edb713d4112ce", "scanner": "scanner-primary", "fingerprint": "c7579de656664ec8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2fe7adf49736bb11", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/appearance/presets/apply.ts:5"}, "properties": {"repobilityId": "2053cf9bfa2de524", "scanner": "scanner-primary", "fingerprint": "2fe7adf49736bb11", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c449c469ee320616", "level": "none", "message": {"text": "Commented-code block (8 lines) in os-browser/server.mjs:7"}, "properties": {"repobilityId": "63b1f74a895338c0", "scanner": "scanner-primary", "fingerprint": "c449c469ee320616", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3638677d4ee20f56", "level": "none", "message": {"text": "Commented-code block (7 lines) in mock-os/tweaks-panel.jsx:15"}, "properties": {"repobilityId": "08ce7d236627fba4", "scanner": "scanner-primary", "fingerprint": "3638677d4ee20f56", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8a47f94328bcddd7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 mock-os/js/core/api.jsx:40"}, "properties": {"repobilityId": "79c4e9db6aad668d", "scanner": "scanner-primary", "fingerprint": "8a47f94328bcddd7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9cac7ce15e72817b", "level": "note", "message": {"text": "31 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "1a52e2d4d46a6e40", "scanner": "scanner-primary", "fingerprint": "9cac7ce15e72817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}]}]}