{"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-a88c5848f725e8ed", "name": "Stray `console.log` in TS/JS \u2014 vite.config.ts:87", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 vite.config.ts:87"}, "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-bfe40bafd4d5b8d3", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec-dashboard/components/FinancialsTab.tsx:1615", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec-dashboard/components/FinancialsTab.tsx:1615"}, "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-aa3cd3f32561cca6", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec-dashboard/components/ScheduleBImport.tsx:1586", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec-dashboard/components/ScheduleBImport.tsx:1586"}, "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-a7c76e0cd5ecee47", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/BriefingHero.tsx:366", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/BriefingHero.tsx:366"}, "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-2481617911b55ad9", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/GlobalClockifyTimer.tsx:91", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/GlobalClockifyTimer.tsx:91"}, "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-edbd16ce5d33e2ce", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/layout/CommandPalette.tsx:330", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/layout/CommandPalette.tsx:330"}, "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-bf775109a4ec4a3f", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/notebook/NotebookSidebar.tsx:67", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/notebook/NotebookSidebar.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-a7b3db9745e9c497", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 client/src/components/ui/chart.tsx:81", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 client/src/components/ui/chart.tsx:81"}, "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-285e021caa273b4c", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/dashboard/SupplementsCard.tsx:258", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/dashboard/SupplementsCard.tsx:258"}, "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-191224944a52cdd2", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/dashboard/NotesCard.tsx:304", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/dashboard/NotesCard.tsx:304"}, "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-6469881caf1b4572", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/dashboard/MarketHeadlinesCard.tsx:101", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/dashboard/MarketHeadlinesCard.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-f418ecd174f2527f", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/dashboard/SolarReadingsCard.tsx:81", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/dashboard/SolarReadingsCard.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-36af08a14e028eee", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/dashboard/ChatPanel.tsx:108", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/dashboard/ChatPanel.tsx:108"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fe20a953209e4415", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/components/PermissionPresets.tsx:235", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/components/PermissionPresets.tsx:235"}, "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-a329ae6fda0a4d93", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/components/SolarRecSidebar.tsx:357", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/components/SolarRecSidebar.tsx:357"}, "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-7ea58006202aa5ac", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/DeepUpdateSynthesizer.tsx:1223", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/DeepUpdateSynthesizer.tsx:1223"}, "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-365ca2b257338d42", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/EarlyPayment.tsx:1271", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/EarlyPayment.tsx:1271"}, "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-8cda4bbb52dabb21", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/SolarRecSettings.tsx:220", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/SolarRecSettings.tsx:220"}, "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-536938a07d898ab2", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/DinScrapeManager.tsx:678", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/DinScrapeManager.tsx:678"}, "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-dc714fa1dfc873d8", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/ContractScrapeManager.tsx:523", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/ContractScrapeManager.tsx:523"}, "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-70f387ef66ddd06c", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/AbpInvoiceSettlement.tsx:2684", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/AbpInvoiceSettlement.tsx:2684"}, "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-92ab2b4cba2755ed", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/MonitoringDashboard.tsx:195", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/MonitoringDashboard.tsx:195"}, "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-48871824f0b88344", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/MonitoringOverview.tsx:443", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/MonitoringOverview.tsx:443"}, "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-afe151a45a92e29e", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/meter-reads/SolarEdgeMeterReads.tsx:931", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/meter-reads/SolarEdgeMeterReads.tsx:931"}, "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-23f4db2ed28204a2", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/meter-reads/EgaugeMeterReads.tsx:1135", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/meter-reads/EgaugeMeterReads.tsx:1135"}, "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-e30fff85eb3a9b72", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/meter-reads/HoymilesMeterReads.tsx:805", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/meter-reads/HoymilesMeterReads.tsx:805"}, "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-c91f89ef1a46ef78", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/settings/Settings.tsx:1739", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/settings/Settings.tsx:1739"}, "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-8208f282e732c794", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/notebook/Notebook.tsx:1333", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/notebook/Notebook.tsx:1333"}, "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-8d9b1b406f755aa5", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/habits/HabitsTodayPanel.tsx:78", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/habits/HabitsTodayPanel.tsx:78"}, "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-7c55a4c151fa727f", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/health/HealthSleepPanel.tsx:238", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/health/HealthSleepPanel.tsx:238"}, "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-b42ed58149998688", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/health/HealthInsightsPanel.tsx:363", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/health/HealthInsightsPanel.tsx:363"}, "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-f36928367326e9ec", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/dashboard/GmailWidget.tsx:81", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/dashboard/GmailWidget.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-ebedcacb8ddeef88", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/dashboard/ChatGPTWidget.tsx:376", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/dashboard/ChatGPTWidget.tsx:376"}, "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-216bc89bfa45e4c6", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/dashboard/frontpage/AttachExistingNoteDialog.ts", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/dashboard/frontpage/AttachExistingNoteDialog.tsx:125"}, "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-6d7de2531b9c87db", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/dashboard/frontpage/LinkedNotesBadge.tsx:212", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/dashboard/frontpage/LinkedNotesBadge.tsx:212"}, "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-f1086080877bc5e0", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/supplements/Supplements.tsx:242", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/supplements/Supplements.tsx:242"}, "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-55cd3f70d0be7e9a", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/supplements/SupplementsTodayPanel.tsx:313", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/supplements/SupplementsTodayPanel.tsx:313"}, "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-05556c614b095a58", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/supplements/SupplementsRestockCard.tsx:128", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/supplements/SupplementsRestockCard.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-1ce0719572b60fe9", "name": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/solar-rec/SolarRecDashboard.tsx:5383", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/solar-rec/SolarRecDashboard.tsx:5383"}, "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-8a2fb889ad881551", "name": "Stray `console.log` in TS/JS \u2014 client/src/features/solar-rec/SolarRecDashboard.tsx:6106", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 client/src/features/solar-rec/SolarRecDashboard.tsx:6106"}, "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-74c2cfcc177c9870", "name": "Stray `console.log` in TS/JS \u2014 scripts/recover-core-dataset-from-idb.js:238", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/recover-core-dataset-from-idb.js:238"}, "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-e2739b70cbb0c4bf", "name": "Stray `console.log` in TS/JS \u2014 server/oauth-routes.ts:754", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/oauth-routes.ts:754"}, "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-4bf8b6f8e7e669cd", "name": "Stray `console.log` in TS/JS \u2014 server/scripts/applyDockCanvasMigration.ts:65", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/scripts/applyDockCanvasMigration.ts:65"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-af1b4f048627af7d", "name": "Stray `console.log` in TS/JS \u2014 server/scripts/applyKingOfDayMigration.ts:86", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/scripts/applyKingOfDayMigration.ts:86"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f5e65e745df6ae51", "name": "Stray `console.log` in TS/JS \u2014 server/scripts/applyDockItemsMigration.ts:70", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/scripts/applyDockItemsMigration.ts:70"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7442475b2ddc4033", "name": "Stray `console.log` in TS/JS \u2014 server/scripts/applySupplementsPhase4Migration.ts:89", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/scripts/applySupplementsPhase4Migration.ts:89"}, "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-df17317286590341", "name": "Stray `console.log` in TS/JS \u2014 server/scripts/applyHabitsHealthMigration.ts:83", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/scripts/applyHabitsHealthMigration.ts:83"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3eb36ebd4280b7ae", "name": "Stray `console.log` in TS/JS \u2014 server/scripts/markMigrationApplied.ts:106", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/scripts/markMigrationApplied.ts:106"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4de2b99cfc509132", "name": "Stray `console.log` in TS/JS \u2014 server/scripts/reconcileScheduleBImportState.ts:57", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/scripts/reconcileScheduleBImportState.ts:57"}, "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-785d70890bbbf2b2", "name": "Stray `console.log` in TS/JS \u2014 server/scripts/importSamsungCsv.ts:166", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/scripts/importSamsungCsv.ts:166"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ce682e504616bc21", "name": "Stray `console.log` in TS/JS \u2014 server/scripts/migrateSolarRecDashboardToScope.ts:106", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/scripts/migrateSolarRecDashboardToScope.ts:106"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7368a1833c163ade", "name": "Stray `console.log` in TS/JS \u2014 server/helpers/tokenRefresh.ts:55", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/helpers/tokenRefresh.ts:55"}, "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-ec7e68f6781540bc", "name": "Stray `console.log` in TS/JS \u2014 server/_core/nightlySnapshotScheduler.ts:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/_core/nightlySnapshotScheduler.ts:21"}, "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-ca8405ac25b41247", "name": "Stray `console.log` in TS/JS \u2014 server/_core/index.ts:311", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/_core/index.ts:311"}, "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-5ee7c85396b964fc", "name": "Stray `console.log` in TS/JS \u2014 server/_core/oauth.ts:150", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/_core/oauth.ts:150"}, "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-8231ea918fed4309", "name": "Stray `console.log` in TS/JS \u2014 server/_core/scheduleDaily.ts:132", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/_core/scheduleDaily.ts:132"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-28e41241c4a613ce", "name": "Stray `console.log` in TS/JS \u2014 server/_core/solarRecDashboardRouter.ts:301", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/_core/solarRecDashboardRouter.ts:301"}, "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-b05a0836af0537ed", "name": "Stray `console.log` in TS/JS \u2014 server/services/integrations/todoist.ts:449", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/services/integrations/todoist.ts:449"}, "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-7950167d2c9b9175", "name": "Stray `console.log` in TS/JS \u2014 server/services/integrations/marketData.ts:791", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/services/integrations/marketData.ts:791"}, "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-92b938e18cb60ddc", "name": "Stray `console.log` in TS/JS \u2014 server/services/notifications/dailySnapshot.ts:327", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/services/notifications/dailySnapshot.ts:327"}, "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-5703aba7b3f55655", "name": "Stray `console.log` in TS/JS \u2014 server/services/personalDashboard/commandCenter.ts:160", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/services/personalDashboard/commandCenter.ts:160"}, "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-5763e33d13e009bc", "name": "Stray `console.log` in TS/JS \u2014 server/services/core/csgScheduleBImportJobRunner.ts:64", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/services/core/csgScheduleBImportJobRunner.ts:64"}, "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-cd850738b60d186d", "name": "Stray `console.log` in TS/JS \u2014 server/services/core/scheduleBImportJobRunner.ts:65", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/services/core/scheduleBImportJobRunner.ts:65"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-95a7be756b5e5cda", "name": "Stray `console.log` in TS/JS \u2014 server/services/core/datasetUploadJobPoller.ts:63", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/services/core/datasetUploadJobPoller.ts:63"}, "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-5227a0327a6284f1", "name": "Stray `console.log` in TS/JS \u2014 server/services/core/datasetUploadStaleJobSweeper.ts:77", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/services/core/datasetUploadStaleJobSweeper.ts:77"}, "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-43031837c87dd363", "name": "Stray `console.log` in TS/JS \u2014 server/services/core/datasetUploadJobRunner.ts:122", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/services/core/datasetUploadJobRunner.ts:122"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2eb09cb927f98411", "name": "Stray `console.log` in TS/JS \u2014 server/services/core/datasetUploadWorkerHost.ts:78", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/services/core/datasetUploadWorkerHost.ts:78"}, "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-bcc00133fe1ffd2c", "name": "Stray `console.log` in TS/JS \u2014 server/services/core/ruAttribution.ts:79", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/services/core/ruAttribution.ts:79"}, "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-1e6be53b4e42960d", "name": "Stray `console.log` in TS/JS \u2014 server/services/solar/serverSideMigration.ts:470", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/services/solar/serverSideMigration.ts:470"}, "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-232d7fafa4494807", "name": "Stray `console.log` in TS/JS \u2014 server/services/solar/buildSystemSnapshot.ts:932", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/services/solar/buildSystemSnapshot.ts:932"}, "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-02b265b343b584e3", "name": "Stray `console.log` in TS/JS \u2014 server/services/solar/buildFoundationArtifact.ts:823", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/services/solar/buildFoundationArtifact.ts:823"}, "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-20ff209d85a65139", "name": "Stray `console.log` in TS/JS \u2014 server/services/solar/dashboardBuildJobs.ts:393", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/services/solar/dashboardBuildJobs.ts:393"}, "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-1789a9c948778e7a", "name": "Stray `console.log` in TS/JS \u2014 server/services/solar/datasetIngestion.ts:772", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/services/solar/datasetIngestion.ts:772"}, "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-6f812478cd07a6f2", "name": "Stray `console.log` in TS/JS \u2014 server/services/solar/egauge.ts:873", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/services/solar/egauge.ts:873"}, "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-d50e670d2db1ef01", "name": "Stray `console.log` in TS/JS \u2014 server/services/solar/dashboardJobMetrics.ts:149", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/services/solar/dashboardJobMetrics.ts:149"}, "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-d524f5b2bb48a0c7", "name": "TODO/FIXME marker in shipping code \u2014 server/services/solar/buildDeliverySnapshot.ts:32", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 server/services/solar/buildDeliverySnapshot.ts:32"}, "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-c8c37d5aafc44ba4", "name": "Stray `console.log` in TS/JS \u2014 server/solar/monitoring.service.ts:177", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/solar/monitoring.service.ts:177"}, "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-4257e1b83f044099", "name": "Stray `console.log` in TS/JS \u2014 server/solar/monitoringScheduler.ts:93", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/solar/monitoringScheduler.ts:93"}, "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-c484e9e46786d173", "name": "Stray `console.log` in TS/JS \u2014 server/routers/personalData.ts:2747", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 server/routers/personalData.ts:2747"}, "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-55bcdd7f724f133f", "name": "Insecure pattern 'node_child_process' in vite.config.ts:4", "shortDescription": {"text": "Insecure pattern 'node_child_process' in vite.config.ts:4"}, "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-8df37d9232a59094", "name": "Insecure pattern 'dangerous_innerhtml' in client/src/components/ui/chart.tsx:81", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in client/src/components/ui/chart.tsx:81"}, "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-8d4648fea44389e1", "name": "Insecure pattern 'direct_innerhtml_assignment' in client/src/components/dashboard/NotesCard.tsx:21", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in client/src/components/dashboard/NotesCard.tsx:21"}, "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-4e44ecd706675767", "name": "Insecure pattern 'direct_innerhtml_assignment' in client/src/lib/noteContent.ts:115", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in client/src/lib/noteContent.ts:115"}, "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-8216ab2c7e36ff87", "name": "Insecure pattern 'direct_innerhtml_assignment' in client/src/features/dashboard/dashboard.helpers.ts:29", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in client/src/features/dashboard/dashboard.helpers.ts:29"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f76ce31c637dbcdb", "name": "Insecure pattern 'weak_hash' in server/_core/totp.ts:8", "shortDescription": {"text": "Insecure pattern 'weak_hash' in server/_core/totp.ts:8"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2a32cb54824ed5cd", "name": "Insecure pattern 'node_child_process' in server/services/integrations/marketData.ts:7", "shortDescription": {"text": "Insecure pattern 'node_child_process' in server/services/integrations/marketData.ts:7"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c44ebe0517cf11d4", "name": "Insecure pattern 'direct_innerhtml_assignment' in server/services/personalDashboard/dailyActivityReportHtml.ts:399", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in server/services/personalDashboard/dailyActivityReportHtml.ts:399"}, "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-a72971d7f6b88bb9", "name": "Insecure pattern 'node_child_process' in server/services/core/politicalOdds.ts:21", "shortDescription": {"text": "Insecure pattern 'node_child_process' in server/services/core/politicalOdds.ts:21"}, "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-c894cecde85bdd00", "name": "Insecure pattern 'node_child_process' in server/services/core/approvalRatings.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in server/services/core/approvalRatings.ts:1"}, "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-33dfce00db7d271e", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-java@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cb639d9a10a47b23", "name": "package.json defines install-time lifecycle scripts", "shortDescription": {"text": "package.json defines install-time lifecycle scripts"}, "fullDescription": {"text": "preinstall/install/postinstall/prepare scripts execute during dependency installation. Review them carefully for network calls, obfuscation, shell execution, or credential access."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f111dccede743767", "name": "Very large file: client/src/solar-rec-dashboard/components/FinancialsTab.tsx (1924 lines)", "shortDescription": {"text": "Very large file: client/src/solar-rec-dashboard/components/FinancialsTab.tsx (1924 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f952f22b89121f14", "name": "Very large file: client/src/solar-rec-dashboard/components/AppPipelineTab.tsx (1294 lines)", "shortDescription": {"text": "Very large file: client/src/solar-rec-dashboard/components/AppPipelineTab.tsx (1294 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0476687cdce0be62", "name": "Very large file: client/src/solar-rec-dashboard/components/OfflineMonitoringTab.tsx (1500 lines)", "shortDescription": {"text": "Very large file: client/src/solar-rec-dashboard/components/OfflineMonitoringTab.tsx (1500 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f5c66e0a016229b7", "name": "Very large file: client/src/solar-rec-dashboard/components/ForecastTab.tsx (1145 lines)", "shortDescription": {"text": "Very large file: client/src/solar-rec-dashboard/components/ForecastTab.tsx (1145 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5e4267ee4c80ad9d", "name": "Very large file: client/src/solar-rec-dashboard/components/ScheduleBImport.tsx (2428 lines)", "shortDescription": {"text": "Very large file: client/src/solar-rec-dashboard/components/ScheduleBImport.tsx (2428 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-27712542ece3eb26", "name": "Very large file: client/src/solar-rec-dashboard/components/RecPerformanceEvaluationTab.tsx (1260 lines)", "shortDescription": {"text": "Very large file: client/src/solar-rec-dashboard/components/RecPerformanceEvaluationTab.tsx (1260 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-74b50e7061b21995", "name": "Very large file: client/src/solar-rec-dashboard/components/PerformanceRatioTab.tsx (2392 lines)", "shortDescription": {"text": "Very large file: client/src/solar-rec-dashboard/components/PerformanceRatioTab.tsx (2392 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e1054b654a790ea3", "name": "Very large file: client/src/solar-rec-dashboard/lib/dashboardMountResilience.test.ts (1741 lines)", "shortDescription": {"text": "Very large file: client/src/solar-rec-dashboard/lib/dashboardMountResilience.test.ts (1741 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-95eef8389d14809c", "name": "Very large file: client/src/components/AbpPaymentEmailPreview.tsx (971 lines)", "shortDescription": {"text": "Very large file: client/src/components/AbpPaymentEmailPreview.tsx (971 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cf070749b182f08e", "name": "Very large file: client/src/lib/abpSettlement.ts (2614 lines)", "shortDescription": {"text": "Very large file: client/src/lib/abpSettlement.ts (2614 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ceaea0148ebecea7", "name": "Very large file: client/src/solar-rec/pages/DeepUpdateSynthesizer.tsx (1356 lines)", "shortDescription": {"text": "Very large file: client/src/solar-rec/pages/DeepUpdateSynthesizer.tsx (1356 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a224d8e8aeec0705", "name": "Very large file: client/src/solar-rec/pages/EarlyPayment.tsx (1436 lines)", "shortDescription": {"text": "Very large file: client/src/solar-rec/pages/EarlyPayment.tsx (1436 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fb68dd66ceef2133", "name": "Very large file: client/src/solar-rec/pages/SystemDetail.tsx (1794 lines)", "shortDescription": {"text": "Very large file: client/src/solar-rec/pages/SystemDetail.tsx (1794 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2960847da2aa3100", "name": "Very large file: client/src/solar-rec/pages/AbpInvoiceSettlement.tsx (4209 lines)", "shortDescription": {"text": "Very large file: client/src/solar-rec/pages/AbpInvoiceSettlement.tsx (4209 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0053ebfc2fee4422", "name": "Very large file: client/src/solar-rec/pages/MonitoringDashboard.tsx (1653 lines)", "shortDescription": {"text": "Very large file: client/src/solar-rec/pages/MonitoringDashboard.tsx (1653 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d4b24e823cb43846", "name": "Very large file: client/src/solar-rec/pages/InvoiceMatchDashboard.tsx (1449 lines)", "shortDescription": {"text": "Very large file: client/src/solar-rec/pages/InvoiceMatchDashboard.tsx (1449 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-13ac8964f9ef739f", "name": "Very large file: client/src/features/settings/Settings.tsx (2974 lines)", "shortDescription": {"text": "Very large file: client/src/features/settings/Settings.tsx (2974 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0104171eb659de68", "name": "Very large file: client/src/features/notebook/Notebook.tsx (2134 lines)", "shortDescription": {"text": "Very large file: client/src/features/notebook/Notebook.tsx (2134 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8dfd3d6be455e001", "name": "Very large file: client/src/features/dashboard/frontpage/DailyWorkflowPanel.tsx (1713 lines)", "shortDescription": {"text": "Very large file: client/src/features/dashboard/frontpage/DailyWorkflowPanel.tsx (1713 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-70fe7b97dc14ec4b", "name": "Very large file: client/src/features/solar-rec/SolarRecDashboard.tsx (6501 lines)", "shortDescription": {"text": "Very large file: client/src/features/solar-rec/SolarRecDashboard.tsx (6501 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-42ffe565587524c3", "name": "Very large file: server/oauth-routes.ts (1454 lines)", "shortDescription": {"text": "Very large file: server/oauth-routes.ts (1454 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-20f3ff1b9e1683ff", "name": "Very large file: server/_core/solarRecRouter.ts (5979 lines)", "shortDescription": {"text": "Very large file: server/_core/solarRecRouter.ts (5979 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-47eba373de2832e6", "name": "Very large file: server/_core/solarRecDashboardRouter.ts (7671 lines)", "shortDescription": {"text": "Very large file: server/_core/solarRecDashboardRouter.ts (7671 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0f4d8b80147770a6", "name": "Very large file: server/services/solar/dashboardCsvExportJobs.test.ts (1946 lines)", "shortDescription": {"text": "Very large file: server/services/solar/dashboardCsvExportJobs.test.ts (1946 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-250aa63e8302c083", "name": "Very large file: server/services/solar/buildDashboardPerformanceRatioFacts.ts (1748 lines)", "shortDescription": {"text": "Very large file: server/services/solar/buildDashboardPerformanceRatioFacts.ts (1748 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cbe58a5c1e7a0c09", "name": "Very large file: server/services/solar/buildDashboardPerformanceRatioFacts.test.ts (1764 lines)", "shortDescription": {"text": "Very large file: server/services/solar/buildDashboardPerformanceRatioFacts.test.ts (1764 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4adbeb8728ea5dcd", "name": "Very large file: server/services/solar/dashboardCsvExportJobs.ts (1744 lines)", "shortDescription": {"text": "Very large file: server/services/solar/dashboardCsvExportJobs.ts (1744 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a3a4bcc4151adfa3", "name": "Very large file: server/services/solar/buildFoundationArtifact.ts (1914 lines)", "shortDescription": {"text": "Very large file: server/services/solar/buildFoundationArtifact.ts (1914 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-17d8acf177074bdd", "name": "Very large file: server/services/solar/buildSlimDashboardSummary.test.ts (1722 lines)", "shortDescription": {"text": "Very large file: server/services/solar/buildSlimDashboardSummary.test.ts (1722 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-808b3114a2cae00e", "name": "Very large file: server/services/solar/buildFoundationArtifact.test.ts (1615 lines)", "shortDescription": {"text": "Very large file: server/services/solar/buildFoundationArtifact.test.ts (1615 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-528c2f265a0cb36e", "name": "Very large file: server/services/solar/teslaPowerhub.test.ts (2103 lines)", "shortDescription": {"text": "Very large file: server/services/solar/teslaPowerhub.test.ts (2103 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1db3154a00521bd8", "name": "Very large file: server/services/solar/egauge.ts (1757 lines)", "shortDescription": {"text": "Very large file: server/services/solar/egauge.ts (1757 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9a8b6ac771756ea4", "name": "Very large file: server/services/solar/teslaPowerhub.ts (3581 lines)", "shortDescription": {"text": "Very large file: server/services/solar/teslaPowerhub.ts (3581 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f11281dde53ebe38", "name": "Very large file: server/services/solar/egauge.test.ts (1987 lines)", "shortDescription": {"text": "Very large file: server/services/solar/egauge.test.ts (1987 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-06f8fa567532f96c", "name": "Very large file: server/services/solar/datasetRowPersistence.ts (1924 lines)", "shortDescription": {"text": "Very large file: server/services/solar/datasetRowPersistence.ts (1924 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-06a63432e3061bdd", "name": "Very large file: server/routers/productivity.ts (1516 lines)", "shortDescription": {"text": "Very large file: server/routers/productivity.ts (1516 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c49a7384868cbfa6", "name": "Very large file: server/routers/personalData.ts (4099 lines)", "shortDescription": {"text": "Very large file: server/routers/personalData.ts (4099 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9e1cc14f926d2903", "name": "Very large file: drizzle/schemas/solar.ts (3022 lines)", "shortDescription": {"text": "Very large file: drizzle/schemas/solar.ts (3022 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 199 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 252 placeholder/mock markers across 102 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 license. 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-17d866d91a7c451e", "name": "Agent instruction/config may expose a secret: CLAUDE.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: CLAUDE.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-df7911fd0406d399", "name": "Commented-code block (6 lines) in vite.config.ts:67", "shortDescription": {"text": "Commented-code block (6 lines) in vite.config.ts:67"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1a45b89a9d5f4d98", "name": "Commented-code block (8 lines) in client/public/service-worker.js:63", "shortDescription": {"text": "Commented-code block (8 lines) in client/public/service-worker.js:63"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-546a384be63b839e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 client/public/service-worker.js:264", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 client/public/service-worker.js:264"}, "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-cd7e71fcb58a2d93", "name": "Commented-code block (6 lines) in client/src/main.tsx:77", "shortDescription": {"text": "Commented-code block (6 lines) in client/src/main.tsx:77"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5579e0682dbb3d88", "name": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/main.tsx:69", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/main.tsx:69"}, "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-8509a049a6ea52b9", "name": "Commented-code block (5 lines) in client/src/solar-rec-main.tsx:13", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/solar-rec-main.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-5228cf685fff816e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/solar-rec-main.tsx:61", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/solar-rec-main.tsx:61"}, "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-f0ff4ea999f40765", "name": "Commented-code block (7 lines) in client/src/App.tsx:20", "shortDescription": {"text": "Commented-code block (7 lines) in client/src/App.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-8149e561e08b9d66", "name": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/App.boot.test.tsx:12", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/App.boot.test.tsx:12"}, "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-423878b90ad20afa", "name": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/state/types.ts:69", "shortDescription": {"text": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/state/types.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-fb71fe45c346c57f", "name": "Legacy-named symbol `snapshot_logs_v1` in client/src/solar-rec-dashboard/components/SnapshotLogTab.tsx:158", "shortDescription": {"text": "Legacy-named symbol `snapshot_logs_v1` in client/src/solar-rec-dashboard/components/SnapshotLogTab.tsx:158"}, "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-0fcb9328d2b5a713", "name": "Commented-code block (7 lines) in client/src/solar-rec-dashboard/components/SnapshotLogTab.tsx:438", "shortDescription": {"text": "Commented-code block (7 lines) in client/src/solar-rec-dashboard/components/SnapshotLogTab.tsx:438"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8ece40a47f9f9402", "name": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/components/FinancialsTab.tsx:78", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/components/FinancialsTab.tsx:78"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c8df3185ddf1897e", "name": "Commented-code block (9 lines) in client/src/solar-rec-dashboard/components/AppPipelineTab.tsx:113", "shortDescription": {"text": "Commented-code block (9 lines) in client/src/solar-rec-dashboard/components/AppPipelineTab.tsx:113"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-955f3b60c18f16f7", "name": "Commented-code block (7 lines) in client/src/solar-rec-dashboard/components/TrendsTab.tsx:84", "shortDescription": {"text": "Commented-code block (7 lines) in client/src/solar-rec-dashboard/components/TrendsTab.tsx:84"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e63830e24660d59c", "name": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/components/AlertsTab.tsx:24", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/components/AlertsTab.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-45bedae307a7ab55", "name": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/components/AnnualReviewTab.tsx:73", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/components/AnnualReviewTab.tsx:73"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-beb0e9b841972e35", "name": "Commented-code block (7 lines) in client/src/solar-rec-dashboard/components/ForecastTab.tsx:62", "shortDescription": {"text": "Commented-code block (7 lines) in client/src/solar-rec-dashboard/components/ForecastTab.tsx:62"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-09e7c23136f9b727", "name": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/components/DataQualityTab.tsx:112", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/components/DataQualityTab.tsx:112"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8595dd77ff27e36c", "name": "Commented-code block (8 lines) in client/src/solar-rec-dashboard/components/AggregatorProgressOverlay.tsx:23", "shortDescription": {"text": "Commented-code block (8 lines) in client/src/solar-rec-dashboard/components/AggregatorProgressOverlay.tsx:23"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-583912771398502b", "name": "Commented-code block (7 lines) in client/src/solar-rec-dashboard/components/ComparisonsTab.tsx:94", "shortDescription": {"text": "Commented-code block (7 lines) in client/src/solar-rec-dashboard/components/ComparisonsTab.tsx:94"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-406533a79a938735", "name": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/components/ScheduleBImport.tsx:120", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/components/ScheduleBImport.tsx:120"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a494abe81a48e0a5", "name": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/components/DashboardBuildProgressBar.tsx:48", "shortDescription": {"text": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/components/DashboardBuildProgressBar.tsx:48"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f780229075f26b78", "name": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/components/TabErrorBoundary.tsx:105", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/components/TabErrorBoundary.tsx:105"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9ddd8f924eabfd3c", "name": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/components/RecPerformanceEvaluationTab.tsx:113", "shortDescription": {"text": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/components/RecPerformanceEvaluationTab.tsx:113"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-63e5145da09cca76", "name": "Commented-code block (15 lines) in client/src/solar-rec-dashboard/components/PerformanceRatioTab.tsx:47", "shortDescription": {"text": "Commented-code block (15 lines) in client/src/solar-rec-dashboard/components/PerformanceRatioTab.tsx:47"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d20357c730533067", "name": "Commented-code block (13 lines) in client/src/solar-rec-dashboard/components/OverviewTab.tsx:221", "shortDescription": {"text": "Commented-code block (13 lines) in client/src/solar-rec-dashboard/components/OverviewTab.tsx:221"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-78ddfb78828264b6", "name": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/components/UploadProgressDialog.tsx:243", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/components/UploadProgressDialog.tsx:243"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e1329832bf4c691e", "name": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/components/DatasetUploadV2Button.tsx:118", "shortDescription": {"text": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/components/DatasetUploadV2Button.tsx:118"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-724e28d1f55e9bcc", "name": "Commented-code block (9 lines) in client/src/solar-rec-dashboard/components/ContractsTab.tsx:95", "shortDescription": {"text": "Commented-code block (9 lines) in client/src/solar-rec-dashboard/components/ContractsTab.tsx:95"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2bb9dab7587bf9b7", "name": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/components/OwnershipTab.tsx:111", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/components/OwnershipTab.tsx:111"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ab8b1d43a805f4af", "name": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/lib/buildDeliveryTrackerData.test.ts:205", "shortDescription": {"text": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/lib/buildDeliveryTrackerData.test.ts:205"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5e410a57ce232747", "name": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/lib/financialsPagination.test.ts:69", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/lib/financialsPagination.test.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-eaf574cf370a4014", "name": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/lib/sharedDatasetInvalidation.test.ts:100", "shortDescription": {"text": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/lib/sharedDatasetInvalidation.test.ts:100"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8b7cf4015834137f", "name": "Commented-code block (15 lines) in client/src/solar-rec-dashboard/lib/financialsTabSaveOverride.test.ts:118", "shortDescription": {"text": "Commented-code block (15 lines) in client/src/solar-rec-dashboard/lib/financialsTabSaveOverride.test.ts:118"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9a380e75309cce54", "name": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/lib/projectDashboardSummary.test.ts:70", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/lib/projectDashboardSummary.test.ts:70"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e2451dc0739b687c", "name": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/lib/buildSystems.test.ts:235", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/lib/buildSystems.test.ts:235"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cd802ab7cba8e42b", "name": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/lib/dashboardMountResilience.test.ts:114", "shortDescription": {"text": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/lib/dashboardMountResilience.test.ts:114"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ba1726af29b51c2f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/solar-rec-dashboard/lib/dashboardMountResilience.test.ts:486", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/solar-rec-dashboard/lib/dashboardMountResilience.test.ts:486"}, "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-3167d6590638cf99", "name": "Commented-code block (10 lines) in client/src/solar-rec-dashboard/lib/dashboardRetryPolicy.test.ts:58", "shortDescription": {"text": "Commented-code block (10 lines) in client/src/solar-rec-dashboard/lib/dashboardRetryPolicy.test.ts:58"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-928a1b7b483313da", "name": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/lib/snapshotPart2ValueSummary.test.ts:6", "shortDescription": {"text": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/lib/snapshotPart2ValueSummary.test.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-117b3e98d054727e", "name": "Commented-code block (7 lines) in client/src/solar-rec-dashboard/lib/dashboardRetryPolicy.ts:118", "shortDescription": {"text": "Commented-code block (7 lines) in client/src/solar-rec-dashboard/lib/dashboardRetryPolicy.ts:118"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3a384b2e04ed0943", "name": "Commented-code block (8 lines) in client/src/solar-rec-dashboard/lib/storageOnlyAutoHeal.test.ts:72", "shortDescription": {"text": "Commented-code block (8 lines) in client/src/solar-rec-dashboard/lib/storageOnlyAutoHeal.test.ts:72"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f421b057095f0d3d", "name": "Legacy-named symbol `dataset_manifest_v1` in client/src/solar-rec-dashboard/lib/constants.ts:131", "shortDescription": {"text": "Legacy-named symbol `dataset_manifest_v1` in client/src/solar-rec-dashboard/lib/constants.ts:131"}, "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-a254d93f3bdcdf4e", "name": "Commented-code block (11 lines) in client/src/solar-rec-dashboard/lib/constants.ts:41", "shortDescription": {"text": "Commented-code block (11 lines) in client/src/solar-rec-dashboard/lib/constants.ts:41"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fa3fbbecd9c11d07", "name": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/lib/dashboardRetryAfter.ts:57", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/lib/dashboardRetryAfter.ts:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-111e4ca70f7505c3", "name": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/lib/buildDeliveryTrackerData.ts:197", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/lib/buildDeliveryTrackerData.ts:197"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-49741e4e97d94ab2", "name": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/lib/buildSystems.ts:262", "shortDescription": {"text": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/lib/buildSystems.ts:262"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5bff177d6f6e83f1", "name": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/lib/helpers/abp.ts:11", "shortDescription": {"text": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/lib/helpers/abp.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-864296536aa2f34a", "name": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/lib/helpers/monitoring.ts:19", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/lib/helpers/monitoring.ts: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-621fd0b9ea55457f", "name": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/hooks/useDashboardAggregatorProgress.ts:61", "shortDescription": {"text": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/hooks/useDashboardAggregatorProgress.ts:61"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2e474c43e94a8999", "name": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/hooks/useDatasetUploadController.ts:187", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/hooks/useDatasetUploadController.ts:187"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-231d38c1f8ee92d6", "name": "Commented-code block (9 lines) in client/src/solar-rec-dashboard/hooks/useDashboardBuildControl.test.ts:51", "shortDescription": {"text": "Commented-code block (9 lines) in client/src/solar-rec-dashboard/hooks/useDashboardBuildControl.test.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-3c24a296c7c1b908", "name": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/hooks/useDatasetUploadStatus.ts:20", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/hooks/useDatasetUploadStatus.ts: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-9f5cb25a9f80448e", "name": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/hooks/useDashboardBuildControl.ts:135", "shortDescription": {"text": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/hooks/useDashboardBuildControl.ts:135"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-53bfb407bee10f48", "name": "Commented-code block (6 lines) in client/src/components/layout/CommandPalette.tsx:46", "shortDescription": {"text": "Commented-code block (6 lines) in client/src/components/layout/CommandPalette.tsx:46"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-474c08d561251609", "name": "Commented-code block (10 lines) in client/src/components/layout/AppSidebar.tsx:80", "shortDescription": {"text": "Commented-code block (10 lines) in client/src/components/layout/AppSidebar.tsx:80"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-62b30f9cfba81b20", "name": "Commented-code block (8 lines) in client/src/components/layout/AppShell.tsx:28", "shortDescription": {"text": "Commented-code block (8 lines) in client/src/components/layout/AppShell.tsx: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-6cca8d1046354a94", "name": "Commented-code block (5 lines) in client/src/components/notebook/RichTextEditor.tsx:188", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/components/notebook/RichTextEditor.tsx:188"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-987138214f0f5a4e", "name": "Commented-code block (10 lines) in client/src/lib/deepUpdateSynth.ts:341", "shortDescription": {"text": "Commented-code block (10 lines) in client/src/lib/deepUpdateSynth.ts:341"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3624b240cdf35b62", "name": "Commented-code block (17 lines) in client/src/lib/abpSettlementMainExport.ts:8", "shortDescription": {"text": "Commented-code block (17 lines) in client/src/lib/abpSettlementMainExport.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-897ccc0186c36b01", "name": "Commented-code block (7 lines) in client/src/lib/csvParsing.ts:28", "shortDescription": {"text": "Commented-code block (7 lines) in client/src/lib/csvParsing.ts: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-1d869b5d976602a7", "name": "Commented-code block (6 lines) in client/src/lib/recValueRollup.ts:176", "shortDescription": {"text": "Commented-code block (6 lines) in client/src/lib/recValueRollup.ts:176"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-936a192e472e3a09", "name": "Commented-code block (5 lines) in client/src/lib/abpSettlement.ts:1869", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/lib/abpSettlement.ts:1869"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3e183ff12afe717b", "name": "Commented-code block (5 lines) in client/src/lib/abpSettlement/utils/csvUtils.test.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/lib/abpSettlement/utils/csvUtils.test.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e456507d3b4f93b6", "name": "Commented-code block (6 lines) in client/src/lib/abpSettlement/utils/csvUtils.ts:6", "shortDescription": {"text": "Commented-code block (6 lines) in client/src/lib/abpSettlement/utils/csvUtils.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-7175f2e8982cb9e4", "name": "Commented-code block (6 lines) in client/src/solar-rec/SolarRecApp.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in client/src/solar-rec/SolarRecApp.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c6051132ff06889f", "name": "Commented-code block (6 lines) in client/src/solar-rec/components/PersistConfirmation.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in client/src/solar-rec/components/PersistConfirmation.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-e9b4a212796c528c", "name": "Commented-code block (6 lines) in client/src/solar-rec/components/WorksetSelector.tsx:102", "shortDescription": {"text": "Commented-code block (6 lines) in client/src/solar-rec/components/WorksetSelector.tsx:102"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-28616092ca720c9a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/solar-rec/components/WorksetSelector.tsx:106", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/solar-rec/components/WorksetSelector.tsx:106"}, "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-d91304a5d99dc4ac", "name": "Legacy-named symbol `deep_update_manifest_v1` in client/src/solar-rec/pages/DeepUpdateSynthesizer.tsx:29", "shortDescription": {"text": "Legacy-named symbol `deep_update_manifest_v1` in client/src/solar-rec/pages/DeepUpdateSynthesizer.tsx:29"}, "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-45262738c9e78f79", "name": "Commented-code block (6 lines) in client/src/solar-rec/pages/DeepUpdateSynthesizer.tsx:43", "shortDescription": {"text": "Commented-code block (6 lines) in client/src/solar-rec/pages/DeepUpdateSynthesizer.tsx:43"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-77955ca59b0c378b", "name": "Legacy-named symbol `early_payment_csg_ids_v1` in client/src/solar-rec/pages/EarlyPayment.tsx:114", "shortDescription": {"text": "Legacy-named symbol `early_payment_csg_ids_v1` in client/src/solar-rec/pages/EarlyPayment.tsx:114"}, "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-a3ba1bc31f6a70a7", "name": "Commented-code block (5 lines) in client/src/solar-rec/pages/EarlyPayment.tsx:10", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/solar-rec/pages/EarlyPayment.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-5f2df094189ad33c", "name": "Commented-code block (5 lines) in client/src/solar-rec/pages/ContractScrapeManager.tsx:2", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/solar-rec/pages/ContractScrapeManager.tsx:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2ac7e41ce238d0bf", "name": "Legacy-named symbol `abp_settlement_upload_state_v1` in client/src/solar-rec/pages/AbpInvoiceSettlement.tsx:172", "shortDescription": {"text": "Legacy-named symbol `abp_settlement_upload_state_v1` in client/src/solar-rec/pages/AbpInvoiceSettlement.tsx:172"}, "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-6bd4134f177b90a6", "name": "Commented-code block (8 lines) in client/src/solar-rec/pages/AbpInvoiceSettlement.tsx:12", "shortDescription": {"text": "Commented-code block (8 lines) in client/src/solar-rec/pages/AbpInvoiceSettlement.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-36f51d16e7d55480", "name": "Commented-code block (5 lines) in client/src/solar-rec/pages/AddressChecker.tsx:9", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/solar-rec/pages/AddressChecker.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-60ef1b5517f35731", "name": "Commented-code block (8 lines) in client/src/solar-rec/pages/MonitoringDashboard.tsx:859", "shortDescription": {"text": "Commented-code block (8 lines) in client/src/solar-rec/pages/MonitoringDashboard.tsx:859"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8fea28edcd981c34", "name": "Commented-code block (5 lines) in client/src/solar-rec/pages/SystemsIndex.tsx:806", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/solar-rec/pages/SystemsIndex.tsx:806"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6380a309f1e3169d", "name": "Commented-code block (5 lines) in client/src/solar-rec/pages/InvoiceMatchDashboard.tsx:525", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/solar-rec/pages/InvoiceMatchDashboard.tsx:525"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-089eb3af7b335b3b", "name": "Commented-code block (6 lines) in client/src/solar-rec/pages/JobsIndex.tsx:203", "shortDescription": {"text": "Commented-code block (6 lines) in client/src/solar-rec/pages/JobsIndex.tsx:203"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e175f03b66b2b527", "name": "Commented-code block (6 lines) in client/src/solar-rec/pages/MonitoringOverview.tsx:113", "shortDescription": {"text": "Commented-code block (6 lines) in client/src/solar-rec/pages/MonitoringOverview.tsx:113"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8922dfe2e320bc71", "name": "Commented-code block (5 lines) in client/src/solar-rec/pages/invoiceMatch/helpers.ts:701", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/solar-rec/pages/invoiceMatch/helpers.ts:701"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1da31d7b09a38cb0", "name": "Commented-code block (5 lines) in client/src/solar-rec/pages/meter-reads/TeslaPowerhubMeterReads.tsx:1166", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/solar-rec/pages/meter-reads/TeslaPowerhubMeterReads.tsx:1166"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-31e285ff26618529", "name": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/solar-rec/hooks/useSolarRecAuth.tsx:86", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/solar-rec/hooks/useSolarRecAuth.tsx:86"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e1c2c608e3b3514a", "name": "Commented-code block (5 lines) in client/src/features/settings/Settings.tsx:164", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/features/settings/Settings.tsx:164"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c973ec3083df69a3", "name": "Commented-code block (5 lines) in client/src/features/notebook/Notebook.tsx:1194", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/features/notebook/Notebook.tsx:1194"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-697e502169c7c2da", "name": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/features/notebook/Notebook.tsx:1215", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/features/notebook/Notebook.tsx:1215"}, "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-33e5c52ad6929a98", "name": "Commented-code block (5 lines) in client/src/features/habits/HabitsHistoryPanel.tsx:44", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/features/habits/HabitsHistoryPanel.tsx:44"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c58027fce84f1c22", "name": "Commented-code block (5 lines) in client/src/features/health/HealthTrendsPanel.tsx:31", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/features/health/HealthTrendsPanel.tsx: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-4f91a03efd017507", "name": "Commented-code block (5 lines) in client/src/features/dashboard/useDashboardData.ts:60", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/features/dashboard/useDashboardData.ts:60"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2b3d93d015cc33bf", "name": "Legacy-named symbol `DashboardLegacy` in client/src/features/dashboard/Dashboard.tsx:10", "shortDescription": {"text": "Legacy-named symbol `DashboardLegacy` in client/src/features/dashboard/Dashboard.tsx:10"}, "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-675243a4090f8805", "name": "Commented-code block (5 lines) in client/src/features/dashboard/NotFound.tsx:15", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/features/dashboard/NotFound.tsx: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-a0f4f22f3d772731", "name": "Commented-code block (5 lines) in client/src/features/dashboard/frontpage/WireFeedsGrid.tsx:113", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/features/dashboard/frontpage/WireFeedsGrid.tsx:113"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7bf9ac155de710f4", "name": "Commented-code block (5 lines) in client/src/features/dashboard/frontpage/DropDock.tsx:87", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/features/dashboard/frontpage/DropDock.tsx:87"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1c9099f82fbcbdf1", "name": "Commented-code block (5 lines) in client/src/features/dashboard/canvas/StickyNote.tsx:103", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/features/dashboard/canvas/StickyNote.tsx:103"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-12c062784bfa3f2b", "name": "Commented-code block (5 lines) in client/src/features/supplements/SupplementsTodayPanel.tsx:265", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/features/supplements/SupplementsTodayPanel.tsx:265"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-526cb8c2605b93e3", "name": "Legacy-named symbol `snapshot_logs_v1` in client/src/features/solar-rec/SolarRecDashboard.tsx:2288", "shortDescription": {"text": "Legacy-named symbol `snapshot_logs_v1` in client/src/features/solar-rec/SolarRecDashboard.tsx:2288"}, "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-ccf0583438e2323e", "name": "Commented-code block (5 lines) in client/src/features/solar-rec/SolarRecDashboard.tsx:99", "shortDescription": {"text": "Commented-code block (5 lines) in client/src/features/solar-rec/SolarRecDashboard.tsx: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-94707a4953b76de6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/features/solar-rec/SolarRecDashboard.tsx:3562", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/features/solar-rec/SolarRecDashboard.tsx:3562"}, "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-f7766beaaa840830", "name": "Commented-code block (7 lines) in shared/const.ts:37", "shortDescription": {"text": "Commented-code block (7 lines) in shared/const.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-2ec71bf97b301d63", "name": "Commented-code block (7 lines) in shared/dropdock.helpers.test.ts:146", "shortDescription": {"text": "Commented-code block (7 lines) in shared/dropdock.helpers.test.ts:146"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-602e258d16a12810", "name": "Commented-code block (5 lines) in shared/solarRecPerformanceRatio.test.ts:50", "shortDescription": {"text": "Commented-code block (5 lines) in shared/solarRecPerformanceRatio.test.ts:50"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-68087edbb47399f0", "name": "Commented-code block (10 lines) in shared/personalDashboard.ts:1", "shortDescription": {"text": "Commented-code block (10 lines) in shared/personalDashboard.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-c11154dc16fee384", "name": "Commented-code block (5 lines) in shared/serviceWorker.helpers.test.ts:160", "shortDescription": {"text": "Commented-code block (5 lines) in shared/serviceWorker.helpers.test.ts:160"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5edfe4135d9303ac", "name": "Commented-code block (9 lines) in shared/dropdock.helpers.ts:167", "shortDescription": {"text": "Commented-code block (9 lines) in shared/dropdock.helpers.ts:167"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-75731edf9af178ab", "name": "Commented-code block (24 lines) in shared/solarRecFoundation.test.ts:104", "shortDescription": {"text": "Commented-code block (24 lines) in shared/solarRecFoundation.test.ts:104"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aea67f7bb70b065d", "name": "Commented-code block (5 lines) in shared/solarRecModules.ts:9", "shortDescription": {"text": "Commented-code block (5 lines) in shared/solarRecModules.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-753a4a2caa7701fc", "name": "Commented-code block (12 lines) in shared/solarRecPerformanceRatio.ts:71", "shortDescription": {"text": "Commented-code block (12 lines) in shared/solarRecPerformanceRatio.ts:71"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-98eef3c45b48b2ee", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/recover-core-dataset-from-idb.js:124", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/recover-core-dataset-from-idb.js:124"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-acd3b908365df98e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 server/storage.ts:100", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/storage.ts:100"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-48868e004273acf6", "name": "Commented-code block (8 lines) in server/oauth-routes.ts:201", "shortDescription": {"text": "Commented-code block (8 lines) in server/oauth-routes.ts:201"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-86ff797ded7ed16d", "name": "Commented-code block (22 lines) in server/routers.ts:13", "shortDescription": {"text": "Commented-code block (22 lines) in server/routers.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-82bfaa8820687b9f", "name": "Commented-code block (6 lines) in server/solarRecDatasets.test.ts:165", "shortDescription": {"text": "Commented-code block (6 lines) in server/solarRecDatasets.test.ts:165"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3e921726c35e9321", "name": "Commented-code block (5 lines) in server/scripts/backfillSrDsTypedColumnsFromRawRow.ts:76", "shortDescription": {"text": "Commented-code block (5 lines) in server/scripts/backfillSrDsTypedColumnsFromRawRow.ts:76"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e344fcfb1552d25b", "name": "Commented-code block (5 lines) in server/scripts/backfillSrDsTypedColumnsFromRawRow.test.ts:71", "shortDescription": {"text": "Commented-code block (5 lines) in server/scripts/backfillSrDsTypedColumnsFromRawRow.test.ts:71"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-669a84e54ebe254c", "name": "Commented-code block (8 lines) in server/_lint/ttlPruneConformance.test.ts:147", "shortDescription": {"text": "Commented-code block (8 lines) in server/_lint/ttlPruneConformance.test.ts:147"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b453e46ff38ce68a", "name": "Commented-code block (6 lines) in server/_lint/migrationJournal.test.ts:135", "shortDescription": {"text": "Commented-code block (6 lines) in server/_lint/migrationJournal.test.ts:135"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ce89b9694119e533", "name": "Commented-code block (5 lines) in server/_core/solarRecBase.ts:85", "shortDescription": {"text": "Commented-code block (5 lines) in server/_core/solarRecBase.ts:85"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-63388381d87440f1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 server/_core/dataApi.ts:31", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/_core/dataApi.ts:31"}, "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-eb3cec8c79ed048f", "name": "Commented-code block (6 lines) in server/_core/solarRecContractScanRouter.ts:308", "shortDescription": {"text": "Commented-code block (6 lines) in server/_core/solarRecContractScanRouter.ts:308"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5949cb296dde5121", "name": "`fetch()` without try/.catch or AbortSignal \u2014 server/_core/webhookBodyLimit.test.ts:50", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/_core/webhookBodyLimit.test.ts:50"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-996d8bc270d7d10d", "name": "Commented-code block (7 lines) in server/_core/dashboardResponseGuard.ts:465", "shortDescription": {"text": "Commented-code block (7 lines) in server/_core/dashboardResponseGuard.ts:465"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-45909c88581b356c", "name": "Commented-code block (7 lines) in server/_core/solarRecDashboardPerformanceRatioPage.test.ts:216", "shortDescription": {"text": "Commented-code block (7 lines) in server/_core/solarRecDashboardPerformanceRatioPage.test.ts:216"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-243fd2f4ae06c654", "name": "Commented-code block (6 lines) in server/_core/datasetPopulationStatus.ts:52", "shortDescription": {"text": "Commented-code block (6 lines) in server/_core/datasetPopulationStatus.ts:52"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bd325cdb9821ee95", "name": "Commented-code block (5 lines) in server/_core/solarRecDashboardStatePayloadCleanup.test.ts:94", "shortDescription": {"text": "Commented-code block (5 lines) in server/_core/solarRecDashboardStatePayloadCleanup.test.ts:94"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4cdcbc91ffad2f94", "name": "Commented-code block (5 lines) in server/_core/solarRecSystemsRouter.ts:103", "shortDescription": {"text": "Commented-code block (5 lines) in server/_core/solarRecSystemsRouter.ts:103"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-57a66ec4ca4139b9", "name": "Commented-code block (5 lines) in server/_core/runtimeTarget.test.ts:115", "shortDescription": {"text": "Commented-code block (5 lines) in server/_core/runtimeTarget.test.ts:115"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-17265d9d56fd63ed", "name": "Commented-code block (8 lines) in server/_core/nightlySnapshotScheduler.ts:55", "shortDescription": {"text": "Commented-code block (8 lines) in server/_core/nightlySnapshotScheduler.ts:55"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-db4b52b56bd65520", "name": "Commented-code block (8 lines) in server/_core/index.ts:57", "shortDescription": {"text": "Commented-code block (8 lines) in server/_core/index.ts:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3ae00c27d1b89e7f", "name": "Commented-code block (8 lines) in server/_core/oauth.ts:14", "shortDescription": {"text": "Commented-code block (8 lines) in server/_core/oauth.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-91e38b02fa1fc8ae", "name": "Commented-code block (8 lines) in server/_core/solarRecAuth.ts:466", "shortDescription": {"text": "Commented-code block (8 lines) in server/_core/solarRecAuth.ts:466"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6e3c2382e11e4447", "name": "Commented-code block (6 lines) in server/_core/pinGate.ts:45", "shortDescription": {"text": "Commented-code block (6 lines) in server/_core/pinGate.ts:45"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-212ed44081a16905", "name": "Commented-code block (5 lines) in server/_core/solarRecRouter.runSolarEdgeBulk.test.ts:217", "shortDescription": {"text": "Commented-code block (5 lines) in server/_core/solarRecRouter.runSolarEdgeBulk.test.ts:217"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-707b19b18a4f9181", "name": "Commented-code block (9 lines) in server/_core/solarRecRouterRoots.ts:149", "shortDescription": {"text": "Commented-code block (9 lines) in server/_core/solarRecRouterRoots.ts:149"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2e13f6dcce4accc2", "name": "Commented-code block (5 lines) in server/_core/solarReadingsIngest.ts:178", "shortDescription": {"text": "Commented-code block (5 lines) in server/_core/solarReadingsIngest.ts:178"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-747b98259c503f93", "name": "Commented-code block (5 lines) in server/_core/solarRecMainProviderRoots.test.ts:78", "shortDescription": {"text": "Commented-code block (5 lines) in server/_core/solarRecMainProviderRoots.test.ts:78"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-89c07de8e57ffabd", "name": "Commented-code block (5 lines) in server/_core/solarRecDashboardFinancialsPage.test.ts:54", "shortDescription": {"text": "Commented-code block (5 lines) in server/_core/solarRecDashboardFinancialsPage.test.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-6170395d8984b399", "name": "Commented-code block (6 lines) in server/_core/scheduleDaily.ts:206", "shortDescription": {"text": "Commented-code block (6 lines) in server/_core/scheduleDaily.ts:206"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4984cae6c80be1ee", "name": "Commented-code block (9 lines) in server/_core/solarRecRouter.ts:1602", "shortDescription": {"text": "Commented-code block (9 lines) in server/_core/solarRecRouter.ts:1602"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bbc7ef99c13a4303", "name": "`fetch()` without try/.catch or AbortSignal \u2014 server/_core/imageGeneration.ts:53", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/_core/imageGeneration.ts:53"}, "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-517c8da4a690803a", "name": "Commented-code block (5 lines) in server/_core/solarRecDashboardSystemsPage.test.ts:59", "shortDescription": {"text": "Commented-code block (5 lines) in server/_core/solarRecDashboardSystemsPage.test.ts:59"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-63d06cea7de436e0", "name": "Commented-code block (5 lines) in server/_core/datasetPopulationStatus.test.ts:62", "shortDescription": {"text": "Commented-code block (5 lines) in server/_core/datasetPopulationStatus.test.ts:62"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b25899da47b020bb", "name": "Commented-code block (8 lines) in server/_core/vite.ts:97", "shortDescription": {"text": "Commented-code block (8 lines) in server/_core/vite.ts:97"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-06ff34d6a8bdec9f", "name": "Legacy-named symbol `storagePresentLegacy` in server/_core/solarRecDashboardRouter.ts:1635", "shortDescription": {"text": "Legacy-named symbol `storagePresentLegacy` in server/_core/solarRecDashboardRouter.ts:1635"}, "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-a75cd55d41a183eb", "name": "Commented-code block (7 lines) in server/_core/solarRecDashboardRouter.ts:137", "shortDescription": {"text": "Commented-code block (7 lines) in server/_core/solarRecDashboardRouter.ts:137"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ae84f62c93795890", "name": "Commented-code block (12 lines) in server/_core/dashboardResponseGuard.test.ts:223", "shortDescription": {"text": "Commented-code block (12 lines) in server/_core/dashboardResponseGuard.test.ts:223"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f96258986f320d53", "name": "Commented-code block (6 lines) in server/_core/solarRecDinScrapeRouter.ts:209", "shortDescription": {"text": "Commented-code block (6 lines) in server/_core/solarRecDinScrapeRouter.ts:209"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-636c11fca1a72886", "name": "Commented-code block (5 lines) in server/_core/solarRecAbpSettlementRouter.ts:134", "shortDescription": {"text": "Commented-code block (5 lines) in server/_core/solarRecAbpSettlementRouter.ts:134"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e780f51f06116fad", "name": "`fetch()` without try/.catch or AbortSignal \u2014 server/_core/llm.ts:315", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/_core/llm.ts:315"}, "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-7f8fbe5fdbad8c92", "name": "Commented-code block (5 lines) in server/_core/solarRecDashboardSemaphoreObservability.test.ts:46", "shortDescription": {"text": "Commented-code block (5 lines) in server/_core/solarRecDashboardSemaphoreObservability.test.ts:46"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-81632a533bc92be9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 server/_core/pinGate.test.ts:55", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/_core/pinGate.test.ts:55"}, "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-2b29fc907c2e471d", "name": "Commented-code block (5 lines) in server/services/integrations/todoist.ts:276", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/integrations/todoist.ts:276"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-242a55b8e0623eca", "name": "Commented-code block (5 lines) in server/services/integrations/anthropicSelector.ts:259", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/integrations/anthropicSelector.ts:259"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2f8fba0d19a876f2", "name": "Commented-code block (7 lines) in server/services/integrations/whoop.ts:101", "shortDescription": {"text": "Commented-code block (7 lines) in server/services/integrations/whoop.ts:101"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2642f0a2aa1ff18d", "name": "Commented-code block (12 lines) in server/services/integrations/google.ts:431", "shortDescription": {"text": "Commented-code block (12 lines) in server/services/integrations/google.ts:431"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-82ed0f70540ad4ad", "name": "Commented-code block (6 lines) in server/services/notifications/dailySnapshot.ts:199", "shortDescription": {"text": "Commented-code block (6 lines) in server/services/notifications/dailySnapshot.ts:199"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c541ad518625c6f5", "name": "Commented-code block (5 lines) in server/services/supplements/correlationNightly.ts:51", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/supplements/correlationNightly.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-cd517d80374107d2", "name": "Commented-code block (5 lines) in server/services/supplements/correlationNightly.test.ts:206", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/supplements/correlationNightly.test.ts:206"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a0c4d488defd8c1a", "name": "Commented-code block (5 lines) in server/services/personalDashboard/dailyActivityReport.ts:123", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/personalDashboard/dailyActivityReport.ts:123"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-050f15844e052a55", "name": "Commented-code block (7 lines) in server/services/personalDashboard/dailyActivityReport.collectors.ts:291", "shortDescription": {"text": "Commented-code block (7 lines) in server/services/personalDashboard/dailyActivityReport.collectors.ts:291"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-166a05100a91f800", "name": "Commented-code block (6 lines) in server/services/core/csgScheduleBImportJobRunner.ts:53", "shortDescription": {"text": "Commented-code block (6 lines) in server/services/core/csgScheduleBImportJobRunner.ts:53"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-59ec4b2da3bcc172", "name": "Commented-code block (12 lines) in server/services/core/datasetUploadParsers.test.ts:55", "shortDescription": {"text": "Commented-code block (12 lines) in server/services/core/datasetUploadParsers.test.ts:55"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b8c57c9a39487066", "name": "Commented-code block (8 lines) in server/services/core/contractScanJobRunner.ts:132", "shortDescription": {"text": "Commented-code block (8 lines) in server/services/core/contractScanJobRunner.ts:132"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c77c05b457acc4c7", "name": "Commented-code block (9 lines) in server/services/core/dinExtractor.ts:34", "shortDescription": {"text": "Commented-code block (9 lines) in server/services/core/dinExtractor.ts: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-6089d84921686f97", "name": "Commented-code block (5 lines) in server/services/core/scheduleBImportJobRunner.ts:220", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/core/scheduleBImportJobRunner.ts:220"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-67633bdbdc73d357", "name": "Commented-code block (5 lines) in server/services/core/datasetUploadStaleJobSweeper.ts:40", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/core/datasetUploadStaleJobSweeper.ts:40"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-22b831430e551bcd", "name": "Commented-code block (6 lines) in server/services/core/qrDecoder.ts:310", "shortDescription": {"text": "Commented-code block (6 lines) in server/services/core/qrDecoder.ts:310"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9b9b42b962a0ccb4", "name": "Commented-code block (5 lines) in server/services/core/csvStreamParser.ts:174", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/core/csvStreamParser.ts:174"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9b4f23819994dc35", "name": "Commented-code block (5 lines) in server/services/core/csvStreamParser.test.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/core/csvStreamParser.test.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-35a6e5a5f595044a", "name": "Commented-code block (7 lines) in server/services/core/datasetUploadJobRunner.ts:194", "shortDescription": {"text": "Commented-code block (7 lines) in server/services/core/datasetUploadJobRunner.ts:194"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3c9ff4d784172e58", "name": "Commented-code block (7 lines) in server/services/core/dinScrapeJobRunner.ts:158", "shortDescription": {"text": "Commented-code block (7 lines) in server/services/core/dinScrapeJobRunner.ts:158"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-719f7f954671a055", "name": "Commented-code block (7 lines) in server/services/core/concurrency.test.ts:167", "shortDescription": {"text": "Commented-code block (7 lines) in server/services/core/concurrency.test.ts:167"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f4b870c0c1a931fd", "name": "Commented-code block (9 lines) in server/services/core/datasetUploadParsers.ts:453", "shortDescription": {"text": "Commented-code block (9 lines) in server/services/core/datasetUploadParsers.ts:453"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-509d36018a30ae09", "name": "Commented-code block (6 lines) in server/services/core/datasetUploadWorkerHost.ts:150", "shortDescription": {"text": "Commented-code block (6 lines) in server/services/core/datasetUploadWorkerHost.ts:150"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-16fcfeebb59448c3", "name": "Commented-code block (6 lines) in server/services/core/contractScannerServer.test.ts:22", "shortDescription": {"text": "Commented-code block (6 lines) in server/services/core/contractScannerServer.test.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-53cd4cb24f460de6", "name": "Commented-code block (5 lines) in server/services/solar/snapshotLogRecovery.test.ts:144", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/solar/snapshotLogRecovery.test.ts:144"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ab766c3a0ae93377", "name": "Commented-code block (7 lines) in server/services/solar/buildDeliveryTrackerData.test.ts:9", "shortDescription": {"text": "Commented-code block (7 lines) in server/services/solar/buildDeliveryTrackerData.test.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-4d2f1aebb35e0300", "name": "Legacy-named symbol `snapshot_logs_v1` in server/services/solar/snapshotLogRestore.test.ts:15", "shortDescription": {"text": "Legacy-named symbol `snapshot_logs_v1` in server/services/solar/snapshotLogRestore.test.ts:15"}, "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-7ec4da5e237f33b5", "name": "Commented-code block (10 lines) in server/services/solar/snapshotLogRestore.test.ts:12", "shortDescription": {"text": "Commented-code block (10 lines) in server/services/solar/snapshotLogRestore.test.ts: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-fca1e884b514d3c4", "name": "Commented-code block (7 lines) in server/services/solar/datasetIngestion.test.ts:107", "shortDescription": {"text": "Commented-code block (7 lines) in server/services/solar/datasetIngestion.test.ts:107"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-95964c75c52ab902", "name": "`fetch()` without try/.catch or AbortSignal \u2014 server/services/solar/fronius.test.ts:17", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/services/solar/fronius.test.ts:17"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cf08fcf5b281151c", "name": "Commented-code block (10 lines) in server/services/solar/dashboardBuildJobRunner.ts:291", "shortDescription": {"text": "Commented-code block (10 lines) in server/services/solar/dashboardBuildJobRunner.ts:291"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6fef8c6383ad7bdf", "name": "Commented-code block (6 lines) in server/services/solar/buildContractVintageAggregates.test.ts:20", "shortDescription": {"text": "Commented-code block (6 lines) in server/services/solar/buildContractVintageAggregates.test.ts: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-6dc55378106a6e32", "name": "Commented-code block (11 lines) in server/services/solar/serverSideMigration.ts:173", "shortDescription": {"text": "Commented-code block (11 lines) in server/services/solar/serverSideMigration.ts:173"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a06ba6368dbbb36f", "name": "Commented-code block (8 lines) in server/services/solar/dashboardCsvExportJobs.test.ts:375", "shortDescription": {"text": "Commented-code block (8 lines) in server/services/solar/dashboardCsvExportJobs.test.ts:375"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e10c2b2fe9da5977", "name": "Commented-code block (5 lines) in server/services/solar/buildDashboardSystemFacts.ts:304", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/solar/buildDashboardSystemFacts.ts:304"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b993a30f147130e1", "name": "Commented-code block (5 lines) in server/services/solar/buildSystemSnapshot.ts:242", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/solar/buildSystemSnapshot.ts:242"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-996ba0339387bddb", "name": "Commented-code block (6 lines) in server/services/solar/buildOverviewSummaryAggregates.test.ts:246", "shortDescription": {"text": "Commented-code block (6 lines) in server/services/solar/buildOverviewSummaryAggregates.test.ts:246"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-db6c3450bbf52fdc", "name": "Commented-code block (5 lines) in server/services/solar/buildOverviewSummaryAggregates.ts:654", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/solar/buildOverviewSummaryAggregates.ts:654"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3d512cfa8b023c21", "name": "Commented-code block (8 lines) in server/services/solar/buildFinancialsAggregates.ts:418", "shortDescription": {"text": "Commented-code block (8 lines) in server/services/solar/buildFinancialsAggregates.ts:418"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d8acac0d6cc51ffd", "name": "Commented-code block (7 lines) in server/services/solar/buildDashboardOwnershipFacts.ts:137", "shortDescription": {"text": "Commented-code block (7 lines) in server/services/solar/buildDashboardOwnershipFacts.ts:137"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-686d05ac18101157", "name": "Commented-code block (9 lines) in server/services/solar/buildDashboardPerformanceRatioFacts.ts:129", "shortDescription": {"text": "Commented-code block (9 lines) in server/services/solar/buildDashboardPerformanceRatioFacts.ts:129"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d7008f6789c34121", "name": "Commented-code block (5 lines) in server/services/solar/buildSystemEnrichments.ts:99", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/solar/buildSystemEnrichments.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-ee471523b2e4fe7d", "name": "Commented-code block (15 lines) in server/services/solar/buildPerformanceRatioAggregates.ts:230", "shortDescription": {"text": "Commented-code block (15 lines) in server/services/solar/buildPerformanceRatioAggregates.ts:230"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-61e1fbd97203f730", "name": "Commented-code block (7 lines) in server/services/solar/fronius.ts:808", "shortDescription": {"text": "Commented-code block (7 lines) in server/services/solar/fronius.ts:808"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-03718aaeab4485da", "name": "Commented-code block (10 lines) in server/services/solar/loadPerformanceRatioInput.ts:66", "shortDescription": {"text": "Commented-code block (10 lines) in server/services/solar/loadPerformanceRatioInput.ts:66"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a252d964a51e9e4d", "name": "Commented-code block (8 lines) in server/services/solar/buildTrendDeliveryPace.ts:37", "shortDescription": {"text": "Commented-code block (8 lines) in server/services/solar/buildTrendDeliveryPace.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-ef6302011f4cf017", "name": "Commented-code block (5 lines) in server/services/solar/buildTrendsProduction.ts:36", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/solar/buildTrendsProduction.ts: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-c2bc8fa696ac256a", "name": "Commented-code block (7 lines) in server/services/solar/buildDashboardPerformanceRatioFacts.test.ts:375", "shortDescription": {"text": "Commented-code block (7 lines) in server/services/solar/buildDashboardPerformanceRatioFacts.test.ts:375"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-465629eef9d19027", "name": "Commented-code block (5 lines) in server/services/solar/gatsReportingWindow.ts:173", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/solar/gatsReportingWindow.ts:173"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cfd91cc0ae431c4c", "name": "Commented-code block (13 lines) in server/services/solar/aggregatorInputs.ts:201", "shortDescription": {"text": "Commented-code block (13 lines) in server/services/solar/aggregatorInputs.ts:201"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-245a7f4fe0ce91c4", "name": "Commented-code block (10 lines) in server/services/solar/compareSlimVsHeavySummary.test.ts:51", "shortDescription": {"text": "Commented-code block (10 lines) in server/services/solar/compareSlimVsHeavySummary.test.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-e085b49f0d3f2d18", "name": "Commented-code block (8 lines) in server/services/solar/dashboardCsvExportJobs.ts:192", "shortDescription": {"text": "Commented-code block (8 lines) in server/services/solar/dashboardCsvExportJobs.ts:192"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2364aa102168b997", "name": "Commented-code block (6 lines) in server/services/solar/foundationRunner.ts:202", "shortDescription": {"text": "Commented-code block (6 lines) in server/services/solar/foundationRunner.ts:202"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c23758843e3ef854", "name": "Commented-code block (11 lines) in server/services/solar/teslaPowerhubProductionJobs.ts:369", "shortDescription": {"text": "Commented-code block (11 lines) in server/services/solar/teslaPowerhubProductionJobs.ts:369"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-112a237a04d363f7", "name": "Commented-code block (8 lines) in server/services/solar/buildDashboardChangeOwnershipFacts.ts:125", "shortDescription": {"text": "Commented-code block (8 lines) in server/services/solar/buildDashboardChangeOwnershipFacts.ts:125"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-daa4600acef3456d", "name": "Commented-code block (5 lines) in server/services/solar/buildDashboardChangeOwnershipFacts.test.ts:356", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/solar/buildDashboardChangeOwnershipFacts.test.ts:356"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-25e9d3df0d7cc157", "name": "Commented-code block (5 lines) in server/services/solar/buildFoundationArtifact.ts:285", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/solar/buildFoundationArtifact.ts:285"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e40394e4abee6aa4", "name": "Commented-code block (6 lines) in server/services/solar/helpers.ts:76", "shortDescription": {"text": "Commented-code block (6 lines) in server/services/solar/helpers.ts:76"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6228623ee0206edb", "name": "Commented-code block (7 lines) in server/services/solar/buildTransferDeliveryLookup.test.ts:180", "shortDescription": {"text": "Commented-code block (7 lines) in server/services/solar/buildTransferDeliveryLookup.test.ts:180"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-03e5402100bb623b", "name": "Commented-code block (7 lines) in server/services/solar/scheduleBApplySemaphore.ts:116", "shortDescription": {"text": "Commented-code block (7 lines) in server/services/solar/scheduleBApplySemaphore.ts:116"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7019e1155a48a596", "name": "Commented-code block (10 lines) in server/services/solar/dashboardBuildJobRunner.test.ts:146", "shortDescription": {"text": "Commented-code block (10 lines) in server/services/solar/dashboardBuildJobRunner.test.ts:146"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-078290fb9f763f36", "name": "Commented-code block (6 lines) in server/services/solar/aggregatorInputs.test.ts:305", "shortDescription": {"text": "Commented-code block (6 lines) in server/services/solar/aggregatorInputs.test.ts:305"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-444a5c68373a0c18", "name": "Commented-code block (6 lines) in server/services/solar/buildChangeOwnershipAggregates.ts:383", "shortDescription": {"text": "Commented-code block (6 lines) in server/services/solar/buildChangeOwnershipAggregates.ts:383"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d6e5009960304cff", "name": "Commented-code block (7 lines) in server/services/solar/aggregatorCachePredicates.test.ts:50", "shortDescription": {"text": "Commented-code block (7 lines) in server/services/solar/aggregatorCachePredicates.test.ts:50"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f5a1adef2273dbc8", "name": "Commented-code block (7 lines) in server/services/solar/dashboardJobMetrics.test.ts:238", "shortDescription": {"text": "Commented-code block (7 lines) in server/services/solar/dashboardJobMetrics.test.ts:238"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e11a5c724e243482", "name": "Commented-code block (7 lines) in server/services/solar/dashboardBuildJobs.ts:150", "shortDescription": {"text": "Commented-code block (7 lines) in server/services/solar/dashboardBuildJobs.ts:150"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-408034bf254dec6f", "name": "Commented-code block (6 lines) in server/services/solar/buildSlimDashboardSummary.test.ts:102", "shortDescription": {"text": "Commented-code block (6 lines) in server/services/solar/buildSlimDashboardSummary.test.ts:102"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2f45409ff27f8316", "name": "Commented-code block (11 lines) in server/services/solar/buildOfflineMonitoringAggregates.ts:47", "shortDescription": {"text": "Commented-code block (11 lines) in server/services/solar/buildOfflineMonitoringAggregates.ts:47"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-23ed7facd50fbf2a", "name": "Commented-code block (6 lines) in server/services/solar/buildDashboardCsvExport.test.ts:37", "shortDescription": {"text": "Commented-code block (6 lines) in server/services/solar/buildDashboardCsvExport.test.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-c957ff2f7a346f59", "name": "Commented-code block (5 lines) in server/services/solar/datasetIngestion.ts:53", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/solar/datasetIngestion.ts:53"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8acaf9021b334793", "name": "Commented-code block (7 lines) in server/services/solar/datasetRowPersistence.test.ts:92", "shortDescription": {"text": "Commented-code block (7 lines) in server/services/solar/datasetRowPersistence.test.ts:92"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1e90fc85daef808d", "name": "Commented-code block (9 lines) in server/services/solar/locus.test.ts:402", "shortDescription": {"text": "Commented-code block (9 lines) in server/services/solar/locus.test.ts:402"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8c4220625b3464b1", "name": "Commented-code block (6 lines) in server/services/solar/withArtifactCache.ts:117", "shortDescription": {"text": "Commented-code block (6 lines) in server/services/solar/withArtifactCache.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-1d26212189487cf8", "name": "Commented-code block (5 lines) in server/services/solar/buildFoundationArtifact.test.ts:507", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/solar/buildFoundationArtifact.test.ts:507"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ed47d06a12026b00", "name": "Commented-code block (7 lines) in server/services/solar/buildPerformanceSourceRows.test.ts:9", "shortDescription": {"text": "Commented-code block (7 lines) in server/services/solar/buildPerformanceSourceRows.test.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-2e4329c360c9d1a1", "name": "Commented-code block (6 lines) in server/services/solar/buildTrendsProduction.test.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in server/services/solar/buildTrendsProduction.test.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-9fcca62abe9d39f0", "name": "Commented-code block (8 lines) in server/services/solar/buildSlimDashboardSummary.ts:455", "shortDescription": {"text": "Commented-code block (8 lines) in server/services/solar/buildSlimDashboardSummary.ts:455"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c73f66bd1531d829", "name": "Commented-code block (12 lines) in server/services/solar/buildAppPipelineMonthly.ts:250", "shortDescription": {"text": "Commented-code block (12 lines) in server/services/solar/buildAppPipelineMonthly.ts:250"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-878195bd16fd68c2", "name": "Commented-code block (5 lines) in server/services/solar/teslaPowerhub.test.ts:398", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/solar/teslaPowerhub.test.ts:398"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-50e4e5a9b6cb7462", "name": "`fetch()` without try/.catch or AbortSignal \u2014 server/services/solar/teslaPowerhub.test.ts:1218", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/services/solar/teslaPowerhub.test.ts:1218"}, "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-70012d838fb3953f", "name": "Commented-code block (5 lines) in server/services/solar/buildDashboardMonitoringDetailsFacts.ts:187", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/solar/buildDashboardMonitoringDetailsFacts.ts:187"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fa38cb97055d8d13", "name": "Commented-code block (7 lines) in server/services/solar/contractScanFreshness.test.ts:87", "shortDescription": {"text": "Commented-code block (7 lines) in server/services/solar/contractScanFreshness.test.ts:87"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-65b3635ac021816c", "name": "Commented-code block (7 lines) in server/services/solar/crossTabFoundationParity.test.ts:163", "shortDescription": {"text": "Commented-code block (7 lines) in server/services/solar/crossTabFoundationParity.test.ts:163"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8213050579e3a2ee", "name": "Commented-code block (6 lines) in server/services/solar/loadPerformanceRatioInput.streamingBaseline.test.ts:119", "shortDescription": {"text": "Commented-code block (6 lines) in server/services/solar/loadPerformanceRatioInput.streamingBaseline.test.ts:119"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-31775d1a5b0b79c1", "name": "Commented-code block (8 lines) in server/services/solar/egauge.ts:1721", "shortDescription": {"text": "Commented-code block (8 lines) in server/services/solar/egauge.ts:1721"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-98d3e2540356ce9f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 server/services/solar/egauge.ts:701", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/services/solar/egauge.ts:701"}, "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-bc53c089d3cf31a2", "name": "Commented-code block (5 lines) in server/services/solar/dashboardJobMetrics.ts:119", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/solar/dashboardJobMetrics.ts:119"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a1014eec9cb3c66f", "name": "Commented-code block (5 lines) in server/services/solar/buildContractVintageAggregates.ts:176", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/solar/buildContractVintageAggregates.ts:176"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3e4aae8f1e354821", "name": "Commented-code block (5 lines) in server/services/solar/buildAppPipelineMonthly.test.ts:310", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/solar/buildAppPipelineMonthly.test.ts:310"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-409dd3ae8b239046", "name": "`fetch()` without try/.catch or AbortSignal \u2014 server/services/solar/teslaPowerhubProductionJobs.test.ts:8", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/services/solar/teslaPowerhubProductionJobs.test.ts:8"}, "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-64e4884d3a55487a", "name": "Commented-code block (7 lines) in server/services/solar/aggregatorHelpers.ts:29", "shortDescription": {"text": "Commented-code block (7 lines) in server/services/solar/aggregatorHelpers.ts:29"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5bb90c8152948d6e", "name": "Commented-code block (17 lines) in server/services/solar/buildDashboardCsvExport.ts:149", "shortDescription": {"text": "Commented-code block (17 lines) in server/services/solar/buildDashboardCsvExport.ts:149"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-31949e9d49fa4112", "name": "Commented-code block (5 lines) in server/services/solar/buildDataQualityReconciliation.ts:61", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/solar/buildDataQualityReconciliation.ts:61"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3274f757092ebd1e", "name": "Legacy-named symbol `snapshot_logs_v1` in server/services/solar/snapshotLogRestore.ts:6", "shortDescription": {"text": "Legacy-named symbol `snapshot_logs_v1` in server/services/solar/snapshotLogRestore.ts:6"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6f0a77617834bc3b", "name": "Commented-code block (10 lines) in server/services/solar/snapshotLogRestore.ts:39", "shortDescription": {"text": "Commented-code block (10 lines) in server/services/solar/snapshotLogRestore.ts:39"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-66ea9ddd6e4af6f7", "name": "Commented-code block (7 lines) in server/services/solar/buildPerformanceRatioAggregates.test.ts:337", "shortDescription": {"text": "Commented-code block (7 lines) in server/services/solar/buildPerformanceRatioAggregates.test.ts:337"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2c6269e15cb47476", "name": "Legacy-named symbol `transfer_delivery_lookup_v2` in server/services/solar/buildTransferDeliveryLookup.ts:182", "shortDescription": {"text": "Legacy-named symbol `transfer_delivery_lookup_v2` in server/services/solar/buildTransferDeliveryLookup.ts:182"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bc79ce89ece88683", "name": "Commented-code block (6 lines) in server/services/solar/buildTransferDeliveryLookup.ts:176", "shortDescription": {"text": "Commented-code block (6 lines) in server/services/solar/buildTransferDeliveryLookup.ts:176"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e2f2ad131345f523", "name": "Commented-code block (6 lines) in server/services/solar/buildChangeOwnershipAggregates.test.ts:390", "shortDescription": {"text": "Commented-code block (6 lines) in server/services/solar/buildChangeOwnershipAggregates.test.ts:390"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e3efa1189d172fb7", "name": "Commented-code block (5 lines) in server/services/solar/buildDeliveryTrackerData.ts:75", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/solar/buildDeliveryTrackerData.ts: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-ab3b9e2d255e892a", "name": "Commented-code block (6 lines) in server/services/solar/datasetCloudStatus.ts:260", "shortDescription": {"text": "Commented-code block (6 lines) in server/services/solar/datasetCloudStatus.ts:260"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1b2bbc0375082dd3", "name": "Commented-code block (8 lines) in server/services/solar/buildPerformanceSourceRows.ts:103", "shortDescription": {"text": "Commented-code block (8 lines) in server/services/solar/buildPerformanceSourceRows.ts:103"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-35f477003156801e", "name": "Commented-code block (5 lines) in server/services/solar/teslaPowerhub.ts:1930", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/solar/teslaPowerhub.ts:1930"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f84745c0ec8f5cbc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 server/services/solar/teslaPowerhub.ts:3539", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/services/solar/teslaPowerhub.ts:3539"}, "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-5ad733fbb195a984", "name": "Commented-code block (6 lines) in server/services/solar/aggregatorHelpers.test.ts:189", "shortDescription": {"text": "Commented-code block (6 lines) in server/services/solar/aggregatorHelpers.test.ts:189"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fa5b36f2af0d9650", "name": "Legacy-named symbol `snapshot_logs_v1` in server/services/solar/snapshotLogRecovery.ts:8", "shortDescription": {"text": "Legacy-named symbol `snapshot_logs_v1` in server/services/solar/snapshotLogRecovery.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-f42f5412015ba9e7", "name": "Commented-code block (7 lines) in server/services/solar/snapshotLogRecovery.ts:324", "shortDescription": {"text": "Commented-code block (7 lines) in server/services/solar/snapshotLogRecovery.ts:324"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3e4a91c57e230ae9", "name": "Commented-code block (8 lines) in server/services/solar/withArtifactCache.test.ts:440", "shortDescription": {"text": "Commented-code block (8 lines) in server/services/solar/withArtifactCache.test.ts:440"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a7979dbbc0370052", "name": "Commented-code block (6 lines) in server/services/solar/egauge.test.ts:1086", "shortDescription": {"text": "Commented-code block (6 lines) in server/services/solar/egauge.test.ts:1086"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-be32651cbddb71d3", "name": "Commented-code block (5 lines) in server/services/solar/buildAppPipelineCashFlow.test.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/solar/buildAppPipelineCashFlow.test.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-e5b2fcccb12f494a", "name": "Commented-code block (6 lines) in server/services/solar/compareSlimVsHeavySummary.ts:161", "shortDescription": {"text": "Commented-code block (6 lines) in server/services/solar/compareSlimVsHeavySummary.ts:161"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5c079f7061227261", "name": "Commented-code block (8 lines) in server/services/solar/solarEdge.ts:20", "shortDescription": {"text": "Commented-code block (8 lines) in server/services/solar/solarEdge.ts: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-b14aae2cf6a1db5a", "name": "Commented-code block (5 lines) in server/services/solar/datasetRowPersistence.ts:198", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/solar/datasetRowPersistence.ts:198"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-48d7f2effda62fbf", "name": "Commented-code block (6 lines) in server/services/solar/buildForecastAggregates.test.ts:54", "shortDescription": {"text": "Commented-code block (6 lines) in server/services/solar/buildForecastAggregates.test.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-9e5de79dc430507e", "name": "Commented-code block (8 lines) in server/services/solar/foundationRunner.test.ts:304", "shortDescription": {"text": "Commented-code block (8 lines) in server/services/solar/foundationRunner.test.ts:304"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-edbd147fedf77628", "name": "Commented-code block (6 lines) in server/services/solar/buildTrendDeliveryPace.test.ts:7", "shortDescription": {"text": "Commented-code block (6 lines) in server/services/solar/buildTrendDeliveryPace.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-343a62095aa52c81", "name": "Commented-code block (17 lines) in server/services/solar/buildForecastAggregates.ts:302", "shortDescription": {"text": "Commented-code block (17 lines) in server/services/solar/buildForecastAggregates.ts:302"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4ae5a0516f00ac55", "name": "Commented-code block (5 lines) in server/services/solar/scheduleBApplySemaphore.test.ts:146", "shortDescription": {"text": "Commented-code block (5 lines) in server/services/solar/scheduleBApplySemaphore.test.ts:146"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e41735897ef008f3", "name": "Commented-code block (6 lines) in server/db/datasetUploadJobs.test.ts:362", "shortDescription": {"text": "Commented-code block (6 lines) in server/db/datasetUploadJobs.test.ts:362"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7c461d0c5987105c", "name": "Commented-code block (5 lines) in server/db/dinScrapes.ts:108", "shortDescription": {"text": "Commented-code block (5 lines) in server/db/dinScrapes.ts:108"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d4a95487c355ef88", "name": "Legacy-named symbol `pruneOld` in server/db/datasetUploadJobs.ts:537", "shortDescription": {"text": "Legacy-named symbol `pruneOld` in server/db/datasetUploadJobs.ts:537"}, "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-748cf9ae2475c5c4", "name": "Commented-code block (8 lines) in server/db/datasetUploadJobs.ts:222", "shortDescription": {"text": "Commented-code block (8 lines) in server/db/datasetUploadJobs.ts:222"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-02485869b61eafc6", "name": "Commented-code block (8 lines) in server/db/_core.ts:37", "shortDescription": {"text": "Commented-code block (8 lines) in server/db/_core.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-d01dec696c20f404", "name": "Commented-code block (7 lines) in server/db/systemMeterReads.ts:277", "shortDescription": {"text": "Commented-code block (7 lines) in server/db/systemMeterReads.ts:277"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-85d21a0b0661f040", "name": "Commented-code block (7 lines) in server/db/supplements.ts:718", "shortDescription": {"text": "Commented-code block (7 lines) in server/db/supplements.ts:718"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f34e58a124da5654", "name": "Commented-code block (5 lines) in server/db/dashboardCsvExportJobs.ts:28", "shortDescription": {"text": "Commented-code block (5 lines) in server/db/dashboardCsvExportJobs.ts: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-b25b7435c31b6bfb", "name": "Commented-code block (5 lines) in server/db/productionReadings.test.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in server/db/productionReadings.test.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-28e43d1dde983822", "name": "Commented-code block (6 lines) in server/db/notes.ts:260", "shortDescription": {"text": "Commented-code block (6 lines) in server/db/notes.ts:260"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-78dc7b7bf84373e9", "name": "Commented-code block (5 lines) in server/db/ingestNonces.ts:12", "shortDescription": {"text": "Commented-code block (5 lines) in server/db/ingestNonces.ts: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-6a3f5476644b5f3e", "name": "Commented-code block (5 lines) in server/db/preferences.ts:42", "shortDescription": {"text": "Commented-code block (5 lines) in server/db/preferences.ts:42"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a284c268e4fedc45", "name": "Commented-code block (5 lines) in server/db/systemMonitoringHistory.ts:264", "shortDescription": {"text": "Commented-code block (5 lines) in server/db/systemMonitoringHistory.ts:264"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a6077f31c0a6707f", "name": "Commented-code block (7 lines) in server/db/dashboardSystemFacts.test.ts:183", "shortDescription": {"text": "Commented-code block (7 lines) in server/db/dashboardSystemFacts.test.ts:183"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a86031141905e918", "name": "Commented-code block (7 lines) in server/db/solarRecDashboardBuilds.test.ts:421", "shortDescription": {"text": "Commented-code block (7 lines) in server/db/solarRecDashboardBuilds.test.ts:421"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a7b23aaf58f49ea9", "name": "Commented-code block (6 lines) in server/db/dashboardPerformanceRatioFacts.ts:263", "shortDescription": {"text": "Commented-code block (6 lines) in server/db/dashboardPerformanceRatioFacts.ts:263"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-be135f3fdd96d211", "name": "Commented-code block (5 lines) in server/db/conversations.ts:40", "shortDescription": {"text": "Commented-code block (5 lines) in server/db/conversations.ts:40"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-edfb1cdfcbd1ae40", "name": "Commented-code block (5 lines) in server/db/integrations.ts:39", "shortDescription": {"text": "Commented-code block (5 lines) in server/db/integrations.ts:39"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ff387231b180eb39", "name": "Commented-code block (9 lines) in server/db/scheduleB.ts:891", "shortDescription": {"text": "Commented-code block (9 lines) in server/db/scheduleB.ts:891"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0b23d0f4319203f7", "name": "Commented-code block (7 lines) in server/db/dailyJobs.test.ts:114", "shortDescription": {"text": "Commented-code block (7 lines) in server/db/dailyJobs.test.ts:114"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d1dd6a3dda396f03", "name": "Commented-code block (8 lines) in server/db/solarRecDatasets.ts:936", "shortDescription": {"text": "Commented-code block (8 lines) in server/db/solarRecDatasets.ts:936"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3a86714e0f91812b", "name": "Commented-code block (5 lines) in server/db/dashboardSystemFacts.ts:43", "shortDescription": {"text": "Commented-code block (5 lines) in server/db/dashboardSystemFacts.ts:43"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b4349cc76d79a0c4", "name": "Commented-code block (7 lines) in server/db/metrics.ts:102", "shortDescription": {"text": "Commented-code block (7 lines) in server/db/metrics.ts:102"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-07823f534980435c", "name": "Commented-code block (6 lines) in server/db/systemDetailHelpers.test.ts:119", "shortDescription": {"text": "Commented-code block (6 lines) in server/db/systemDetailHelpers.test.ts:119"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4ea9b4711875af35", "name": "Commented-code block (5 lines) in server/db/dashboardPerformanceRatioCompliantFacts.test.ts:415", "shortDescription": {"text": "Commented-code block (5 lines) in server/db/dashboardPerformanceRatioCompliantFacts.test.ts:415"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5e5b7a929be7c1ee", "name": "Commented-code block (5 lines) in server/db/systemRegistry.ts:191", "shortDescription": {"text": "Commented-code block (5 lines) in server/db/systemRegistry.ts:191"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c6021b1cd57c0b00", "name": "Commented-code block (5 lines) in server/db/jobsIndex.ts:292", "shortDescription": {"text": "Commented-code block (5 lines) in server/db/jobsIndex.ts:292"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-62050df17e7fd09d", "name": "Commented-code block (7 lines) in server/db/dailyJobs.ts:50", "shortDescription": {"text": "Commented-code block (7 lines) in server/db/dailyJobs.ts:50"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-83d2e6d9e85b3ccf", "name": "Commented-code block (5 lines) in server/solar/convertedReadsBridge.test.ts:303", "shortDescription": {"text": "Commented-code block (5 lines) in server/solar/convertedReadsBridge.test.ts:303"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-19b860312b74e9c6", "name": "Commented-code block (10 lines) in server/solar/convertedReadsBridge.ts:123", "shortDescription": {"text": "Commented-code block (10 lines) in server/solar/convertedReadsBridge.ts:123"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a7a4f56b519513dd", "name": "Commented-code block (5 lines) in server/solar/monitoring.service.ts:294", "shortDescription": {"text": "Commented-code block (5 lines) in server/solar/monitoring.service.ts:294"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-78382c3475439573", "name": "Commented-code block (8 lines) in server/solar/monitoringScheduler.ts:83", "shortDescription": {"text": "Commented-code block (8 lines) in server/solar/monitoringScheduler.ts:83"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cc43982fa3ce01fd", "name": "Commented-code block (7 lines) in server/solar/adapters/teslaPowerhub.adapter.ts:307", "shortDescription": {"text": "Commented-code block (7 lines) in server/solar/adapters/teslaPowerhub.adapter.ts:307"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2de521f3f2929a13", "name": "Commented-code block (8 lines) in server/routers/auth.ts:308", "shortDescription": {"text": "Commented-code block (8 lines) in server/routers/auth.ts:308"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3de0c0ccb290cebe", "name": "`fetch()` without try/.catch or AbortSignal \u2014 server/routers/productivity.ts:650", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/routers/productivity.ts:650"}, "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-0a82ecfc57667825", "name": "Commented-code block (6 lines) in server/routers/personalData.ts:272", "shortDescription": {"text": "Commented-code block (6 lines) in server/routers/personalData.ts:272"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7173d4814d37ccc2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 server/routers/personalData.ts:2723", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/routers/personalData.ts:2723"}, "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-a87c594dd96f1606", "name": "Commented-code block (6 lines) in server/routers/kingOfDay.ts:707", "shortDescription": {"text": "Commented-code block (6 lines) in server/routers/kingOfDay.ts:707"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-17a5c4119946290c", "name": "Commented-code block (6 lines) in drizzle/schemas/auth.ts:133", "shortDescription": {"text": "Commented-code block (6 lines) in drizzle/schemas/auth.ts:133"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-92b26a26340c19f2", "name": "Commented-code block (5 lines) in drizzle/schemas/dock.ts:53", "shortDescription": {"text": "Commented-code block (5 lines) in drizzle/schemas/dock.ts:53"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-92acdee02db9a88b", "name": "Commented-code block (6 lines) in drizzle/schemas/core.ts:543", "shortDescription": {"text": "Commented-code block (6 lines) in drizzle/schemas/core.ts:543"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-230f9efec00a15a8", "name": "Commented-code block (5 lines) in drizzle/schemas/integrations.ts:59", "shortDescription": {"text": "Commented-code block (5 lines) in drizzle/schemas/integrations.ts:59"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-38c2635ae98ec9a8", "name": "Commented-code block (5 lines) in drizzle/schemas/solar.ts:161", "shortDescription": {"text": "Commented-code block (5 lines) in drizzle/schemas/solar.ts:161"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b49ef011b115b807", "name": "Commented-code block (5 lines) in drizzle/schemas/contacts.ts:57", "shortDescription": {"text": "Commented-code block (5 lines) in drizzle/schemas/contacts.ts:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3f45a82cc48e9df9", "name": "44 env vars used in code but missing from .env.example", "shortDescription": {"text": "44 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `AUTH_BYPASS`, `BANDWIDTH_DIAGNOSTICS_DISABLED`, `BANDWIDTH_LOG_THRESHOLD_BYTES`, `BUILT_IN_FORGE_API_KEY`, `BUILT_IN_FORGE_API_URL`, `DAILY_ACTIVITY_HEADLINE_MODEL`, `DAILY_ACTIVITY_LOG_SHEET_ID`, `DASHBOARD_BUILD_DATASET_CACHE_ENABLED` + 36 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-68ab1ec71ae8331c", "name": "Frontend route `/solar-rec/monitoring` has no Link/navigate to it \u2014 client/src/solar-rec/SolarRecApp.tsx", "shortDescription": {"text": "Frontend route `/solar-rec/monitoring` has no Link/navigate to it \u2014 client/src/solar-rec/SolarRecApp.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5f0a1ddc52d82d4b", "name": "Frontend route `/solar-rec/monitoring-overview` has no Link/navigate to it \u2014 client/src/solar-rec/SolarRecApp.tsx", "shortDescription": {"text": "Frontend route `/solar-rec/monitoring-overview` has no Link/navigate to it \u2014 client/src/solar-rec/SolarRecApp.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-202a5a824c865f7d", "name": "Frontend route `/solar-rec/settings` has no Link/navigate to it \u2014 client/src/solar-rec/SolarRecApp.tsx", "shortDescription": {"text": "Frontend route `/solar-rec/settings` has no Link/navigate to it \u2014 client/src/solar-rec/SolarRecApp.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-94da2162d3ebf8ec", "name": "Frontend route `/solar-rec/jobs` has no Link/navigate to it \u2014 client/src/solar-rec/SolarRecApp.tsx", "shortDescription": {"text": "Frontend route `/solar-rec/jobs` has no Link/navigate to it \u2014 client/src/solar-rec/SolarRecApp.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-48439d8b63b6bcaa", "name": "Frontend route `/solar-rec/jobs/:kind/:id` has no Link/navigate to it \u2014 client/src/solar-rec/SolarRecApp.tsx", "shortDescription": {"text": "Frontend route `/solar-rec/jobs/:kind/:id` has no Link/navigate to it \u2014 client/src/solar-rec/SolarRecApp.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-72d60178f3dce34a", "name": "Frontend route `/solar-rec/systems` has no Link/navigate to it \u2014 client/src/solar-rec/SolarRecApp.tsx", "shortDescription": {"text": "Frontend route `/solar-rec/systems` has no Link/navigate to it \u2014 client/src/solar-rec/SolarRecApp.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5bf1f4968d56f71b", "name": "Frontend route `/solar-rec/system/:csgId` has no Link/navigate to it \u2014 client/src/solar-rec/SolarRecApp.tsx", "shortDescription": {"text": "Frontend route `/solar-rec/system/:csgId` has no Link/navigate to it \u2014 client/src/solar-rec/SolarRecApp.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-99258b09220ffeb1", "name": "Frontend route `${route}` has no Link/navigate to it \u2014 server/_core/solarRecMonitoringGates.test.ts", "shortDescription": {"text": "Frontend route `${route}` has no Link/navigate to it \u2014 server/_core/solarRecMonitoringGates.test.ts"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-29c29b742e3f8c2e", "name": "Dangling fetch: POST /solar-rec/api/trpc/${procedure}?batch=1 (scripts/recover-core-dataset-from-idb.js:124)", "shortDescription": {"text": "Dangling fetch: POST /solar-rec/api/trpc/${procedure}?batch=1 (scripts/recover-core-dataset-from-idb.js:124)"}, "fullDescription": {"text": "`scripts/recover-core-dataset-from-idb.js:124` calls `POST /solar-rec/api/trpc/${procedure}?batch=1` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/solar-rec/api/trpc/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5064f02c447cb791", "name": "Dangling fetch: POST /solar-rec/api/auth/login (client/src/components/SolarRecAuthGate.tsx:51)", "shortDescription": {"text": "Dangling fetch: POST /solar-rec/api/auth/login (client/src/components/SolarRecAuthGate.tsx:51)"}, "fullDescription": {"text": "`client/src/components/SolarRecAuthGate.tsx:51` calls `POST /solar-rec/api/auth/login` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/solar-rec/api/auth/login`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-552cb797518f6b32", "name": "Dangling fetch: GET https://api.todoist.com/sync/v9/completed/get_all?${params.toString()} (server/services/integrations", "shortDescription": {"text": "Dangling fetch: GET https://api.todoist.com/sync/v9/completed/get_all?${params.toString()} (server/services/integrations/todoist.ts:704)"}, "fullDescription": {"text": "`server/services/integrations/todoist.ts:704` calls `GET https://api.todoist.com/sync/v9/completed/get_all?${params.toString()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.todoist.com/sync/v9/completed/get_all`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-86db4c13b09dfe22", "name": "Dangling fetch: POST https://api.anthropic.com/v1/messages (server/services/integrations/supplements.ts:178)", "shortDescription": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (server/services/integrations/supplements.ts:178)"}, "fullDescription": {"text": "`server/services/integrations/supplements.ts:178` calls `POST https://api.anthropic.com/v1/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.anthropic.com/v1/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a02a85b691605903", "name": "Dangling fetch: GET /admin/login (server/services/integrations/csgPortal.ts:629)", "shortDescription": {"text": "Dangling fetch: GET /admin/login (server/services/integrations/csgPortal.ts:629)"}, "fullDescription": {"text": "`server/services/integrations/csgPortal.ts:629` calls `GET /admin/login` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/login`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-25bec2902316f615", "name": "Dangling fetch: POST /admin/login (server/services/integrations/csgPortal.ts:655)", "shortDescription": {"text": "Dangling fetch: POST /admin/login (server/services/integrations/csgPortal.ts:655)"}, "fullDescription": {"text": "`server/services/integrations/csgPortal.ts:655` calls `POST /admin/login` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/login`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e9d5861b7935be62", "name": "Dangling fetch: POST https://slack.com/api/oauth.v2.access (server/services/integrations/slack.ts:62)", "shortDescription": {"text": "Dangling fetch: POST https://slack.com/api/oauth.v2.access (server/services/integrations/slack.ts:62)"}, "fullDescription": {"text": "`server/services/integrations/slack.ts:62` calls `POST https://slack.com/api/oauth.v2.access` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/slack.com/api/oauth.v2.access`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-901ec5d3a4886b54", "name": "Dangling fetch: POST https://slack.com/api/auth.test (server/services/integrations/slack.ts:91)", "shortDescription": {"text": "Dangling fetch: POST https://slack.com/api/auth.test (server/services/integrations/slack.ts:91)"}, "fullDescription": {"text": "`server/services/integrations/slack.ts:91` calls `POST https://slack.com/api/auth.test` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/slack.com/api/auth.test`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-df483fe23b1e9b94", "name": "Dangling fetch: GET https://slack.com/api/search.messages?${params.toString()} (server/services/integrations/slack.ts:15", "shortDescription": {"text": "Dangling fetch: GET https://slack.com/api/search.messages?${params.toString()} (server/services/integrations/slack.ts:157)"}, "fullDescription": {"text": "`server/services/integrations/slack.ts:157` calls `GET https://slack.com/api/search.messages?${params.toString()}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/slack.com/api/search.messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3a0de849a139d77f", "name": "Dangling fetch: POST https://gmail.googleapis.com/gmail/v1/users/me/messages/${encodeURIComponent(messageId)}/modify (se", "shortDescription": {"text": "Dangling fetch: POST https://gmail.googleapis.com/gmail/v1/users/me/messages/${encodeURIComponent(messageId)}/modify (server/services/integrations/google.ts:328)"}, "fullDescription": {"text": "`server/services/integrations/google.ts:328` calls `POST https://gmail.googleapis.com/gmail/v1/users/me/messages/${encodeURIComponent(messageId)}/modify` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/gmail.googleapis.com/gmail/v1/users/me/messages/<p>/modify`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7cd0e6163798ef72", "name": "Dangling fetch: POST https://sheets.googleapis.com/v4/spreadsheets (server/services/integrations/google.ts:405)", "shortDescription": {"text": "Dangling fetch: POST https://sheets.googleapis.com/v4/spreadsheets (server/services/integrations/google.ts:405)"}, "fullDescription": {"text": "`server/services/integrations/google.ts:405` calls `POST https://sheets.googleapis.com/v4/spreadsheets` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/sheets.googleapis.com/v4/spreadsheets`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-74e364fb07e661a9", "name": "Dangling fetch: POST https://oauth2.googleapis.com/token (server/services/integrations/google.ts:621)", "shortDescription": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (server/services/integrations/google.ts:621)"}, "fullDescription": {"text": "`server/services/integrations/google.ts:621` calls `POST https://oauth2.googleapis.com/token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/oauth2.googleapis.com/token`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-38e54d9ced9c9524", "name": "Dangling fetch: POST https://oauth2.googleapis.com/token (server/services/integrations/google.ts:652)", "shortDescription": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (server/services/integrations/google.ts:652)"}, "fullDescription": {"text": "`server/services/integrations/google.ts:652` calls `POST https://oauth2.googleapis.com/token` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/oauth2.googleapis.com/token`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-420c0dadf564e33d", "name": "Dangling fetch: POST https://api.anthropic.com/v1/messages (server/services/core/addressCleaning.ts:470)", "shortDescription": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (server/services/core/addressCleaning.ts:470)"}, "fullDescription": {"text": "`server/services/core/addressCleaning.ts:470` calls `POST https://api.anthropic.com/v1/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.anthropic.com/v1/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b4e9da1404ee1de4", "name": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (server/services/core/addressCleaning.ts:496)", "shortDescription": {"text": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (server/services/core/addressCleaning.ts:496)"}, "fullDescription": {"text": "`server/services/core/addressCleaning.ts:496` calls `POST https://api.openai.com/v1/chat/completions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.openai.com/v1/chat/completions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-854f3e2b83470a42", "name": "Dangling fetch: GET /eguard/ (server/services/solar/egauge.ts:895)", "shortDescription": {"text": "Dangling fetch: GET /eguard/ (server/services/solar/egauge.ts:895)"}, "fullDescription": {"text": "`server/services/solar/egauge.ts:895` calls `GET /eguard/` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/eguard`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3efae5e569f9374b", "name": "Dangling fetch: GET /eguard/data/ (server/services/solar/egauge.ts:1075)", "shortDescription": {"text": "Dangling fetch: GET /eguard/data/ (server/services/solar/egauge.ts:1075)"}, "fullDescription": {"text": "`server/services/solar/egauge.ts:1075` calls `GET /eguard/data/` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/eguard/data`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4f8ab9fb6e68303a", "name": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (server/routers/productivity.ts:650)", "shortDescription": {"text": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (server/routers/productivity.ts:650)"}, "fullDescription": {"text": "`server/routers/productivity.ts:650` calls `POST https://api.openai.com/v1/chat/completions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.openai.com/v1/chat/completions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f7b1a3872f7ef24c", "name": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (server/routers/productivity.ts:812)", "shortDescription": {"text": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (server/routers/productivity.ts:812)"}, "fullDescription": {"text": "`server/routers/productivity.ts:812` calls `POST https://api.openai.com/v1/chat/completions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.openai.com/v1/chat/completions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b812fcfeb904daae", "name": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (server/routers/productivity.ts:947)", "shortDescription": {"text": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (server/routers/productivity.ts:947)"}, "fullDescription": {"text": "`server/routers/productivity.ts:947` calls `POST https://api.openai.com/v1/chat/completions` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.openai.com/v1/chat/completions`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-452348a82716bfa3", "name": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/messages/${encodeURIComponent(messageId)}?format=meta", "shortDescription": {"text": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/messages/${encodeURIComponent(messageId)}?format=metadata&metadataHeaders=Subject (server/routers/personalData.ts:2723)"}, "fullDescription": {"text": "`server/routers/personalData.ts:2723` calls `GET https://gmail.googleapis.com/gmail/v1/users/me/messages/${encodeURIComponent(messageId)}?format=metadata&metadataHeaders=Subject` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/gmail.googleapis.com/gmail/v1/users/me/messages/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e7763b195e068798", "name": "Dangling fetch: GET https://www.googleapis.com/calendar/v3/calendars/${encodeURIComponent(calId)}/events/${encodeURIComp", "shortDescription": {"text": "Dangling fetch: GET https://www.googleapis.com/calendar/v3/calendars/${encodeURIComponent(calId)}/events/${encodeURIComponent(eventId!)} (server/routers/personalData.ts:2791)"}, "fullDescription": {"text": "`server/routers/personalData.ts:2791` calls `GET https://www.googleapis.com/calendar/v3/calendars/${encodeURIComponent(calId)}/events/${encodeURIComponent(eventId!)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/www.googleapis.com/calendar/v3/calendars/<p>/events/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d7012941c24520f1", "name": "Dangling fetch: GET https://www.googleapis.com/calendar/v3/users/me/calendarList?fields=items(id,accessRole) (server/rou", "shortDescription": {"text": "Dangling fetch: GET https://www.googleapis.com/calendar/v3/users/me/calendarList?fields=items(id,accessRole) (server/routers/personalData.ts:2811)"}, "fullDescription": {"text": "`server/routers/personalData.ts:2811` calls `GET https://www.googleapis.com/calendar/v3/users/me/calendarList?fields=items(id,accessRole)` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/www.googleapis.com/calendar/v3/users/me/calendarlist`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c8b0c9e6bcd777a8", "name": "Dangling fetch: GET https://www.googleapis.com/drive/v3/files/${spreadsheetId}?fields=name (server/routers/personalData.", "shortDescription": {"text": "Dangling fetch: GET https://www.googleapis.com/drive/v3/files/${spreadsheetId}?fields=name (server/routers/personalData.ts:2886)"}, "fullDescription": {"text": "`server/routers/personalData.ts:2886` calls `GET https://www.googleapis.com/drive/v3/files/${spreadsheetId}?fields=name` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/www.googleapis.com/drive/v3/files/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-173b1bc476c98547", "name": "Dangling fetch: GET https://api.todoist.com/api/v1/tasks/${encodeURIComponent(taskId)} (server/routers/personalData.ts:2", "shortDescription": {"text": "Dangling fetch: GET https://api.todoist.com/api/v1/tasks/${encodeURIComponent(taskId)} (server/routers/personalData.ts:2945)"}, "fullDescription": {"text": "`server/routers/personalData.ts:2945` calls `GET https://api.todoist.com/api/v1/tasks/${encodeURIComponent(taskId)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.todoist.com/api/v1/tasks/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-be9a5833e4e283f4", "name": "Dangling fetch: POST https://api.anthropic.com/v1/messages (server/routers/personalData.ts:3598)", "shortDescription": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (server/routers/personalData.ts:3598)"}, "fullDescription": {"text": "`server/routers/personalData.ts:3598` calls `POST https://api.anthropic.com/v1/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.anthropic.com/v1/messages`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0dbe1cb992fb5c5b", "name": "Unused endpoint: GET /oauth/google", "shortDescription": {"text": "Unused endpoint: GET /oauth/google"}, "fullDescription": {"text": "`server/oauth-routes.ts` declares `GET /oauth/google` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-eb03a5115c2d8a71", "name": "Unused endpoint: GET /oauth/google/callback", "shortDescription": {"text": "Unused endpoint: GET /oauth/google/callback"}, "fullDescription": {"text": "`server/oauth-routes.ts` declares `GET /oauth/google/callback` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e6ffe0a4ac46924c", "name": "Unused endpoint: GET /oauth/whoop", "shortDescription": {"text": "Unused endpoint: GET /oauth/whoop"}, "fullDescription": {"text": "`server/oauth-routes.ts` declares `GET /oauth/whoop` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-db650ca1d12fd589", "name": "Unused endpoint: GET /oauth/whoop/callback", "shortDescription": {"text": "Unused endpoint: GET /oauth/whoop/callback"}, "fullDescription": {"text": "`server/oauth-routes.ts` declares `GET /oauth/whoop/callback` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-49362ec901d9305e", "name": "Unused endpoint: GET /oauth/slack", "shortDescription": {"text": "Unused endpoint: GET /oauth/slack"}, "fullDescription": {"text": "`server/oauth-routes.ts` declares `GET /oauth/slack` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ce32167f382c6754", "name": "Unused endpoint: GET /oauth/slack/callback", "shortDescription": {"text": "Unused endpoint: GET /oauth/slack/callback"}, "fullDescription": {"text": "`server/oauth-routes.ts` declares `GET /oauth/slack/callback` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d2c9063bc9b9c01b", "name": "Unused endpoint: POST /webhooks/whoop", "shortDescription": {"text": "Unused endpoint: POST /webhooks/whoop"}, "fullDescription": {"text": "`server/oauth-routes.ts` declares `POST /webhooks/whoop` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d2db90a05e7614b5", "name": "Unused endpoint: POST /webhooks/samsung-health", "shortDescription": {"text": "Unused endpoint: POST /webhooks/samsung-health"}, "fullDescription": {"text": "`server/oauth-routes.ts` declares `POST /webhooks/samsung-health` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e17fd20f3fae5cd6", "name": "Unused endpoint: POST /webhooks/samsung-health/batch", "shortDescription": {"text": "Unused endpoint: POST /webhooks/samsung-health/batch"}, "fullDescription": {"text": "`server/oauth-routes.ts` declares `POST /webhooks/samsung-health/batch` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d3f0e6642e916974", "name": "Unused endpoint: POST /webhooks/samsung-health/sdk-shadow/batch", "shortDescription": {"text": "Unused endpoint: POST /webhooks/samsung-health/sdk-shadow/batch"}, "fullDescription": {"text": "`server/oauth-routes.ts` declares `POST /webhooks/samsung-health/sdk-shadow/batch` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-52aa6bb90f761c98", "name": "Unused endpoint: POST /webhooks/samsung-health/import-daily-metrics", "shortDescription": {"text": "Unused endpoint: POST /webhooks/samsung-health/import-daily-metrics"}, "fullDescription": {"text": "`server/oauth-routes.ts` declares `POST /webhooks/samsung-health/import-daily-metrics` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8b0514fb34f15a11", "name": "Unused endpoint: GET /webhooks/samsung-health/debug", "shortDescription": {"text": "Unused endpoint: GET /webhooks/samsung-health/debug"}, "fullDescription": {"text": "`server/oauth-routes.ts` declares `GET /webhooks/samsung-health/debug` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c582c77bd1a58a0f", "name": "Unused endpoint: USE /api/trpc/<proc>", "shortDescription": {"text": "Unused endpoint: USE /api/trpc/<proc>"}, "fullDescription": {"text": "`server/_core/security.ts` declares `USE /api/trpc/<proc>` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dde3adb27bf7eebe", "name": "Unused endpoint: USE /api", "shortDescription": {"text": "Unused endpoint: USE /api"}, "fullDescription": {"text": "`server/_core/security.ts` declares `USE /api` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ac1c4924f32c1d79", "name": "Unused endpoint: USE /api/trpc", "shortDescription": {"text": "Unused endpoint: USE /api/trpc"}, "fullDescription": {"text": "`server/_core/security.ts` declares `USE /api/trpc` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b93c1ed754cfdc30", "name": "Unused endpoint: USE /api/oauth", "shortDescription": {"text": "Unused endpoint: USE /api/oauth"}, "fullDescription": {"text": "`server/_core/security.ts` declares `USE /api/oauth` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-86088fb7ae1e08c5", "name": "Unused endpoint: USE /solar-rec/api/trpc", "shortDescription": {"text": "Unused endpoint: USE /solar-rec/api/trpc"}, "fullDescription": {"text": "`server/_core/index.ts` declares `USE /solar-rec/api/trpc` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-99d4709bb39be00b", "name": "Unused endpoint: USE /solar-rec/api/main-trpc", "shortDescription": {"text": "Unused endpoint: USE /solar-rec/api/main-trpc"}, "fullDescription": {"text": "`server/_core/index.ts` declares `USE /solar-rec/api/main-trpc` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-acbaaa9e533b33f5", "name": "Unused endpoint: GET /api/oauth/callback", "shortDescription": {"text": "Unused endpoint: GET /api/oauth/callback"}, "fullDescription": {"text": "`server/_core/oauth.ts` declares `GET /api/oauth/callback` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5b460bccbb3391d9", "name": "Unused endpoint: POST /api/oauth/exchange", "shortDescription": {"text": "Unused endpoint: POST /api/oauth/exchange"}, "fullDescription": {"text": "`server/_core/oauth.ts` declares `POST /api/oauth/exchange` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-71f7bd3b4bf7ad17", "name": "Unused endpoint: GET /solar-rec/api/auth/google", "shortDescription": {"text": "Unused endpoint: GET /solar-rec/api/auth/google"}, "fullDescription": {"text": "`server/_core/solarRecAuth.ts` declares `GET /solar-rec/api/auth/google` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-32cbdfb8486303b0", "name": "Unused endpoint: GET /solar-rec/api/auth/google/callback", "shortDescription": {"text": "Unused endpoint: GET /solar-rec/api/auth/google/callback"}, "fullDescription": {"text": "`server/_core/solarRecAuth.ts` declares `GET /solar-rec/api/auth/google/callback` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f8752c7eb4ef602a", "name": "Unused endpoint: POST /api/pin/logout", "shortDescription": {"text": "Unused endpoint: POST /api/pin/logout"}, "fullDescription": {"text": "`server/_core/pinGate.ts` declares `POST /api/pin/logout` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3b59435b3211a9df", "name": "Unused endpoint: USE /assets", "shortDescription": {"text": "Unused endpoint: USE /assets"}, "fullDescription": {"text": "`server/_core/vite.ts` declares `USE /assets` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-546bef5426a8ab5f", "name": "Unused endpoint: USE /solar-rec/*", "shortDescription": {"text": "Unused endpoint: USE /solar-rec/*"}, "fullDescription": {"text": "`server/_core/vite.ts` declares `USE /solar-rec/*` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-203ec659ed8ada77", "name": "Unused endpoint: USE /api/webhooks", "shortDescription": {"text": "Unused endpoint: USE /api/webhooks"}, "fullDescription": {"text": "`server/_core/webhookBodyLimit.ts` declares `USE /api/webhooks` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/18256"}, "properties": {"repository": "rmgopaul/coherence-app", "repoUrl": "https://github.com/rmgopaul/coherence-app", "branch": "main"}, "results": [{"ruleId": "scanner-a88c5848f725e8ed", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 vite.config.ts:87"}, "properties": {"repobilityId": "ab305e17677e589d", "scanner": "scanner-primary", "fingerprint": "a88c5848f725e8ed", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bfe40bafd4d5b8d3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec-dashboard/components/FinancialsTab.tsx:1615"}, "properties": {"repobilityId": "24b36920f1c1c2a8", "scanner": "scanner-primary", "fingerprint": "bfe40bafd4d5b8d3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-aa3cd3f32561cca6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec-dashboard/components/ScheduleBImport.tsx:1586"}, "properties": {"repobilityId": "7e76218cfe9b31ac", "scanner": "scanner-primary", "fingerprint": "aa3cd3f32561cca6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a7c76e0cd5ecee47", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/BriefingHero.tsx:366"}, "properties": {"repobilityId": "211ea7a67d7ad062", "scanner": "scanner-primary", "fingerprint": "a7c76e0cd5ecee47", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2481617911b55ad9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/GlobalClockifyTimer.tsx:91"}, "properties": {"repobilityId": "8128a87ec540333c", "scanner": "scanner-primary", "fingerprint": "2481617911b55ad9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-edbd16ce5d33e2ce", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/layout/CommandPalette.tsx:330"}, "properties": {"repobilityId": "b9f696ed83b44a35", "scanner": "scanner-primary", "fingerprint": "edbd16ce5d33e2ce", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bf775109a4ec4a3f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/notebook/NotebookSidebar.tsx:67"}, "properties": {"repobilityId": "5d582b877ee5d428", "scanner": "scanner-primary", "fingerprint": "bf775109a4ec4a3f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a7b3db9745e9c497", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 client/src/components/ui/chart.tsx:81"}, "properties": {"repobilityId": "1c3a04e593515dbe", "scanner": "scanner-primary", "fingerprint": "a7b3db9745e9c497", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-285e021caa273b4c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/dashboard/SupplementsCard.tsx:258"}, "properties": {"repobilityId": "edc9ec78ad0e75fe", "scanner": "scanner-primary", "fingerprint": "285e021caa273b4c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-191224944a52cdd2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/dashboard/NotesCard.tsx:304"}, "properties": {"repobilityId": "3e4c70d5043065ba", "scanner": "scanner-primary", "fingerprint": "191224944a52cdd2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6469881caf1b4572", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/dashboard/MarketHeadlinesCard.tsx:101"}, "properties": {"repobilityId": "465e0b19c3ff53a2", "scanner": "scanner-primary", "fingerprint": "6469881caf1b4572", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f418ecd174f2527f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/dashboard/SolarReadingsCard.tsx:81"}, "properties": {"repobilityId": "25f37b806fb87ac5", "scanner": "scanner-primary", "fingerprint": "f418ecd174f2527f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-36af08a14e028eee", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/components/dashboard/ChatPanel.tsx:108"}, "properties": {"repobilityId": "1b6be6811eda7b5f", "scanner": "scanner-primary", "fingerprint": "36af08a14e028eee", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fe20a953209e4415", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/components/PermissionPresets.tsx:235"}, "properties": {"repobilityId": "b18ea2c05960ddb7", "scanner": "scanner-primary", "fingerprint": "fe20a953209e4415", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a329ae6fda0a4d93", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/components/SolarRecSidebar.tsx:357"}, "properties": {"repobilityId": "8f03d41b9a71844d", "scanner": "scanner-primary", "fingerprint": "a329ae6fda0a4d93", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7ea58006202aa5ac", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/DeepUpdateSynthesizer.tsx:1223"}, "properties": {"repobilityId": "0c35b770b48d811c", "scanner": "scanner-primary", "fingerprint": "7ea58006202aa5ac", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-365ca2b257338d42", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/EarlyPayment.tsx:1271"}, "properties": {"repobilityId": "191f54c732f36880", "scanner": "scanner-primary", "fingerprint": "365ca2b257338d42", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8cda4bbb52dabb21", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/SolarRecSettings.tsx:220"}, "properties": {"repobilityId": "8a866096f49b9eec", "scanner": "scanner-primary", "fingerprint": "8cda4bbb52dabb21", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-536938a07d898ab2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/DinScrapeManager.tsx:678"}, "properties": {"repobilityId": "4e50d1aace35bd06", "scanner": "scanner-primary", "fingerprint": "536938a07d898ab2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-dc714fa1dfc873d8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/ContractScrapeManager.tsx:523"}, "properties": {"repobilityId": "6712a55df049da9b", "scanner": "scanner-primary", "fingerprint": "dc714fa1dfc873d8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-70f387ef66ddd06c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/AbpInvoiceSettlement.tsx:2684"}, "properties": {"repobilityId": "d803ebd724044736", "scanner": "scanner-primary", "fingerprint": "70f387ef66ddd06c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-92ab2b4cba2755ed", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/MonitoringDashboard.tsx:195"}, "properties": {"repobilityId": "8c416f33cacd1143", "scanner": "scanner-primary", "fingerprint": "92ab2b4cba2755ed", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-48871824f0b88344", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/MonitoringOverview.tsx:443"}, "properties": {"repobilityId": "9ecf13b42c718c83", "scanner": "scanner-primary", "fingerprint": "48871824f0b88344", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-afe151a45a92e29e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/meter-reads/SolarEdgeMeterReads.tsx:931"}, "properties": {"repobilityId": "c7272942b5c26e55", "scanner": "scanner-primary", "fingerprint": "afe151a45a92e29e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-23f4db2ed28204a2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/meter-reads/EgaugeMeterReads.tsx:1135"}, "properties": {"repobilityId": "745566af2a6d3e31", "scanner": "scanner-primary", "fingerprint": "23f4db2ed28204a2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e30fff85eb3a9b72", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/solar-rec/pages/meter-reads/HoymilesMeterReads.tsx:805"}, "properties": {"repobilityId": "b20097b534f4c024", "scanner": "scanner-primary", "fingerprint": "e30fff85eb3a9b72", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c91f89ef1a46ef78", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/settings/Settings.tsx:1739"}, "properties": {"repobilityId": "547485cf791c13c8", "scanner": "scanner-primary", "fingerprint": "c91f89ef1a46ef78", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8208f282e732c794", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/notebook/Notebook.tsx:1333"}, "properties": {"repobilityId": "b0091b2ebc629742", "scanner": "scanner-primary", "fingerprint": "8208f282e732c794", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8d9b1b406f755aa5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/habits/HabitsTodayPanel.tsx:78"}, "properties": {"repobilityId": "4024d0ac965960c2", "scanner": "scanner-primary", "fingerprint": "8d9b1b406f755aa5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7c55a4c151fa727f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/health/HealthSleepPanel.tsx:238"}, "properties": {"repobilityId": "f69123f51477834f", "scanner": "scanner-primary", "fingerprint": "7c55a4c151fa727f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b42ed58149998688", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/health/HealthInsightsPanel.tsx:363"}, "properties": {"repobilityId": "862d5c30b17e0906", "scanner": "scanner-primary", "fingerprint": "b42ed58149998688", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f36928367326e9ec", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/dashboard/GmailWidget.tsx:81"}, "properties": {"repobilityId": "f0e40a007b693fc0", "scanner": "scanner-primary", "fingerprint": "f36928367326e9ec", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ebedcacb8ddeef88", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/dashboard/ChatGPTWidget.tsx:376"}, "properties": {"repobilityId": "c37540cc30b1992a", "scanner": "scanner-primary", "fingerprint": "ebedcacb8ddeef88", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-216bc89bfa45e4c6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/dashboard/frontpage/AttachExistingNoteDialog.tsx:125"}, "properties": {"repobilityId": "702488ccaf6eaa16", "scanner": "scanner-primary", "fingerprint": "216bc89bfa45e4c6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6d7de2531b9c87db", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/dashboard/frontpage/LinkedNotesBadge.tsx:212"}, "properties": {"repobilityId": "01e6107ae5362048", "scanner": "scanner-primary", "fingerprint": "6d7de2531b9c87db", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f1086080877bc5e0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/supplements/Supplements.tsx:242"}, "properties": {"repobilityId": "f393b525a299f41b", "scanner": "scanner-primary", "fingerprint": "f1086080877bc5e0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-55cd3f70d0be7e9a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/supplements/SupplementsTodayPanel.tsx:313"}, "properties": {"repobilityId": "4fcbda3c44411e26", "scanner": "scanner-primary", "fingerprint": "55cd3f70d0be7e9a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-05556c614b095a58", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/supplements/SupplementsRestockCard.tsx:128"}, "properties": {"repobilityId": "2c33444396ab2297", "scanner": "scanner-primary", "fingerprint": "05556c614b095a58", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1ce0719572b60fe9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 client/src/features/solar-rec/SolarRecDashboard.tsx:5383"}, "properties": {"repobilityId": "4c30a5a79301b2a3", "scanner": "scanner-primary", "fingerprint": "1ce0719572b60fe9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8a2fb889ad881551", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 client/src/features/solar-rec/SolarRecDashboard.tsx:6106"}, "properties": {"repobilityId": "22da2e3e3fe10106", "scanner": "scanner-primary", "fingerprint": "8a2fb889ad881551", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-74c2cfcc177c9870", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/recover-core-dataset-from-idb.js:238"}, "properties": {"repobilityId": "68a84aa97d285b68", "scanner": "scanner-primary", "fingerprint": "74c2cfcc177c9870", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e2739b70cbb0c4bf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/oauth-routes.ts:754"}, "properties": {"repobilityId": "7f9189865ce77c0c", "scanner": "scanner-primary", "fingerprint": "e2739b70cbb0c4bf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4bf8b6f8e7e669cd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/scripts/applyDockCanvasMigration.ts:65"}, "properties": {"repobilityId": "2be85c7eb00e9c97", "scanner": "scanner-primary", "fingerprint": "4bf8b6f8e7e669cd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-af1b4f048627af7d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/scripts/applyKingOfDayMigration.ts:86"}, "properties": {"repobilityId": "de7dcb0fe270312c", "scanner": "scanner-primary", "fingerprint": "af1b4f048627af7d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f5e65e745df6ae51", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/scripts/applyDockItemsMigration.ts:70"}, "properties": {"repobilityId": "39c8bf9e496944ac", "scanner": "scanner-primary", "fingerprint": "f5e65e745df6ae51", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7442475b2ddc4033", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/scripts/applySupplementsPhase4Migration.ts:89"}, "properties": {"repobilityId": "e9093b981d23d7ac", "scanner": "scanner-primary", "fingerprint": "7442475b2ddc4033", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-df17317286590341", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/scripts/applyHabitsHealthMigration.ts:83"}, "properties": {"repobilityId": "1ae40a41c9c9f751", "scanner": "scanner-primary", "fingerprint": "df17317286590341", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3eb36ebd4280b7ae", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/scripts/markMigrationApplied.ts:106"}, "properties": {"repobilityId": "b11613b9d11d82a5", "scanner": "scanner-primary", "fingerprint": "3eb36ebd4280b7ae", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4de2b99cfc509132", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/scripts/reconcileScheduleBImportState.ts:57"}, "properties": {"repobilityId": "9d7cfc0e796aa5d9", "scanner": "scanner-primary", "fingerprint": "4de2b99cfc509132", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-785d70890bbbf2b2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/scripts/importSamsungCsv.ts:166"}, "properties": {"repobilityId": "b49aaf0bde93c38e", "scanner": "scanner-primary", "fingerprint": "785d70890bbbf2b2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ce682e504616bc21", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/scripts/migrateSolarRecDashboardToScope.ts:106"}, "properties": {"repobilityId": "9a2042b299075a17", "scanner": "scanner-primary", "fingerprint": "ce682e504616bc21", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7368a1833c163ade", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/helpers/tokenRefresh.ts:55"}, "properties": {"repobilityId": "2bbb700d32a761e7", "scanner": "scanner-primary", "fingerprint": "7368a1833c163ade", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ec7e68f6781540bc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/_core/nightlySnapshotScheduler.ts:21"}, "properties": {"repobilityId": "cba1d0ca004c5b01", "scanner": "scanner-primary", "fingerprint": "ec7e68f6781540bc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ca8405ac25b41247", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/_core/index.ts:311"}, "properties": {"repobilityId": "222c2b877d341bd4", "scanner": "scanner-primary", "fingerprint": "ca8405ac25b41247", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5ee7c85396b964fc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/_core/oauth.ts:150"}, "properties": {"repobilityId": "627efa8024eaa52b", "scanner": "scanner-primary", "fingerprint": "5ee7c85396b964fc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8231ea918fed4309", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/_core/scheduleDaily.ts:132"}, "properties": {"repobilityId": "abc6562816e5af83", "scanner": "scanner-primary", "fingerprint": "8231ea918fed4309", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-28e41241c4a613ce", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/_core/solarRecDashboardRouter.ts:301"}, "properties": {"repobilityId": "85a85a1abbcfbc7f", "scanner": "scanner-primary", "fingerprint": "28e41241c4a613ce", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b05a0836af0537ed", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/services/integrations/todoist.ts:449"}, "properties": {"repobilityId": "7842a49cfb63055d", "scanner": "scanner-primary", "fingerprint": "b05a0836af0537ed", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7950167d2c9b9175", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/services/integrations/marketData.ts:791"}, "properties": {"repobilityId": "85f8b3076fb6a35d", "scanner": "scanner-primary", "fingerprint": "7950167d2c9b9175", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-92b938e18cb60ddc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/services/notifications/dailySnapshot.ts:327"}, "properties": {"repobilityId": "2801d916438cf1f8", "scanner": "scanner-primary", "fingerprint": "92b938e18cb60ddc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5703aba7b3f55655", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/services/personalDashboard/commandCenter.ts:160"}, "properties": {"repobilityId": "7edee9aa3652364d", "scanner": "scanner-primary", "fingerprint": "5703aba7b3f55655", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5763e33d13e009bc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/services/core/csgScheduleBImportJobRunner.ts:64"}, "properties": {"repobilityId": "b3f7739dfaa37c51", "scanner": "scanner-primary", "fingerprint": "5763e33d13e009bc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cd850738b60d186d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/services/core/scheduleBImportJobRunner.ts:65"}, "properties": {"repobilityId": "5fe90e212d058997", "scanner": "scanner-primary", "fingerprint": "cd850738b60d186d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-95a7be756b5e5cda", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/services/core/datasetUploadJobPoller.ts:63"}, "properties": {"repobilityId": "0d36cabe1d4ab92a", "scanner": "scanner-primary", "fingerprint": "95a7be756b5e5cda", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5227a0327a6284f1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/services/core/datasetUploadStaleJobSweeper.ts:77"}, "properties": {"repobilityId": "884527cc8cfe9cfc", "scanner": "scanner-primary", "fingerprint": "5227a0327a6284f1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-43031837c87dd363", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/services/core/datasetUploadJobRunner.ts:122"}, "properties": {"repobilityId": "a2ff623f5bb19884", "scanner": "scanner-primary", "fingerprint": "43031837c87dd363", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2eb09cb927f98411", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/services/core/datasetUploadWorkerHost.ts:78"}, "properties": {"repobilityId": "13eeeb29c35686f9", "scanner": "scanner-primary", "fingerprint": "2eb09cb927f98411", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bcc00133fe1ffd2c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/services/core/ruAttribution.ts:79"}, "properties": {"repobilityId": "bbc4eaf3ab9f8730", "scanner": "scanner-primary", "fingerprint": "bcc00133fe1ffd2c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1e6be53b4e42960d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/services/solar/serverSideMigration.ts:470"}, "properties": {"repobilityId": "0681ed6947477d8d", "scanner": "scanner-primary", "fingerprint": "1e6be53b4e42960d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-232d7fafa4494807", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/services/solar/buildSystemSnapshot.ts:932"}, "properties": {"repobilityId": "b8d44f2763560c95", "scanner": "scanner-primary", "fingerprint": "232d7fafa4494807", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-02b265b343b584e3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/services/solar/buildFoundationArtifact.ts:823"}, "properties": {"repobilityId": "ec553ed177709045", "scanner": "scanner-primary", "fingerprint": "02b265b343b584e3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-20ff209d85a65139", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/services/solar/dashboardBuildJobs.ts:393"}, "properties": {"repobilityId": "07f2ddc7cfbc906e", "scanner": "scanner-primary", "fingerprint": "20ff209d85a65139", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1789a9c948778e7a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/services/solar/datasetIngestion.ts:772"}, "properties": {"repobilityId": "48a1f40303825130", "scanner": "scanner-primary", "fingerprint": "1789a9c948778e7a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6f812478cd07a6f2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/services/solar/egauge.ts:873"}, "properties": {"repobilityId": "0ae0ca3da9178681", "scanner": "scanner-primary", "fingerprint": "6f812478cd07a6f2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d50e670d2db1ef01", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/services/solar/dashboardJobMetrics.ts:149"}, "properties": {"repobilityId": "9ed9fdbbbd8de933", "scanner": "scanner-primary", "fingerprint": "d50e670d2db1ef01", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d524f5b2bb48a0c7", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 server/services/solar/buildDeliverySnapshot.ts:32"}, "properties": {"repobilityId": "5142a235a286f097", "scanner": "scanner-primary", "fingerprint": "d524f5b2bb48a0c7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-c8c37d5aafc44ba4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/solar/monitoring.service.ts:177"}, "properties": {"repobilityId": "c6f5acafab80d5b7", "scanner": "scanner-primary", "fingerprint": "c8c37d5aafc44ba4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4257e1b83f044099", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/solar/monitoringScheduler.ts:93"}, "properties": {"repobilityId": "b047da6b5f21867b", "scanner": "scanner-primary", "fingerprint": "4257e1b83f044099", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c484e9e46786d173", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 server/routers/personalData.ts:2747"}, "properties": {"repobilityId": "ae661b2ddb913c20", "scanner": "scanner-primary", "fingerprint": "c484e9e46786d173", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-55bcdd7f724f133f", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in vite.config.ts:4"}, "properties": {"repobilityId": "b194fcea7803da43", "scanner": "scanner-primary", "fingerprint": "55bcdd7f724f133f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "vite.config.ts"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-8df37d9232a59094", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in client/src/components/ui/chart.tsx:81"}, "properties": {"repobilityId": "298aaf10501f50f1", "scanner": "scanner-primary", "fingerprint": "8df37d9232a59094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "client/src/components/ui/chart.tsx"}, "region": {"startLine": 81}}}]}, {"ruleId": "scanner-8d4648fea44389e1", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in client/src/components/dashboard/NotesCard.tsx:21"}, "properties": {"repobilityId": "425d98684ac375b1", "scanner": "scanner-primary", "fingerprint": "8d4648fea44389e1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "client/src/components/dashboard/NotesCard.tsx"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-4e44ecd706675767", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in client/src/lib/noteContent.ts:115"}, "properties": {"repobilityId": "3321a35580e65cc1", "scanner": "scanner-primary", "fingerprint": "4e44ecd706675767", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "client/src/lib/noteContent.ts"}, "region": {"startLine": 115}}}]}, {"ruleId": "scanner-8216ab2c7e36ff87", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in client/src/features/dashboard/dashboard.helpers.ts:29"}, "properties": {"repobilityId": "7917de334dcd380f", "scanner": "scanner-primary", "fingerprint": "8216ab2c7e36ff87", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "client/src/features/dashboard/dashboard.helpers.ts"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-f76ce31c637dbcdb", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in server/_core/totp.ts:8"}, "properties": {"repobilityId": "89b723bbd2cb7b24", "scanner": "scanner-primary", "fingerprint": "f76ce31c637dbcdb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/_core/totp.ts"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-2a32cb54824ed5cd", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in server/services/integrations/marketData.ts:7"}, "properties": {"repobilityId": "2df6c26a88d0e3ce", "scanner": "scanner-primary", "fingerprint": "2a32cb54824ed5cd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/services/integrations/marketData.ts"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-c44ebe0517cf11d4", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in server/services/personalDashboard/dailyActivityReportHtml.ts:399"}, "properties": {"repobilityId": "d54f19fb68d8a6ca", "scanner": "scanner-primary", "fingerprint": "c44ebe0517cf11d4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/services/personalDashboard/dailyActivityReportHtml.ts"}, "region": {"startLine": 399}}}]}, {"ruleId": "scanner-a72971d7f6b88bb9", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in server/services/core/politicalOdds.ts:21"}, "properties": {"repobilityId": "35b4aa2d44b741f5", "scanner": "scanner-primary", "fingerprint": "a72971d7f6b88bb9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/services/core/politicalOdds.ts"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-c894cecde85bdd00", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in server/services/core/approvalRatings.ts:1"}, "properties": {"repobilityId": "c2cf9f3b8e29feb3", "scanner": "scanner-primary", "fingerprint": "c894cecde85bdd00", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "server/services/core/approvalRatings.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-33dfce00db7d271e", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "1c08d6c28906c18c", "scanner": "scanner-primary", "fingerprint": "33dfce00db7d271e", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/android.yml"}, "region": {"startLine": 66}}}]}, {"ruleId": "scanner-33dfce00db7d271e", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "0e70d58e7e294486", "scanner": "scanner-primary", "fingerprint": "33dfce00db7d271e", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/android.yml"}, "region": {"startLine": 72}}}]}, {"ruleId": "scanner-33dfce00db7d271e", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "fe83efe48ab1106c", "scanner": "scanner-primary", "fingerprint": "33dfce00db7d271e", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/android.yml"}, "region": {"startLine": 109}}}]}, {"ruleId": "scanner-33dfce00db7d271e", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "fe83efe48ab1106c", "scanner": "scanner-primary", "fingerprint": "33dfce00db7d271e", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/android.yml"}, "region": {"startLine": 128}}}]}, {"ruleId": "scanner-cb639d9a10a47b23", "level": "note", "message": {"text": "package.json defines install-time lifecycle scripts"}, "properties": {"repobilityId": "b86179956da3a4a8", "scanner": "scanner-primary", "fingerprint": "cb639d9a10a47b23", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f111dccede743767", "level": "note", "message": {"text": "Very large file: client/src/solar-rec-dashboard/components/FinancialsTab.tsx (1924 lines)"}, "properties": {"repobilityId": "878a6df52e75da2b", "scanner": "scanner-primary", "fingerprint": "f111dccede743767", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f952f22b89121f14", "level": "note", "message": {"text": "Very large file: client/src/solar-rec-dashboard/components/AppPipelineTab.tsx (1294 lines)"}, "properties": {"repobilityId": "78ef6d8935a1793a", "scanner": "scanner-primary", "fingerprint": "f952f22b89121f14", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0476687cdce0be62", "level": "note", "message": {"text": "Very large file: client/src/solar-rec-dashboard/components/OfflineMonitoringTab.tsx (1500 lines)"}, "properties": {"repobilityId": "c80e9b4a57500e5a", "scanner": "scanner-primary", "fingerprint": "0476687cdce0be62", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f5c66e0a016229b7", "level": "note", "message": {"text": "Very large file: client/src/solar-rec-dashboard/components/ForecastTab.tsx (1145 lines)"}, "properties": {"repobilityId": "c8e4b82454106d92", "scanner": "scanner-primary", "fingerprint": "f5c66e0a016229b7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5e4267ee4c80ad9d", "level": "note", "message": {"text": "Very large file: client/src/solar-rec-dashboard/components/ScheduleBImport.tsx (2428 lines)"}, "properties": {"repobilityId": "76564bd3ed0d9d49", "scanner": "scanner-primary", "fingerprint": "5e4267ee4c80ad9d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-27712542ece3eb26", "level": "note", "message": {"text": "Very large file: client/src/solar-rec-dashboard/components/RecPerformanceEvaluationTab.tsx (1260 lines)"}, "properties": {"repobilityId": "506099df8ff9f835", "scanner": "scanner-primary", "fingerprint": "27712542ece3eb26", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-74b50e7061b21995", "level": "note", "message": {"text": "Very large file: client/src/solar-rec-dashboard/components/PerformanceRatioTab.tsx (2392 lines)"}, "properties": {"repobilityId": "31dcdb715a02ea2c", "scanner": "scanner-primary", "fingerprint": "74b50e7061b21995", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e1054b654a790ea3", "level": "note", "message": {"text": "Very large file: client/src/solar-rec-dashboard/lib/dashboardMountResilience.test.ts (1741 lines)"}, "properties": {"repobilityId": "1d544e02bd5f9055", "scanner": "scanner-primary", "fingerprint": "e1054b654a790ea3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-95eef8389d14809c", "level": "note", "message": {"text": "Very large file: client/src/components/AbpPaymentEmailPreview.tsx (971 lines)"}, "properties": {"repobilityId": "a9e6da844f1122c5", "scanner": "scanner-primary", "fingerprint": "95eef8389d14809c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-cf070749b182f08e", "level": "note", "message": {"text": "Very large file: client/src/lib/abpSettlement.ts (2614 lines)"}, "properties": {"repobilityId": "1398fb78afcc8041", "scanner": "scanner-primary", "fingerprint": "cf070749b182f08e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ceaea0148ebecea7", "level": "note", "message": {"text": "Very large file: client/src/solar-rec/pages/DeepUpdateSynthesizer.tsx (1356 lines)"}, "properties": {"repobilityId": "9344b980dc7089d7", "scanner": "scanner-primary", "fingerprint": "ceaea0148ebecea7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a224d8e8aeec0705", "level": "note", "message": {"text": "Very large file: client/src/solar-rec/pages/EarlyPayment.tsx (1436 lines)"}, "properties": {"repobilityId": "b63ec8d2548d2e59", "scanner": "scanner-primary", "fingerprint": "a224d8e8aeec0705", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fb68dd66ceef2133", "level": "note", "message": {"text": "Very large file: client/src/solar-rec/pages/SystemDetail.tsx (1794 lines)"}, "properties": {"repobilityId": "9e5647711d6f873c", "scanner": "scanner-primary", "fingerprint": "fb68dd66ceef2133", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2960847da2aa3100", "level": "note", "message": {"text": "Very large file: client/src/solar-rec/pages/AbpInvoiceSettlement.tsx (4209 lines)"}, "properties": {"repobilityId": "199fa492d713b359", "scanner": "scanner-primary", "fingerprint": "2960847da2aa3100", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0053ebfc2fee4422", "level": "note", "message": {"text": "Very large file: client/src/solar-rec/pages/MonitoringDashboard.tsx (1653 lines)"}, "properties": {"repobilityId": "bf053ecf73ca76d4", "scanner": "scanner-primary", "fingerprint": "0053ebfc2fee4422", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d4b24e823cb43846", "level": "note", "message": {"text": "Very large file: client/src/solar-rec/pages/InvoiceMatchDashboard.tsx (1449 lines)"}, "properties": {"repobilityId": "0b8e5007019db6aa", "scanner": "scanner-primary", "fingerprint": "d4b24e823cb43846", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-13ac8964f9ef739f", "level": "note", "message": {"text": "Very large file: client/src/features/settings/Settings.tsx (2974 lines)"}, "properties": {"repobilityId": "8d4d574fb20d7a17", "scanner": "scanner-primary", "fingerprint": "13ac8964f9ef739f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0104171eb659de68", "level": "note", "message": {"text": "Very large file: client/src/features/notebook/Notebook.tsx (2134 lines)"}, "properties": {"repobilityId": "7bbc8384d2869b97", "scanner": "scanner-primary", "fingerprint": "0104171eb659de68", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8dfd3d6be455e001", "level": "note", "message": {"text": "Very large file: client/src/features/dashboard/frontpage/DailyWorkflowPanel.tsx (1713 lines)"}, "properties": {"repobilityId": "f009259fbc3cd379", "scanner": "scanner-primary", "fingerprint": "8dfd3d6be455e001", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-70fe7b97dc14ec4b", "level": "note", "message": {"text": "Very large file: client/src/features/solar-rec/SolarRecDashboard.tsx (6501 lines)"}, "properties": {"repobilityId": "85e4b07750e05dd4", "scanner": "scanner-primary", "fingerprint": "70fe7b97dc14ec4b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-42ffe565587524c3", "level": "note", "message": {"text": "Very large file: server/oauth-routes.ts (1454 lines)"}, "properties": {"repobilityId": "fdec31b378722310", "scanner": "scanner-primary", "fingerprint": "42ffe565587524c3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-20f3ff1b9e1683ff", "level": "note", "message": {"text": "Very large file: server/_core/solarRecRouter.ts (5979 lines)"}, "properties": {"repobilityId": "7567e5477000d097", "scanner": "scanner-primary", "fingerprint": "20f3ff1b9e1683ff", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-47eba373de2832e6", "level": "note", "message": {"text": "Very large file: server/_core/solarRecDashboardRouter.ts (7671 lines)"}, "properties": {"repobilityId": "33e65cf6d6758727", "scanner": "scanner-primary", "fingerprint": "47eba373de2832e6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0f4d8b80147770a6", "level": "note", "message": {"text": "Very large file: server/services/solar/dashboardCsvExportJobs.test.ts (1946 lines)"}, "properties": {"repobilityId": "63013e63728f2347", "scanner": "scanner-primary", "fingerprint": "0f4d8b80147770a6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-250aa63e8302c083", "level": "note", "message": {"text": "Very large file: server/services/solar/buildDashboardPerformanceRatioFacts.ts (1748 lines)"}, "properties": {"repobilityId": "0f2c8b8ba2a5bd70", "scanner": "scanner-primary", "fingerprint": "250aa63e8302c083", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-cbe58a5c1e7a0c09", "level": "note", "message": {"text": "Very large file: server/services/solar/buildDashboardPerformanceRatioFacts.test.ts (1764 lines)"}, "properties": {"repobilityId": "2a2af2e4594592a9", "scanner": "scanner-primary", "fingerprint": "cbe58a5c1e7a0c09", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4adbeb8728ea5dcd", "level": "note", "message": {"text": "Very large file: server/services/solar/dashboardCsvExportJobs.ts (1744 lines)"}, "properties": {"repobilityId": "21dc70d88f0ff366", "scanner": "scanner-primary", "fingerprint": "4adbeb8728ea5dcd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a3a4bcc4151adfa3", "level": "note", "message": {"text": "Very large file: server/services/solar/buildFoundationArtifact.ts (1914 lines)"}, "properties": {"repobilityId": "68e2226649c0e030", "scanner": "scanner-primary", "fingerprint": "a3a4bcc4151adfa3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-17d8acf177074bdd", "level": "note", "message": {"text": "Very large file: server/services/solar/buildSlimDashboardSummary.test.ts (1722 lines)"}, "properties": {"repobilityId": "0fa0412c4bac4322", "scanner": "scanner-primary", "fingerprint": "17d8acf177074bdd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-808b3114a2cae00e", "level": "note", "message": {"text": "Very large file: server/services/solar/buildFoundationArtifact.test.ts (1615 lines)"}, "properties": {"repobilityId": "b988c82c6da8ef3f", "scanner": "scanner-primary", "fingerprint": "808b3114a2cae00e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-528c2f265a0cb36e", "level": "note", "message": {"text": "Very large file: server/services/solar/teslaPowerhub.test.ts (2103 lines)"}, "properties": {"repobilityId": "671692ba3a927758", "scanner": "scanner-primary", "fingerprint": "528c2f265a0cb36e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1db3154a00521bd8", "level": "note", "message": {"text": "Very large file: server/services/solar/egauge.ts (1757 lines)"}, "properties": {"repobilityId": "e3e98fba13ac1b97", "scanner": "scanner-primary", "fingerprint": "1db3154a00521bd8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9a8b6ac771756ea4", "level": "note", "message": {"text": "Very large file: server/services/solar/teslaPowerhub.ts (3581 lines)"}, "properties": {"repobilityId": "01115b8ee4534060", "scanner": "scanner-primary", "fingerprint": "9a8b6ac771756ea4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f11281dde53ebe38", "level": "note", "message": {"text": "Very large file: server/services/solar/egauge.test.ts (1987 lines)"}, "properties": {"repobilityId": "7b92df8f71226071", "scanner": "scanner-primary", "fingerprint": "f11281dde53ebe38", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-06f8fa567532f96c", "level": "note", "message": {"text": "Very large file: server/services/solar/datasetRowPersistence.ts (1924 lines)"}, "properties": {"repobilityId": "18934ec7a9993e59", "scanner": "scanner-primary", "fingerprint": "06f8fa567532f96c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-06a63432e3061bdd", "level": "note", "message": {"text": "Very large file: server/routers/productivity.ts (1516 lines)"}, "properties": {"repobilityId": "174fa41ac49ef2b7", "scanner": "scanner-primary", "fingerprint": "06a63432e3061bdd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c49a7384868cbfa6", "level": "note", "message": {"text": "Very large file: server/routers/personalData.ts (4099 lines)"}, "properties": {"repobilityId": "8288fe2716aafa5c", "scanner": "scanner-primary", "fingerprint": "c49a7384868cbfa6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9e1cc14f926d2903", "level": "note", "message": {"text": "Very large file: drizzle/schemas/solar.ts (3022 lines)"}, "properties": {"repobilityId": "490be6609b483d87", "scanner": "scanner-primary", "fingerprint": "9e1cc14f926d2903", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "4b7c36d91748ad47", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "5f32975dfd15f898", "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": "1d619f6611638b5a", "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": "cbc4b72ca9a95611", "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": "cb51f074060466ac", "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": "8c9d85d52f719f7c", "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": "e8caff072e04ee56", "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": "9d8d3bc9d30b9619", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-17d866d91a7c451e", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: CLAUDE.md"}, "properties": {"repobilityId": "ccce5984e58a48f0", "scanner": "scanner-primary", "fingerprint": "17d866d91a7c451e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLAUDE.md"}, "region": {"startLine": 134}}}]}, {"ruleId": "scanner-df7911fd0406d399", "level": "none", "message": {"text": "Commented-code block (6 lines) in vite.config.ts:67"}, "properties": {"repobilityId": "70020b2c068a203f", "scanner": "scanner-primary", "fingerprint": "df7911fd0406d399", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a45b89a9d5f4d98", "level": "none", "message": {"text": "Commented-code block (8 lines) in client/public/service-worker.js:63"}, "properties": {"repobilityId": "110a94c0dee85200", "scanner": "scanner-primary", "fingerprint": "1a45b89a9d5f4d98", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-546a384be63b839e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 client/public/service-worker.js:264"}, "properties": {"repobilityId": "8962d7462dd876f1", "scanner": "scanner-primary", "fingerprint": "546a384be63b839e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cd7e71fcb58a2d93", "level": "none", "message": {"text": "Commented-code block (6 lines) in client/src/main.tsx:77"}, "properties": {"repobilityId": "ad8a60587f02b494", "scanner": "scanner-primary", "fingerprint": "cd7e71fcb58a2d93", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5579e0682dbb3d88", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/main.tsx:69"}, "properties": {"repobilityId": "79a8db3872f677d1", "scanner": "scanner-primary", "fingerprint": "5579e0682dbb3d88", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8509a049a6ea52b9", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/solar-rec-main.tsx:13"}, "properties": {"repobilityId": "268bd2e58fbad391", "scanner": "scanner-primary", "fingerprint": "8509a049a6ea52b9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5228cf685fff816e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/solar-rec-main.tsx:61"}, "properties": {"repobilityId": "015e181c8461c788", "scanner": "scanner-primary", "fingerprint": "5228cf685fff816e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f0ff4ea999f40765", "level": "none", "message": {"text": "Commented-code block (7 lines) in client/src/App.tsx:20"}, "properties": {"repobilityId": "cda521586ecd4885", "scanner": "scanner-primary", "fingerprint": "f0ff4ea999f40765", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8149e561e08b9d66", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/App.boot.test.tsx:12"}, "properties": {"repobilityId": "d95c3dcf02759dbd", "scanner": "scanner-primary", "fingerprint": "8149e561e08b9d66", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-423878b90ad20afa", "level": "none", "message": {"text": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/state/types.ts:69"}, "properties": {"repobilityId": "043984d7d2cd2d19", "scanner": "scanner-primary", "fingerprint": "423878b90ad20afa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fb71fe45c346c57f", "level": "note", "message": {"text": "Legacy-named symbol `snapshot_logs_v1` in client/src/solar-rec-dashboard/components/SnapshotLogTab.tsx:158"}, "properties": {"repobilityId": "45ac3f0abb71ffd4", "scanner": "scanner-primary", "fingerprint": "fb71fe45c346c57f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0fcb9328d2b5a713", "level": "none", "message": {"text": "Commented-code block (7 lines) in client/src/solar-rec-dashboard/components/SnapshotLogTab.tsx:438"}, "properties": {"repobilityId": "c75f79071605c105", "scanner": "scanner-primary", "fingerprint": "0fcb9328d2b5a713", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ece40a47f9f9402", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/components/FinancialsTab.tsx:78"}, "properties": {"repobilityId": "6eed485e50c80ef7", "scanner": "scanner-primary", "fingerprint": "8ece40a47f9f9402", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c8df3185ddf1897e", "level": "none", "message": {"text": "Commented-code block (9 lines) in client/src/solar-rec-dashboard/components/AppPipelineTab.tsx:113"}, "properties": {"repobilityId": "17e14ecb8c3664ce", "scanner": "scanner-primary", "fingerprint": "c8df3185ddf1897e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-955f3b60c18f16f7", "level": "none", "message": {"text": "Commented-code block (7 lines) in client/src/solar-rec-dashboard/components/TrendsTab.tsx:84"}, "properties": {"repobilityId": "a14e944ebfd321f4", "scanner": "scanner-primary", "fingerprint": "955f3b60c18f16f7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e63830e24660d59c", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/components/AlertsTab.tsx:24"}, "properties": {"repobilityId": "804f04c279c176a7", "scanner": "scanner-primary", "fingerprint": "e63830e24660d59c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-45bedae307a7ab55", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/components/AnnualReviewTab.tsx:73"}, "properties": {"repobilityId": "f8e689629f6793bb", "scanner": "scanner-primary", "fingerprint": "45bedae307a7ab55", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-beb0e9b841972e35", "level": "none", "message": {"text": "Commented-code block (7 lines) in client/src/solar-rec-dashboard/components/ForecastTab.tsx:62"}, "properties": {"repobilityId": "d7a8ac83a568aeae", "scanner": "scanner-primary", "fingerprint": "beb0e9b841972e35", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-09e7c23136f9b727", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/components/DataQualityTab.tsx:112"}, "properties": {"repobilityId": "99784a5adf71f001", "scanner": "scanner-primary", "fingerprint": "09e7c23136f9b727", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8595dd77ff27e36c", "level": "none", "message": {"text": "Commented-code block (8 lines) in client/src/solar-rec-dashboard/components/AggregatorProgressOverlay.tsx:23"}, "properties": {"repobilityId": "e366e7ecfa248874", "scanner": "scanner-primary", "fingerprint": "8595dd77ff27e36c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-583912771398502b", "level": "none", "message": {"text": "Commented-code block (7 lines) in client/src/solar-rec-dashboard/components/ComparisonsTab.tsx:94"}, "properties": {"repobilityId": "043d52bc01627ed7", "scanner": "scanner-primary", "fingerprint": "583912771398502b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-406533a79a938735", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/components/ScheduleBImport.tsx:120"}, "properties": {"repobilityId": "fc41f1293cdbf827", "scanner": "scanner-primary", "fingerprint": "406533a79a938735", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a494abe81a48e0a5", "level": "none", "message": {"text": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/components/DashboardBuildProgressBar.tsx:48"}, "properties": {"repobilityId": "d7864649f31f7cda", "scanner": "scanner-primary", "fingerprint": "a494abe81a48e0a5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f780229075f26b78", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/components/TabErrorBoundary.tsx:105"}, "properties": {"repobilityId": "660833c57fc94e7e", "scanner": "scanner-primary", "fingerprint": "f780229075f26b78", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9ddd8f924eabfd3c", "level": "none", "message": {"text": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/components/RecPerformanceEvaluationTab.tsx:113"}, "properties": {"repobilityId": "3b5c88094522e185", "scanner": "scanner-primary", "fingerprint": "9ddd8f924eabfd3c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-63e5145da09cca76", "level": "none", "message": {"text": "Commented-code block (15 lines) in client/src/solar-rec-dashboard/components/PerformanceRatioTab.tsx:47"}, "properties": {"repobilityId": "cef9e0644ff130d3", "scanner": "scanner-primary", "fingerprint": "63e5145da09cca76", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d20357c730533067", "level": "none", "message": {"text": "Commented-code block (13 lines) in client/src/solar-rec-dashboard/components/OverviewTab.tsx:221"}, "properties": {"repobilityId": "17cb1d605f1aaf25", "scanner": "scanner-primary", "fingerprint": "d20357c730533067", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-78ddfb78828264b6", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/components/UploadProgressDialog.tsx:243"}, "properties": {"repobilityId": "b22b46c6e80bec56", "scanner": "scanner-primary", "fingerprint": "78ddfb78828264b6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1329832bf4c691e", "level": "none", "message": {"text": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/components/DatasetUploadV2Button.tsx:118"}, "properties": {"repobilityId": "90b4775a2da35d14", "scanner": "scanner-primary", "fingerprint": "e1329832bf4c691e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-724e28d1f55e9bcc", "level": "none", "message": {"text": "Commented-code block (9 lines) in client/src/solar-rec-dashboard/components/ContractsTab.tsx:95"}, "properties": {"repobilityId": "19f75609165bd38d", "scanner": "scanner-primary", "fingerprint": "724e28d1f55e9bcc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2bb9dab7587bf9b7", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/components/OwnershipTab.tsx:111"}, "properties": {"repobilityId": "e500f2e6727b6e79", "scanner": "scanner-primary", "fingerprint": "2bb9dab7587bf9b7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab8b1d43a805f4af", "level": "none", "message": {"text": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/lib/buildDeliveryTrackerData.test.ts:205"}, "properties": {"repobilityId": "521020aeb6d9090c", "scanner": "scanner-primary", "fingerprint": "ab8b1d43a805f4af", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5e410a57ce232747", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/lib/financialsPagination.test.ts:69"}, "properties": {"repobilityId": "59ab4e649c6d17f3", "scanner": "scanner-primary", "fingerprint": "5e410a57ce232747", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eaf574cf370a4014", "level": "none", "message": {"text": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/lib/sharedDatasetInvalidation.test.ts:100"}, "properties": {"repobilityId": "550943bb04f3057b", "scanner": "scanner-primary", "fingerprint": "eaf574cf370a4014", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8b7cf4015834137f", "level": "none", "message": {"text": "Commented-code block (15 lines) in client/src/solar-rec-dashboard/lib/financialsTabSaveOverride.test.ts:118"}, "properties": {"repobilityId": "6a2316ccafe3bf15", "scanner": "scanner-primary", "fingerprint": "8b7cf4015834137f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a380e75309cce54", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/lib/projectDashboardSummary.test.ts:70"}, "properties": {"repobilityId": "2ade357ccb438249", "scanner": "scanner-primary", "fingerprint": "9a380e75309cce54", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e2451dc0739b687c", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/lib/buildSystems.test.ts:235"}, "properties": {"repobilityId": "c7105e3115c0680d", "scanner": "scanner-primary", "fingerprint": "e2451dc0739b687c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cd802ab7cba8e42b", "level": "none", "message": {"text": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/lib/dashboardMountResilience.test.ts:114"}, "properties": {"repobilityId": "fed08a713c1d8ba9", "scanner": "scanner-primary", "fingerprint": "cd802ab7cba8e42b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba1726af29b51c2f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/solar-rec-dashboard/lib/dashboardMountResilience.test.ts:486"}, "properties": {"repobilityId": "b112255d69e4019e", "scanner": "scanner-primary", "fingerprint": "ba1726af29b51c2f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3167d6590638cf99", "level": "none", "message": {"text": "Commented-code block (10 lines) in client/src/solar-rec-dashboard/lib/dashboardRetryPolicy.test.ts:58"}, "properties": {"repobilityId": "b365599ee7fd8e93", "scanner": "scanner-primary", "fingerprint": "3167d6590638cf99", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-928a1b7b483313da", "level": "none", "message": {"text": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/lib/snapshotPart2ValueSummary.test.ts:6"}, "properties": {"repobilityId": "373e12eac32095d2", "scanner": "scanner-primary", "fingerprint": "928a1b7b483313da", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-117b3e98d054727e", "level": "none", "message": {"text": "Commented-code block (7 lines) in client/src/solar-rec-dashboard/lib/dashboardRetryPolicy.ts:118"}, "properties": {"repobilityId": "6549e64d5c0ef0ad", "scanner": "scanner-primary", "fingerprint": "117b3e98d054727e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3a384b2e04ed0943", "level": "none", "message": {"text": "Commented-code block (8 lines) in client/src/solar-rec-dashboard/lib/storageOnlyAutoHeal.test.ts:72"}, "properties": {"repobilityId": "97b1fd07b5acc874", "scanner": "scanner-primary", "fingerprint": "3a384b2e04ed0943", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f421b057095f0d3d", "level": "note", "message": {"text": "Legacy-named symbol `dataset_manifest_v1` in client/src/solar-rec-dashboard/lib/constants.ts:131"}, "properties": {"repobilityId": "fd866a8600a972e7", "scanner": "scanner-primary", "fingerprint": "f421b057095f0d3d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a254d93f3bdcdf4e", "level": "none", "message": {"text": "Commented-code block (11 lines) in client/src/solar-rec-dashboard/lib/constants.ts:41"}, "properties": {"repobilityId": "de7cd75299c2699f", "scanner": "scanner-primary", "fingerprint": "a254d93f3bdcdf4e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fa3fbbecd9c11d07", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/lib/dashboardRetryAfter.ts:57"}, "properties": {"repobilityId": "f83856deb969de6b", "scanner": "scanner-primary", "fingerprint": "fa3fbbecd9c11d07", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-111e4ca70f7505c3", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/lib/buildDeliveryTrackerData.ts:197"}, "properties": {"repobilityId": "994184af46f6bd32", "scanner": "scanner-primary", "fingerprint": "111e4ca70f7505c3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-49741e4e97d94ab2", "level": "none", "message": {"text": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/lib/buildSystems.ts:262"}, "properties": {"repobilityId": "3bb55cfed756e13c", "scanner": "scanner-primary", "fingerprint": "49741e4e97d94ab2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5bff177d6f6e83f1", "level": "none", "message": {"text": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/lib/helpers/abp.ts:11"}, "properties": {"repobilityId": "1ce728defd635c5f", "scanner": "scanner-primary", "fingerprint": "5bff177d6f6e83f1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-864296536aa2f34a", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/lib/helpers/monitoring.ts:19"}, "properties": {"repobilityId": "4665e2688fd2a0fe", "scanner": "scanner-primary", "fingerprint": "864296536aa2f34a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-621fd0b9ea55457f", "level": "none", "message": {"text": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/hooks/useDashboardAggregatorProgress.ts:61"}, "properties": {"repobilityId": "89153f855f29e557", "scanner": "scanner-primary", "fingerprint": "621fd0b9ea55457f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2e474c43e94a8999", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/hooks/useDatasetUploadController.ts:187"}, "properties": {"repobilityId": "5d927a20864cb636", "scanner": "scanner-primary", "fingerprint": "2e474c43e94a8999", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-231d38c1f8ee92d6", "level": "none", "message": {"text": "Commented-code block (9 lines) in client/src/solar-rec-dashboard/hooks/useDashboardBuildControl.test.ts:51"}, "properties": {"repobilityId": "aadcbec1a087c739", "scanner": "scanner-primary", "fingerprint": "231d38c1f8ee92d6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c24a296c7c1b908", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/solar-rec-dashboard/hooks/useDatasetUploadStatus.ts:20"}, "properties": {"repobilityId": "f8f3ccfc60b08b2a", "scanner": "scanner-primary", "fingerprint": "3c24a296c7c1b908", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9f5cb25a9f80448e", "level": "none", "message": {"text": "Commented-code block (6 lines) in client/src/solar-rec-dashboard/hooks/useDashboardBuildControl.ts:135"}, "properties": {"repobilityId": "dda571479e89d9c6", "scanner": "scanner-primary", "fingerprint": "9f5cb25a9f80448e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-53bfb407bee10f48", "level": "none", "message": {"text": "Commented-code block (6 lines) in client/src/components/layout/CommandPalette.tsx:46"}, "properties": {"repobilityId": "8ba50a71c38725a1", "scanner": "scanner-primary", "fingerprint": "53bfb407bee10f48", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-474c08d561251609", "level": "none", "message": {"text": "Commented-code block (10 lines) in client/src/components/layout/AppSidebar.tsx:80"}, "properties": {"repobilityId": "e277c161916a3864", "scanner": "scanner-primary", "fingerprint": "474c08d561251609", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-62b30f9cfba81b20", "level": "none", "message": {"text": "Commented-code block (8 lines) in client/src/components/layout/AppShell.tsx:28"}, "properties": {"repobilityId": "e32f4f0a212131a7", "scanner": "scanner-primary", "fingerprint": "62b30f9cfba81b20", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6cca8d1046354a94", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/components/notebook/RichTextEditor.tsx:188"}, "properties": {"repobilityId": "78b508db88431bb9", "scanner": "scanner-primary", "fingerprint": "6cca8d1046354a94", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-987138214f0f5a4e", "level": "none", "message": {"text": "Commented-code block (10 lines) in client/src/lib/deepUpdateSynth.ts:341"}, "properties": {"repobilityId": "78eeb0fb7c2f288a", "scanner": "scanner-primary", "fingerprint": "987138214f0f5a4e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3624b240cdf35b62", "level": "none", "message": {"text": "Commented-code block (17 lines) in client/src/lib/abpSettlementMainExport.ts:8"}, "properties": {"repobilityId": "b087f1b5fd7982ed", "scanner": "scanner-primary", "fingerprint": "3624b240cdf35b62", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-897ccc0186c36b01", "level": "none", "message": {"text": "Commented-code block (7 lines) in client/src/lib/csvParsing.ts:28"}, "properties": {"repobilityId": "874ad4d3fbcd1851", "scanner": "scanner-primary", "fingerprint": "897ccc0186c36b01", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1d869b5d976602a7", "level": "none", "message": {"text": "Commented-code block (6 lines) in client/src/lib/recValueRollup.ts:176"}, "properties": {"repobilityId": "9d99211079011328", "scanner": "scanner-primary", "fingerprint": "1d869b5d976602a7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-936a192e472e3a09", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/lib/abpSettlement.ts:1869"}, "properties": {"repobilityId": "a5fec9320810864e", "scanner": "scanner-primary", "fingerprint": "936a192e472e3a09", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3e183ff12afe717b", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/lib/abpSettlement/utils/csvUtils.test.ts:4"}, "properties": {"repobilityId": "55807d50b9d220af", "scanner": "scanner-primary", "fingerprint": "3e183ff12afe717b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e456507d3b4f93b6", "level": "none", "message": {"text": "Commented-code block (6 lines) in client/src/lib/abpSettlement/utils/csvUtils.ts:6"}, "properties": {"repobilityId": "2d216e148988a89e", "scanner": "scanner-primary", "fingerprint": "e456507d3b4f93b6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7175f2e8982cb9e4", "level": "none", "message": {"text": "Commented-code block (6 lines) in client/src/solar-rec/SolarRecApp.tsx:4"}, "properties": {"repobilityId": "c89a702ac8859408", "scanner": "scanner-primary", "fingerprint": "7175f2e8982cb9e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c6051132ff06889f", "level": "none", "message": {"text": "Commented-code block (6 lines) in client/src/solar-rec/components/PersistConfirmation.tsx:6"}, "properties": {"repobilityId": "bbb317221dab079c", "scanner": "scanner-primary", "fingerprint": "c6051132ff06889f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e9b4a212796c528c", "level": "none", "message": {"text": "Commented-code block (6 lines) in client/src/solar-rec/components/WorksetSelector.tsx:102"}, "properties": {"repobilityId": "2af0f5d82842795f", "scanner": "scanner-primary", "fingerprint": "e9b4a212796c528c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-28616092ca720c9a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/solar-rec/components/WorksetSelector.tsx:106"}, "properties": {"repobilityId": "745a4c9337934816", "scanner": "scanner-primary", "fingerprint": "28616092ca720c9a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d91304a5d99dc4ac", "level": "note", "message": {"text": "Legacy-named symbol `deep_update_manifest_v1` in client/src/solar-rec/pages/DeepUpdateSynthesizer.tsx:29"}, "properties": {"repobilityId": "180edf0371238f04", "scanner": "scanner-primary", "fingerprint": "d91304a5d99dc4ac", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-45262738c9e78f79", "level": "none", "message": {"text": "Commented-code block (6 lines) in client/src/solar-rec/pages/DeepUpdateSynthesizer.tsx:43"}, "properties": {"repobilityId": "ca020ecaa3ecafd1", "scanner": "scanner-primary", "fingerprint": "45262738c9e78f79", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-77955ca59b0c378b", "level": "note", "message": {"text": "Legacy-named symbol `early_payment_csg_ids_v1` in client/src/solar-rec/pages/EarlyPayment.tsx:114"}, "properties": {"repobilityId": "49ff493816ad2e99", "scanner": "scanner-primary", "fingerprint": "77955ca59b0c378b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a3ba1bc31f6a70a7", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/solar-rec/pages/EarlyPayment.tsx:10"}, "properties": {"repobilityId": "aa776a06ff30b02d", "scanner": "scanner-primary", "fingerprint": "a3ba1bc31f6a70a7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5f2df094189ad33c", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/solar-rec/pages/ContractScrapeManager.tsx:2"}, "properties": {"repobilityId": "729bc8a25175319e", "scanner": "scanner-primary", "fingerprint": "5f2df094189ad33c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2ac7e41ce238d0bf", "level": "note", "message": {"text": "Legacy-named symbol `abp_settlement_upload_state_v1` in client/src/solar-rec/pages/AbpInvoiceSettlement.tsx:172"}, "properties": {"repobilityId": "7e6eb8e61c875448", "scanner": "scanner-primary", "fingerprint": "2ac7e41ce238d0bf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6bd4134f177b90a6", "level": "none", "message": {"text": "Commented-code block (8 lines) in client/src/solar-rec/pages/AbpInvoiceSettlement.tsx:12"}, "properties": {"repobilityId": "5d3f29b168909260", "scanner": "scanner-primary", "fingerprint": "6bd4134f177b90a6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-36f51d16e7d55480", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/solar-rec/pages/AddressChecker.tsx:9"}, "properties": {"repobilityId": "7c01810844cd9aa0", "scanner": "scanner-primary", "fingerprint": "36f51d16e7d55480", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-60ef1b5517f35731", "level": "none", "message": {"text": "Commented-code block (8 lines) in client/src/solar-rec/pages/MonitoringDashboard.tsx:859"}, "properties": {"repobilityId": "76f2d2cd199ba4e3", "scanner": "scanner-primary", "fingerprint": "60ef1b5517f35731", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8fea28edcd981c34", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/solar-rec/pages/SystemsIndex.tsx:806"}, "properties": {"repobilityId": "1bafe6e2c0e67a57", "scanner": "scanner-primary", "fingerprint": "8fea28edcd981c34", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6380a309f1e3169d", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/solar-rec/pages/InvoiceMatchDashboard.tsx:525"}, "properties": {"repobilityId": "ef5af24a3c814634", "scanner": "scanner-primary", "fingerprint": "6380a309f1e3169d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-089eb3af7b335b3b", "level": "none", "message": {"text": "Commented-code block (6 lines) in client/src/solar-rec/pages/JobsIndex.tsx:203"}, "properties": {"repobilityId": "c45a9a2eeec607b3", "scanner": "scanner-primary", "fingerprint": "089eb3af7b335b3b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e175f03b66b2b527", "level": "none", "message": {"text": "Commented-code block (6 lines) in client/src/solar-rec/pages/MonitoringOverview.tsx:113"}, "properties": {"repobilityId": "0c7314f0da61fd7b", "scanner": "scanner-primary", "fingerprint": "e175f03b66b2b527", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8922dfe2e320bc71", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/solar-rec/pages/invoiceMatch/helpers.ts:701"}, "properties": {"repobilityId": "a53ebe4d53002674", "scanner": "scanner-primary", "fingerprint": "8922dfe2e320bc71", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1da31d7b09a38cb0", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/solar-rec/pages/meter-reads/TeslaPowerhubMeterReads.tsx:1166"}, "properties": {"repobilityId": "fb3ae6032eee8459", "scanner": "scanner-primary", "fingerprint": "1da31d7b09a38cb0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-31e285ff26618529", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/solar-rec/hooks/useSolarRecAuth.tsx:86"}, "properties": {"repobilityId": "962bacbc4a4aa262", "scanner": "scanner-primary", "fingerprint": "31e285ff26618529", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e1c2c608e3b3514a", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/features/settings/Settings.tsx:164"}, "properties": {"repobilityId": "d5eb3de7a7ec0940", "scanner": "scanner-primary", "fingerprint": "e1c2c608e3b3514a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c973ec3083df69a3", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/features/notebook/Notebook.tsx:1194"}, "properties": {"repobilityId": "2ea63bde019eab22", "scanner": "scanner-primary", "fingerprint": "c973ec3083df69a3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-697e502169c7c2da", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/features/notebook/Notebook.tsx:1215"}, "properties": {"repobilityId": "8b054b6ce511c347", "scanner": "scanner-primary", "fingerprint": "697e502169c7c2da", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-33e5c52ad6929a98", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/features/habits/HabitsHistoryPanel.tsx:44"}, "properties": {"repobilityId": "8ddfd771ebda99b4", "scanner": "scanner-primary", "fingerprint": "33e5c52ad6929a98", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c58027fce84f1c22", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/features/health/HealthTrendsPanel.tsx:31"}, "properties": {"repobilityId": "09f1d67244414d82", "scanner": "scanner-primary", "fingerprint": "c58027fce84f1c22", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4f91a03efd017507", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/features/dashboard/useDashboardData.ts:60"}, "properties": {"repobilityId": "ffb4a29b1ff07eba", "scanner": "scanner-primary", "fingerprint": "4f91a03efd017507", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2b3d93d015cc33bf", "level": "note", "message": {"text": "Legacy-named symbol `DashboardLegacy` in client/src/features/dashboard/Dashboard.tsx:10"}, "properties": {"repobilityId": "e7589b6459522d27", "scanner": "scanner-primary", "fingerprint": "2b3d93d015cc33bf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-675243a4090f8805", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/features/dashboard/NotFound.tsx:15"}, "properties": {"repobilityId": "afb136d952c45d7e", "scanner": "scanner-primary", "fingerprint": "675243a4090f8805", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a0f4f22f3d772731", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/features/dashboard/frontpage/WireFeedsGrid.tsx:113"}, "properties": {"repobilityId": "9aaeef66551fbc86", "scanner": "scanner-primary", "fingerprint": "a0f4f22f3d772731", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7bf9ac155de710f4", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/features/dashboard/frontpage/DropDock.tsx:87"}, "properties": {"repobilityId": "d36a3dcf189c7532", "scanner": "scanner-primary", "fingerprint": "7bf9ac155de710f4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1c9099f82fbcbdf1", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/features/dashboard/canvas/StickyNote.tsx:103"}, "properties": {"repobilityId": "85d438a56bc524ee", "scanner": "scanner-primary", "fingerprint": "1c9099f82fbcbdf1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-12c062784bfa3f2b", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/features/supplements/SupplementsTodayPanel.tsx:265"}, "properties": {"repobilityId": "8877c114510e710f", "scanner": "scanner-primary", "fingerprint": "12c062784bfa3f2b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-526cb8c2605b93e3", "level": "note", "message": {"text": "Legacy-named symbol `snapshot_logs_v1` in client/src/features/solar-rec/SolarRecDashboard.tsx:2288"}, "properties": {"repobilityId": "077d6e9d392d310c", "scanner": "scanner-primary", "fingerprint": "526cb8c2605b93e3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ccf0583438e2323e", "level": "none", "message": {"text": "Commented-code block (5 lines) in client/src/features/solar-rec/SolarRecDashboard.tsx:99"}, "properties": {"repobilityId": "4dff04afbb6ad2ed", "scanner": "scanner-primary", "fingerprint": "ccf0583438e2323e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-94707a4953b76de6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 client/src/features/solar-rec/SolarRecDashboard.tsx:3562"}, "properties": {"repobilityId": "d791fc08319631fc", "scanner": "scanner-primary", "fingerprint": "94707a4953b76de6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f7766beaaa840830", "level": "none", "message": {"text": "Commented-code block (7 lines) in shared/const.ts:37"}, "properties": {"repobilityId": "ead64233225d1d30", "scanner": "scanner-primary", "fingerprint": "f7766beaaa840830", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2ec71bf97b301d63", "level": "none", "message": {"text": "Commented-code block (7 lines) in shared/dropdock.helpers.test.ts:146"}, "properties": {"repobilityId": "af8f2e40d3102e6a", "scanner": "scanner-primary", "fingerprint": "2ec71bf97b301d63", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-602e258d16a12810", "level": "none", "message": {"text": "Commented-code block (5 lines) in shared/solarRecPerformanceRatio.test.ts:50"}, "properties": {"repobilityId": "3d2f8332e0d750b6", "scanner": "scanner-primary", "fingerprint": "602e258d16a12810", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-68087edbb47399f0", "level": "none", "message": {"text": "Commented-code block (10 lines) in shared/personalDashboard.ts:1"}, "properties": {"repobilityId": "5f3fc54a6eb7ed41", "scanner": "scanner-primary", "fingerprint": "68087edbb47399f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c11154dc16fee384", "level": "none", "message": {"text": "Commented-code block (5 lines) in shared/serviceWorker.helpers.test.ts:160"}, "properties": {"repobilityId": "cfda2de10175b4a6", "scanner": "scanner-primary", "fingerprint": "c11154dc16fee384", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5edfe4135d9303ac", "level": "none", "message": {"text": "Commented-code block (9 lines) in shared/dropdock.helpers.ts:167"}, "properties": {"repobilityId": "1383b48db8926a16", "scanner": "scanner-primary", "fingerprint": "5edfe4135d9303ac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-75731edf9af178ab", "level": "none", "message": {"text": "Commented-code block (24 lines) in shared/solarRecFoundation.test.ts:104"}, "properties": {"repobilityId": "380808f591cb9f9a", "scanner": "scanner-primary", "fingerprint": "75731edf9af178ab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aea67f7bb70b065d", "level": "none", "message": {"text": "Commented-code block (5 lines) in shared/solarRecModules.ts:9"}, "properties": {"repobilityId": "2b58f854b61ac054", "scanner": "scanner-primary", "fingerprint": "aea67f7bb70b065d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-753a4a2caa7701fc", "level": "none", "message": {"text": "Commented-code block (12 lines) in shared/solarRecPerformanceRatio.ts:71"}, "properties": {"repobilityId": "8c5b49a21304074a", "scanner": "scanner-primary", "fingerprint": "753a4a2caa7701fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-98eef3c45b48b2ee", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/recover-core-dataset-from-idb.js:124"}, "properties": {"repobilityId": "0aa85e5fa0aaddb8", "scanner": "scanner-primary", "fingerprint": "98eef3c45b48b2ee", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-acd3b908365df98e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/storage.ts:100"}, "properties": {"repobilityId": "6dd1771e7166fae2", "scanner": "scanner-primary", "fingerprint": "acd3b908365df98e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-48868e004273acf6", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/oauth-routes.ts:201"}, "properties": {"repobilityId": "14bd49f568a8625c", "scanner": "scanner-primary", "fingerprint": "48868e004273acf6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-86ff797ded7ed16d", "level": "none", "message": {"text": "Commented-code block (22 lines) in server/routers.ts:13"}, "properties": {"repobilityId": "f312ba8e38624006", "scanner": "scanner-primary", "fingerprint": "86ff797ded7ed16d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-82bfaa8820687b9f", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/solarRecDatasets.test.ts:165"}, "properties": {"repobilityId": "52540453cbc7a933", "scanner": "scanner-primary", "fingerprint": "82bfaa8820687b9f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3e921726c35e9321", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/scripts/backfillSrDsTypedColumnsFromRawRow.ts:76"}, "properties": {"repobilityId": "451d35d197d0236e", "scanner": "scanner-primary", "fingerprint": "3e921726c35e9321", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e344fcfb1552d25b", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/scripts/backfillSrDsTypedColumnsFromRawRow.test.ts:71"}, "properties": {"repobilityId": "b13bf0c1373472b2", "scanner": "scanner-primary", "fingerprint": "e344fcfb1552d25b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-669a84e54ebe254c", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/_lint/ttlPruneConformance.test.ts:147"}, "properties": {"repobilityId": "fcaf12b3d57e14b2", "scanner": "scanner-primary", "fingerprint": "669a84e54ebe254c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b453e46ff38ce68a", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/_lint/migrationJournal.test.ts:135"}, "properties": {"repobilityId": "14149ba649d0bf12", "scanner": "scanner-primary", "fingerprint": "b453e46ff38ce68a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ce89b9694119e533", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/_core/solarRecBase.ts:85"}, "properties": {"repobilityId": "220dd2cf4fb6d975", "scanner": "scanner-primary", "fingerprint": "ce89b9694119e533", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-63388381d87440f1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/_core/dataApi.ts:31"}, "properties": {"repobilityId": "59c8d55833bbf770", "scanner": "scanner-primary", "fingerprint": "63388381d87440f1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-eb3cec8c79ed048f", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/_core/solarRecContractScanRouter.ts:308"}, "properties": {"repobilityId": "83f242a35ac41b38", "scanner": "scanner-primary", "fingerprint": "eb3cec8c79ed048f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5949cb296dde5121", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/_core/webhookBodyLimit.test.ts:50"}, "properties": {"repobilityId": "7e4551a8119fbdbb", "scanner": "scanner-primary", "fingerprint": "5949cb296dde5121", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-996d8bc270d7d10d", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/_core/dashboardResponseGuard.ts:465"}, "properties": {"repobilityId": "2bca217a66685c02", "scanner": "scanner-primary", "fingerprint": "996d8bc270d7d10d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-45909c88581b356c", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/_core/solarRecDashboardPerformanceRatioPage.test.ts:216"}, "properties": {"repobilityId": "ec4c819e61e5e482", "scanner": "scanner-primary", "fingerprint": "45909c88581b356c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-243fd2f4ae06c654", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/_core/datasetPopulationStatus.ts:52"}, "properties": {"repobilityId": "301e6de3983aed29", "scanner": "scanner-primary", "fingerprint": "243fd2f4ae06c654", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bd325cdb9821ee95", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/_core/solarRecDashboardStatePayloadCleanup.test.ts:94"}, "properties": {"repobilityId": "64cd16574848a6ba", "scanner": "scanner-primary", "fingerprint": "bd325cdb9821ee95", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4cdcbc91ffad2f94", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/_core/solarRecSystemsRouter.ts:103"}, "properties": {"repobilityId": "a1d450c44e87af46", "scanner": "scanner-primary", "fingerprint": "4cdcbc91ffad2f94", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-57a66ec4ca4139b9", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/_core/runtimeTarget.test.ts:115"}, "properties": {"repobilityId": "1aca2108bd6ee782", "scanner": "scanner-primary", "fingerprint": "57a66ec4ca4139b9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-17265d9d56fd63ed", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/_core/nightlySnapshotScheduler.ts:55"}, "properties": {"repobilityId": "408767111b7b1215", "scanner": "scanner-primary", "fingerprint": "17265d9d56fd63ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db4b52b56bd65520", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/_core/index.ts:57"}, "properties": {"repobilityId": "fd5c4a1177320a6a", "scanner": "scanner-primary", "fingerprint": "db4b52b56bd65520", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3ae00c27d1b89e7f", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/_core/oauth.ts:14"}, "properties": {"repobilityId": "59ea2d832fca73ff", "scanner": "scanner-primary", "fingerprint": "3ae00c27d1b89e7f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-91e38b02fa1fc8ae", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/_core/solarRecAuth.ts:466"}, "properties": {"repobilityId": "f278e2a761653c12", "scanner": "scanner-primary", "fingerprint": "91e38b02fa1fc8ae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6e3c2382e11e4447", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/_core/pinGate.ts:45"}, "properties": {"repobilityId": "347a52e3ce743d3a", "scanner": "scanner-primary", "fingerprint": "6e3c2382e11e4447", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-212ed44081a16905", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/_core/solarRecRouter.runSolarEdgeBulk.test.ts:217"}, "properties": {"repobilityId": "85493325c736ed02", "scanner": "scanner-primary", "fingerprint": "212ed44081a16905", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-707b19b18a4f9181", "level": "none", "message": {"text": "Commented-code block (9 lines) in server/_core/solarRecRouterRoots.ts:149"}, "properties": {"repobilityId": "c28ba36d4fb16667", "scanner": "scanner-primary", "fingerprint": "707b19b18a4f9181", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2e13f6dcce4accc2", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/_core/solarReadingsIngest.ts:178"}, "properties": {"repobilityId": "87fd55891e2aed28", "scanner": "scanner-primary", "fingerprint": "2e13f6dcce4accc2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-747b98259c503f93", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/_core/solarRecMainProviderRoots.test.ts:78"}, "properties": {"repobilityId": "4f98c95ebc3e525c", "scanner": "scanner-primary", "fingerprint": "747b98259c503f93", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-89c07de8e57ffabd", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/_core/solarRecDashboardFinancialsPage.test.ts:54"}, "properties": {"repobilityId": "ae6378307d6a8a26", "scanner": "scanner-primary", "fingerprint": "89c07de8e57ffabd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6170395d8984b399", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/_core/scheduleDaily.ts:206"}, "properties": {"repobilityId": "a908208874df2b8e", "scanner": "scanner-primary", "fingerprint": "6170395d8984b399", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4984cae6c80be1ee", "level": "none", "message": {"text": "Commented-code block (9 lines) in server/_core/solarRecRouter.ts:1602"}, "properties": {"repobilityId": "4433ccaea8930c13", "scanner": "scanner-primary", "fingerprint": "4984cae6c80be1ee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bbc7ef99c13a4303", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/_core/imageGeneration.ts:53"}, "properties": {"repobilityId": "fabacf3af88234d0", "scanner": "scanner-primary", "fingerprint": "bbc7ef99c13a4303", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-517c8da4a690803a", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/_core/solarRecDashboardSystemsPage.test.ts:59"}, "properties": {"repobilityId": "c57fd6ef97f547da", "scanner": "scanner-primary", "fingerprint": "517c8da4a690803a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-63d06cea7de436e0", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/_core/datasetPopulationStatus.test.ts:62"}, "properties": {"repobilityId": "3b8604a34b334c09", "scanner": "scanner-primary", "fingerprint": "63d06cea7de436e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b25899da47b020bb", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/_core/vite.ts:97"}, "properties": {"repobilityId": "c03640f588e4ce3b", "scanner": "scanner-primary", "fingerprint": "b25899da47b020bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-06ff34d6a8bdec9f", "level": "note", "message": {"text": "Legacy-named symbol `storagePresentLegacy` in server/_core/solarRecDashboardRouter.ts:1635"}, "properties": {"repobilityId": "bf480e2342a27c6c", "scanner": "scanner-primary", "fingerprint": "06ff34d6a8bdec9f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a75cd55d41a183eb", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/_core/solarRecDashboardRouter.ts:137"}, "properties": {"repobilityId": "4af40042f6939455", "scanner": "scanner-primary", "fingerprint": "a75cd55d41a183eb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ae84f62c93795890", "level": "none", "message": {"text": "Commented-code block (12 lines) in server/_core/dashboardResponseGuard.test.ts:223"}, "properties": {"repobilityId": "a8c3ebdb4b4dfdbe", "scanner": "scanner-primary", "fingerprint": "ae84f62c93795890", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f96258986f320d53", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/_core/solarRecDinScrapeRouter.ts:209"}, "properties": {"repobilityId": "aac527d9bc89c7e4", "scanner": "scanner-primary", "fingerprint": "f96258986f320d53", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-636c11fca1a72886", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/_core/solarRecAbpSettlementRouter.ts:134"}, "properties": {"repobilityId": "3ab17f5a9ee9e32d", "scanner": "scanner-primary", "fingerprint": "636c11fca1a72886", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e780f51f06116fad", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/_core/llm.ts:315"}, "properties": {"repobilityId": "bef0d3a8885c928e", "scanner": "scanner-primary", "fingerprint": "e780f51f06116fad", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7f8fbe5fdbad8c92", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/_core/solarRecDashboardSemaphoreObservability.test.ts:46"}, "properties": {"repobilityId": "a506773609bf2d99", "scanner": "scanner-primary", "fingerprint": "7f8fbe5fdbad8c92", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-81632a533bc92be9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/_core/pinGate.test.ts:55"}, "properties": {"repobilityId": "51093fcd5a9a7dbb", "scanner": "scanner-primary", "fingerprint": "81632a533bc92be9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2b29fc907c2e471d", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/integrations/todoist.ts:276"}, "properties": {"repobilityId": "664b70c547236e20", "scanner": "scanner-primary", "fingerprint": "2b29fc907c2e471d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-242a55b8e0623eca", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/integrations/anthropicSelector.ts:259"}, "properties": {"repobilityId": "064deaf0f2729cb1", "scanner": "scanner-primary", "fingerprint": "242a55b8e0623eca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2f8fba0d19a876f2", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/services/integrations/whoop.ts:101"}, "properties": {"repobilityId": "aed36cefc79086ad", "scanner": "scanner-primary", "fingerprint": "2f8fba0d19a876f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2642f0a2aa1ff18d", "level": "none", "message": {"text": "Commented-code block (12 lines) in server/services/integrations/google.ts:431"}, "properties": {"repobilityId": "f197a7b2873eed71", "scanner": "scanner-primary", "fingerprint": "2642f0a2aa1ff18d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-82ed0f70540ad4ad", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/services/notifications/dailySnapshot.ts:199"}, "properties": {"repobilityId": "b34fb7eb1e940aa8", "scanner": "scanner-primary", "fingerprint": "82ed0f70540ad4ad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c541ad518625c6f5", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/supplements/correlationNightly.ts:51"}, "properties": {"repobilityId": "08f0fe47c9b262b9", "scanner": "scanner-primary", "fingerprint": "c541ad518625c6f5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cd517d80374107d2", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/supplements/correlationNightly.test.ts:206"}, "properties": {"repobilityId": "9a3183f6b4a313c1", "scanner": "scanner-primary", "fingerprint": "cd517d80374107d2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a0c4d488defd8c1a", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/personalDashboard/dailyActivityReport.ts:123"}, "properties": {"repobilityId": "c605ec81f67abfd5", "scanner": "scanner-primary", "fingerprint": "a0c4d488defd8c1a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-050f15844e052a55", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/services/personalDashboard/dailyActivityReport.collectors.ts:291"}, "properties": {"repobilityId": "fb729c84ad7484f7", "scanner": "scanner-primary", "fingerprint": "050f15844e052a55", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-166a05100a91f800", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/services/core/csgScheduleBImportJobRunner.ts:53"}, "properties": {"repobilityId": "8f666450faa2b9c3", "scanner": "scanner-primary", "fingerprint": "166a05100a91f800", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-59ec4b2da3bcc172", "level": "none", "message": {"text": "Commented-code block (12 lines) in server/services/core/datasetUploadParsers.test.ts:55"}, "properties": {"repobilityId": "9d4291b30d394643", "scanner": "scanner-primary", "fingerprint": "59ec4b2da3bcc172", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b8c57c9a39487066", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/services/core/contractScanJobRunner.ts:132"}, "properties": {"repobilityId": "a04e53326cffaf11", "scanner": "scanner-primary", "fingerprint": "b8c57c9a39487066", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c77c05b457acc4c7", "level": "none", "message": {"text": "Commented-code block (9 lines) in server/services/core/dinExtractor.ts:34"}, "properties": {"repobilityId": "02aed3f367b2e2d0", "scanner": "scanner-primary", "fingerprint": "c77c05b457acc4c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6089d84921686f97", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/core/scheduleBImportJobRunner.ts:220"}, "properties": {"repobilityId": "2a13312ef360ceb4", "scanner": "scanner-primary", "fingerprint": "6089d84921686f97", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67633bdbdc73d357", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/core/datasetUploadStaleJobSweeper.ts:40"}, "properties": {"repobilityId": "9ecc05c91ea5be70", "scanner": "scanner-primary", "fingerprint": "67633bdbdc73d357", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-22b831430e551bcd", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/services/core/qrDecoder.ts:310"}, "properties": {"repobilityId": "6e32b0ffffaee7b4", "scanner": "scanner-primary", "fingerprint": "22b831430e551bcd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b9b42b962a0ccb4", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/core/csvStreamParser.ts:174"}, "properties": {"repobilityId": "b995c70dea867a7e", "scanner": "scanner-primary", "fingerprint": "9b9b42b962a0ccb4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b4f23819994dc35", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/core/csvStreamParser.test.ts:5"}, "properties": {"repobilityId": "ff2a34261f691f4d", "scanner": "scanner-primary", "fingerprint": "9b4f23819994dc35", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-35a6e5a5f595044a", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/services/core/datasetUploadJobRunner.ts:194"}, "properties": {"repobilityId": "5f3b31a4124c8dee", "scanner": "scanner-primary", "fingerprint": "35a6e5a5f595044a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c9ff4d784172e58", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/services/core/dinScrapeJobRunner.ts:158"}, "properties": {"repobilityId": "01d8df4dbe454006", "scanner": "scanner-primary", "fingerprint": "3c9ff4d784172e58", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-719f7f954671a055", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/services/core/concurrency.test.ts:167"}, "properties": {"repobilityId": "84c9a3111e6b9aed", "scanner": "scanner-primary", "fingerprint": "719f7f954671a055", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f4b870c0c1a931fd", "level": "none", "message": {"text": "Commented-code block (9 lines) in server/services/core/datasetUploadParsers.ts:453"}, "properties": {"repobilityId": "c33317042eefb5c1", "scanner": "scanner-primary", "fingerprint": "f4b870c0c1a931fd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-509d36018a30ae09", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/services/core/datasetUploadWorkerHost.ts:150"}, "properties": {"repobilityId": "dade7dd51f10dcbc", "scanner": "scanner-primary", "fingerprint": "509d36018a30ae09", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-16fcfeebb59448c3", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/services/core/contractScannerServer.test.ts:22"}, "properties": {"repobilityId": "07c9a5bb82bb9532", "scanner": "scanner-primary", "fingerprint": "16fcfeebb59448c3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-53cd4cb24f460de6", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/solar/snapshotLogRecovery.test.ts:144"}, "properties": {"repobilityId": "f000522815df13cd", "scanner": "scanner-primary", "fingerprint": "53cd4cb24f460de6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab766c3a0ae93377", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/services/solar/buildDeliveryTrackerData.test.ts:9"}, "properties": {"repobilityId": "561bfc1ecd81214d", "scanner": "scanner-primary", "fingerprint": "ab766c3a0ae93377", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4d2f1aebb35e0300", "level": "note", "message": {"text": "Legacy-named symbol `snapshot_logs_v1` in server/services/solar/snapshotLogRestore.test.ts:15"}, "properties": {"repobilityId": "6f3f60d0ce537d80", "scanner": "scanner-primary", "fingerprint": "4d2f1aebb35e0300", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7ec4da5e237f33b5", "level": "none", "message": {"text": "Commented-code block (10 lines) in server/services/solar/snapshotLogRestore.test.ts:12"}, "properties": {"repobilityId": "36a5aa47c87aa5e8", "scanner": "scanner-primary", "fingerprint": "7ec4da5e237f33b5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fca1e884b514d3c4", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/services/solar/datasetIngestion.test.ts:107"}, "properties": {"repobilityId": "5e4053fbb9e831e6", "scanner": "scanner-primary", "fingerprint": "fca1e884b514d3c4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-95964c75c52ab902", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/services/solar/fronius.test.ts:17"}, "properties": {"repobilityId": "aacf62c064ae915e", "scanner": "scanner-primary", "fingerprint": "95964c75c52ab902", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cf08fcf5b281151c", "level": "none", "message": {"text": "Commented-code block (10 lines) in server/services/solar/dashboardBuildJobRunner.ts:291"}, "properties": {"repobilityId": "f9f706e1849b8f62", "scanner": "scanner-primary", "fingerprint": "cf08fcf5b281151c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6fef8c6383ad7bdf", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/services/solar/buildContractVintageAggregates.test.ts:20"}, "properties": {"repobilityId": "6a419f42dfb9ce0c", "scanner": "scanner-primary", "fingerprint": "6fef8c6383ad7bdf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6dc55378106a6e32", "level": "none", "message": {"text": "Commented-code block (11 lines) in server/services/solar/serverSideMigration.ts:173"}, "properties": {"repobilityId": "e89d325cb7ffd9f4", "scanner": "scanner-primary", "fingerprint": "6dc55378106a6e32", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a06ba6368dbbb36f", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/services/solar/dashboardCsvExportJobs.test.ts:375"}, "properties": {"repobilityId": "25c3d264cc4e47e2", "scanner": "scanner-primary", "fingerprint": "a06ba6368dbbb36f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e10c2b2fe9da5977", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/solar/buildDashboardSystemFacts.ts:304"}, "properties": {"repobilityId": "9507852225d9cde8", "scanner": "scanner-primary", "fingerprint": "e10c2b2fe9da5977", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b993a30f147130e1", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/solar/buildSystemSnapshot.ts:242"}, "properties": {"repobilityId": "c07feb7464361435", "scanner": "scanner-primary", "fingerprint": "b993a30f147130e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-996ba0339387bddb", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/services/solar/buildOverviewSummaryAggregates.test.ts:246"}, "properties": {"repobilityId": "a5de5187b0c541cd", "scanner": "scanner-primary", "fingerprint": "996ba0339387bddb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db6c3450bbf52fdc", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/solar/buildOverviewSummaryAggregates.ts:654"}, "properties": {"repobilityId": "c9f7370ff9a42c49", "scanner": "scanner-primary", "fingerprint": "db6c3450bbf52fdc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3d512cfa8b023c21", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/services/solar/buildFinancialsAggregates.ts:418"}, "properties": {"repobilityId": "ddf464f6f82fe047", "scanner": "scanner-primary", "fingerprint": "3d512cfa8b023c21", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d8acac0d6cc51ffd", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/services/solar/buildDashboardOwnershipFacts.ts:137"}, "properties": {"repobilityId": "4da440c531008596", "scanner": "scanner-primary", "fingerprint": "d8acac0d6cc51ffd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-686d05ac18101157", "level": "none", "message": {"text": "Commented-code block (9 lines) in server/services/solar/buildDashboardPerformanceRatioFacts.ts:129"}, "properties": {"repobilityId": "9d5a9b771b08af4a", "scanner": "scanner-primary", "fingerprint": "686d05ac18101157", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d7008f6789c34121", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/solar/buildSystemEnrichments.ts:99"}, "properties": {"repobilityId": "6722991903094313", "scanner": "scanner-primary", "fingerprint": "d7008f6789c34121", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ee471523b2e4fe7d", "level": "none", "message": {"text": "Commented-code block (15 lines) in server/services/solar/buildPerformanceRatioAggregates.ts:230"}, "properties": {"repobilityId": "7df20cb2f2978357", "scanner": "scanner-primary", "fingerprint": "ee471523b2e4fe7d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-61e1fbd97203f730", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/services/solar/fronius.ts:808"}, "properties": {"repobilityId": "59585db48b8497b5", "scanner": "scanner-primary", "fingerprint": "61e1fbd97203f730", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-03718aaeab4485da", "level": "none", "message": {"text": "Commented-code block (10 lines) in server/services/solar/loadPerformanceRatioInput.ts:66"}, "properties": {"repobilityId": "dd8a6ed631b54b88", "scanner": "scanner-primary", "fingerprint": "03718aaeab4485da", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a252d964a51e9e4d", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/services/solar/buildTrendDeliveryPace.ts:37"}, "properties": {"repobilityId": "d0541a1aa335197f", "scanner": "scanner-primary", "fingerprint": "a252d964a51e9e4d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ef6302011f4cf017", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/solar/buildTrendsProduction.ts:36"}, "properties": {"repobilityId": "35a818a5dcccb0b7", "scanner": "scanner-primary", "fingerprint": "ef6302011f4cf017", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c2bc8fa696ac256a", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/services/solar/buildDashboardPerformanceRatioFacts.test.ts:375"}, "properties": {"repobilityId": "dc0c80e274e15649", "scanner": "scanner-primary", "fingerprint": "c2bc8fa696ac256a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-465629eef9d19027", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/solar/gatsReportingWindow.ts:173"}, "properties": {"repobilityId": "f87762c03790e8f7", "scanner": "scanner-primary", "fingerprint": "465629eef9d19027", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cfd91cc0ae431c4c", "level": "none", "message": {"text": "Commented-code block (13 lines) in server/services/solar/aggregatorInputs.ts:201"}, "properties": {"repobilityId": "3db850032d27b687", "scanner": "scanner-primary", "fingerprint": "cfd91cc0ae431c4c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-245a7f4fe0ce91c4", "level": "none", "message": {"text": "Commented-code block (10 lines) in server/services/solar/compareSlimVsHeavySummary.test.ts:51"}, "properties": {"repobilityId": "6a26d71ddf8bbfa0", "scanner": "scanner-primary", "fingerprint": "245a7f4fe0ce91c4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e085b49f0d3f2d18", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/services/solar/dashboardCsvExportJobs.ts:192"}, "properties": {"repobilityId": "06ef0ac8e9bf7ad5", "scanner": "scanner-primary", "fingerprint": "e085b49f0d3f2d18", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2364aa102168b997", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/services/solar/foundationRunner.ts:202"}, "properties": {"repobilityId": "c4dd48075dca8e1c", "scanner": "scanner-primary", "fingerprint": "2364aa102168b997", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c23758843e3ef854", "level": "none", "message": {"text": "Commented-code block (11 lines) in server/services/solar/teslaPowerhubProductionJobs.ts:369"}, "properties": {"repobilityId": "22c0ca08b2a77d0c", "scanner": "scanner-primary", "fingerprint": "c23758843e3ef854", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-112a237a04d363f7", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/services/solar/buildDashboardChangeOwnershipFacts.ts:125"}, "properties": {"repobilityId": "b1f4e1895f396a7f", "scanner": "scanner-primary", "fingerprint": "112a237a04d363f7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-daa4600acef3456d", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/solar/buildDashboardChangeOwnershipFacts.test.ts:356"}, "properties": {"repobilityId": "fb102bafd8d40fc1", "scanner": "scanner-primary", "fingerprint": "daa4600acef3456d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-25e9d3df0d7cc157", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/solar/buildFoundationArtifact.ts:285"}, "properties": {"repobilityId": "49d93f72ad32fc5b", "scanner": "scanner-primary", "fingerprint": "25e9d3df0d7cc157", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e40394e4abee6aa4", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/services/solar/helpers.ts:76"}, "properties": {"repobilityId": "8fbca5468e60eff3", "scanner": "scanner-primary", "fingerprint": "e40394e4abee6aa4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6228623ee0206edb", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/services/solar/buildTransferDeliveryLookup.test.ts:180"}, "properties": {"repobilityId": "cdaa049d9bdf4fde", "scanner": "scanner-primary", "fingerprint": "6228623ee0206edb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-03e5402100bb623b", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/services/solar/scheduleBApplySemaphore.ts:116"}, "properties": {"repobilityId": "59e36b665d9446a8", "scanner": "scanner-primary", "fingerprint": "03e5402100bb623b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7019e1155a48a596", "level": "none", "message": {"text": "Commented-code block (10 lines) in server/services/solar/dashboardBuildJobRunner.test.ts:146"}, "properties": {"repobilityId": "ba9e8634168508cf", "scanner": "scanner-primary", "fingerprint": "7019e1155a48a596", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-078290fb9f763f36", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/services/solar/aggregatorInputs.test.ts:305"}, "properties": {"repobilityId": "988325703bdab542", "scanner": "scanner-primary", "fingerprint": "078290fb9f763f36", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-444a5c68373a0c18", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/services/solar/buildChangeOwnershipAggregates.ts:383"}, "properties": {"repobilityId": "375bad1e380ae7ae", "scanner": "scanner-primary", "fingerprint": "444a5c68373a0c18", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6e5009960304cff", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/services/solar/aggregatorCachePredicates.test.ts:50"}, "properties": {"repobilityId": "fd30dc363490c52e", "scanner": "scanner-primary", "fingerprint": "d6e5009960304cff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f5a1adef2273dbc8", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/services/solar/dashboardJobMetrics.test.ts:238"}, "properties": {"repobilityId": "c3025a8b10ddbfd8", "scanner": "scanner-primary", "fingerprint": "f5a1adef2273dbc8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e11a5c724e243482", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/services/solar/dashboardBuildJobs.ts:150"}, "properties": {"repobilityId": "fa24fd6fa54f0ba6", "scanner": "scanner-primary", "fingerprint": "e11a5c724e243482", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-408034bf254dec6f", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/services/solar/buildSlimDashboardSummary.test.ts:102"}, "properties": {"repobilityId": "248a98f5b9d9dec7", "scanner": "scanner-primary", "fingerprint": "408034bf254dec6f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2f45409ff27f8316", "level": "none", "message": {"text": "Commented-code block (11 lines) in server/services/solar/buildOfflineMonitoringAggregates.ts:47"}, "properties": {"repobilityId": "87d92b810517d78c", "scanner": "scanner-primary", "fingerprint": "2f45409ff27f8316", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-23ed7facd50fbf2a", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/services/solar/buildDashboardCsvExport.test.ts:37"}, "properties": {"repobilityId": "586383d2c38a2103", "scanner": "scanner-primary", "fingerprint": "23ed7facd50fbf2a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c957ff2f7a346f59", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/solar/datasetIngestion.ts:53"}, "properties": {"repobilityId": "ad0c858df92ee72e", "scanner": "scanner-primary", "fingerprint": "c957ff2f7a346f59", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8acaf9021b334793", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/services/solar/datasetRowPersistence.test.ts:92"}, "properties": {"repobilityId": "7ce0e020ac6b8b43", "scanner": "scanner-primary", "fingerprint": "8acaf9021b334793", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1e90fc85daef808d", "level": "none", "message": {"text": "Commented-code block (9 lines) in server/services/solar/locus.test.ts:402"}, "properties": {"repobilityId": "9069ab5a10b06542", "scanner": "scanner-primary", "fingerprint": "1e90fc85daef808d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8c4220625b3464b1", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/services/solar/withArtifactCache.ts:117"}, "properties": {"repobilityId": "770953c147cf9c4e", "scanner": "scanner-primary", "fingerprint": "8c4220625b3464b1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1d26212189487cf8", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/solar/buildFoundationArtifact.test.ts:507"}, "properties": {"repobilityId": "10cde3eca76d8967", "scanner": "scanner-primary", "fingerprint": "1d26212189487cf8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ed47d06a12026b00", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/services/solar/buildPerformanceSourceRows.test.ts:9"}, "properties": {"repobilityId": "812a059311515664", "scanner": "scanner-primary", "fingerprint": "ed47d06a12026b00", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2e4329c360c9d1a1", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/services/solar/buildTrendsProduction.test.ts:5"}, "properties": {"repobilityId": "1f2d2ee9fa6399f5", "scanner": "scanner-primary", "fingerprint": "2e4329c360c9d1a1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9fcca62abe9d39f0", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/services/solar/buildSlimDashboardSummary.ts:455"}, "properties": {"repobilityId": "ed974bf3bbdbbd2e", "scanner": "scanner-primary", "fingerprint": "9fcca62abe9d39f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c73f66bd1531d829", "level": "none", "message": {"text": "Commented-code block (12 lines) in server/services/solar/buildAppPipelineMonthly.ts:250"}, "properties": {"repobilityId": "49421ae7e2a72458", "scanner": "scanner-primary", "fingerprint": "c73f66bd1531d829", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-878195bd16fd68c2", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/solar/teslaPowerhub.test.ts:398"}, "properties": {"repobilityId": "00e6126ef7005526", "scanner": "scanner-primary", "fingerprint": "878195bd16fd68c2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-50e4e5a9b6cb7462", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/services/solar/teslaPowerhub.test.ts:1218"}, "properties": {"repobilityId": "c43b700ef78817ed", "scanner": "scanner-primary", "fingerprint": "50e4e5a9b6cb7462", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-70012d838fb3953f", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/solar/buildDashboardMonitoringDetailsFacts.ts:187"}, "properties": {"repobilityId": "9ff76a53f1668f4a", "scanner": "scanner-primary", "fingerprint": "70012d838fb3953f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fa38cb97055d8d13", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/services/solar/contractScanFreshness.test.ts:87"}, "properties": {"repobilityId": "da807625be378e8a", "scanner": "scanner-primary", "fingerprint": "fa38cb97055d8d13", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-65b3635ac021816c", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/services/solar/crossTabFoundationParity.test.ts:163"}, "properties": {"repobilityId": "43fd688518349d9b", "scanner": "scanner-primary", "fingerprint": "65b3635ac021816c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8213050579e3a2ee", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/services/solar/loadPerformanceRatioInput.streamingBaseline.test.ts:119"}, "properties": {"repobilityId": "969e4e5d1c62883f", "scanner": "scanner-primary", "fingerprint": "8213050579e3a2ee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-31775d1a5b0b79c1", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/services/solar/egauge.ts:1721"}, "properties": {"repobilityId": "3c70fc4b47b4f5dc", "scanner": "scanner-primary", "fingerprint": "31775d1a5b0b79c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-98d3e2540356ce9f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/services/solar/egauge.ts:701"}, "properties": {"repobilityId": "2b3f2a4feeef9612", "scanner": "scanner-primary", "fingerprint": "98d3e2540356ce9f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bc53c089d3cf31a2", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/solar/dashboardJobMetrics.ts:119"}, "properties": {"repobilityId": "6d4b3945c43851ae", "scanner": "scanner-primary", "fingerprint": "bc53c089d3cf31a2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a1014eec9cb3c66f", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/solar/buildContractVintageAggregates.ts:176"}, "properties": {"repobilityId": "bb71fb81cdcabb84", "scanner": "scanner-primary", "fingerprint": "a1014eec9cb3c66f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3e4aae8f1e354821", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/solar/buildAppPipelineMonthly.test.ts:310"}, "properties": {"repobilityId": "a7e13e9e91ddafb8", "scanner": "scanner-primary", "fingerprint": "3e4aae8f1e354821", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-409dd3ae8b239046", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/services/solar/teslaPowerhubProductionJobs.test.ts:8"}, "properties": {"repobilityId": "bbdd9db0f137002a", "scanner": "scanner-primary", "fingerprint": "409dd3ae8b239046", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-64e4884d3a55487a", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/services/solar/aggregatorHelpers.ts:29"}, "properties": {"repobilityId": "adcc2e07a40a4715", "scanner": "scanner-primary", "fingerprint": "64e4884d3a55487a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5bb90c8152948d6e", "level": "none", "message": {"text": "Commented-code block (17 lines) in server/services/solar/buildDashboardCsvExport.ts:149"}, "properties": {"repobilityId": "f5f9a184d0d8076d", "scanner": "scanner-primary", "fingerprint": "5bb90c8152948d6e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-31949e9d49fa4112", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/solar/buildDataQualityReconciliation.ts:61"}, "properties": {"repobilityId": "132b7fb3b9761f8d", "scanner": "scanner-primary", "fingerprint": "31949e9d49fa4112", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3274f757092ebd1e", "level": "note", "message": {"text": "Legacy-named symbol `snapshot_logs_v1` in server/services/solar/snapshotLogRestore.ts:6"}, "properties": {"repobilityId": "41e2311181b12f7b", "scanner": "scanner-primary", "fingerprint": "3274f757092ebd1e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6f0a77617834bc3b", "level": "none", "message": {"text": "Commented-code block (10 lines) in server/services/solar/snapshotLogRestore.ts:39"}, "properties": {"repobilityId": "8e5f724740e41316", "scanner": "scanner-primary", "fingerprint": "6f0a77617834bc3b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-66ea9ddd6e4af6f7", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/services/solar/buildPerformanceRatioAggregates.test.ts:337"}, "properties": {"repobilityId": "4ba1d5a24e6b6dc7", "scanner": "scanner-primary", "fingerprint": "66ea9ddd6e4af6f7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c6269e15cb47476", "level": "note", "message": {"text": "Legacy-named symbol `transfer_delivery_lookup_v2` in server/services/solar/buildTransferDeliveryLookup.ts:182"}, "properties": {"repobilityId": "8070c72bb54f3740", "scanner": "scanner-primary", "fingerprint": "2c6269e15cb47476", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bc79ce89ece88683", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/services/solar/buildTransferDeliveryLookup.ts:176"}, "properties": {"repobilityId": "07c1cb508974d025", "scanner": "scanner-primary", "fingerprint": "bc79ce89ece88683", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e2f2ad131345f523", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/services/solar/buildChangeOwnershipAggregates.test.ts:390"}, "properties": {"repobilityId": "f322ab1d4e7d648f", "scanner": "scanner-primary", "fingerprint": "e2f2ad131345f523", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e3efa1189d172fb7", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/solar/buildDeliveryTrackerData.ts:75"}, "properties": {"repobilityId": "fd4601b932ddd24e", "scanner": "scanner-primary", "fingerprint": "e3efa1189d172fb7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab3b9e2d255e892a", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/services/solar/datasetCloudStatus.ts:260"}, "properties": {"repobilityId": "88f2d6538f75a904", "scanner": "scanner-primary", "fingerprint": "ab3b9e2d255e892a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1b2bbc0375082dd3", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/services/solar/buildPerformanceSourceRows.ts:103"}, "properties": {"repobilityId": "54358677fdf74b46", "scanner": "scanner-primary", "fingerprint": "1b2bbc0375082dd3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-35f477003156801e", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/solar/teslaPowerhub.ts:1930"}, "properties": {"repobilityId": "b464997cdc8524b4", "scanner": "scanner-primary", "fingerprint": "35f477003156801e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f84745c0ec8f5cbc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/services/solar/teslaPowerhub.ts:3539"}, "properties": {"repobilityId": "1d6958d7a5979526", "scanner": "scanner-primary", "fingerprint": "f84745c0ec8f5cbc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5ad733fbb195a984", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/services/solar/aggregatorHelpers.test.ts:189"}, "properties": {"repobilityId": "e428d14f07604307", "scanner": "scanner-primary", "fingerprint": "5ad733fbb195a984", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fa5b36f2af0d9650", "level": "note", "message": {"text": "Legacy-named symbol `snapshot_logs_v1` in server/services/solar/snapshotLogRecovery.ts:8"}, "properties": {"repobilityId": "600e8b709fe51736", "scanner": "scanner-primary", "fingerprint": "fa5b36f2af0d9650", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f42f5412015ba9e7", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/services/solar/snapshotLogRecovery.ts:324"}, "properties": {"repobilityId": "d6f9334f6870e2b6", "scanner": "scanner-primary", "fingerprint": "f42f5412015ba9e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3e4a91c57e230ae9", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/services/solar/withArtifactCache.test.ts:440"}, "properties": {"repobilityId": "a08c133f9dcdab00", "scanner": "scanner-primary", "fingerprint": "3e4a91c57e230ae9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7979dbbc0370052", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/services/solar/egauge.test.ts:1086"}, "properties": {"repobilityId": "64b5bfe6013b626e", "scanner": "scanner-primary", "fingerprint": "a7979dbbc0370052", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-be32651cbddb71d3", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/solar/buildAppPipelineCashFlow.test.ts:5"}, "properties": {"repobilityId": "0d3c9854f0dff1aa", "scanner": "scanner-primary", "fingerprint": "be32651cbddb71d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e5b2fcccb12f494a", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/services/solar/compareSlimVsHeavySummary.ts:161"}, "properties": {"repobilityId": "cde35fab2e4e5e29", "scanner": "scanner-primary", "fingerprint": "e5b2fcccb12f494a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5c079f7061227261", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/services/solar/solarEdge.ts:20"}, "properties": {"repobilityId": "1b2aab919484c45d", "scanner": "scanner-primary", "fingerprint": "5c079f7061227261", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b14aae2cf6a1db5a", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/solar/datasetRowPersistence.ts:198"}, "properties": {"repobilityId": "4a351e1de1db22c1", "scanner": "scanner-primary", "fingerprint": "b14aae2cf6a1db5a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-48d7f2effda62fbf", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/services/solar/buildForecastAggregates.test.ts:54"}, "properties": {"repobilityId": "5d5cb5acef79a73c", "scanner": "scanner-primary", "fingerprint": "48d7f2effda62fbf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9e5de79dc430507e", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/services/solar/foundationRunner.test.ts:304"}, "properties": {"repobilityId": "bde692ae0831ee43", "scanner": "scanner-primary", "fingerprint": "9e5de79dc430507e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-edbd147fedf77628", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/services/solar/buildTrendDeliveryPace.test.ts:7"}, "properties": {"repobilityId": "2f4311d75c44b151", "scanner": "scanner-primary", "fingerprint": "edbd147fedf77628", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-343a62095aa52c81", "level": "none", "message": {"text": "Commented-code block (17 lines) in server/services/solar/buildForecastAggregates.ts:302"}, "properties": {"repobilityId": "36325caca0dd81a7", "scanner": "scanner-primary", "fingerprint": "343a62095aa52c81", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4ae5a0516f00ac55", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/services/solar/scheduleBApplySemaphore.test.ts:146"}, "properties": {"repobilityId": "b658e4c1013381fa", "scanner": "scanner-primary", "fingerprint": "4ae5a0516f00ac55", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e41735897ef008f3", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/db/datasetUploadJobs.test.ts:362"}, "properties": {"repobilityId": "f2b599c460618c65", "scanner": "scanner-primary", "fingerprint": "e41735897ef008f3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c461d0c5987105c", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/db/dinScrapes.ts:108"}, "properties": {"repobilityId": "86e0a4def688e3d7", "scanner": "scanner-primary", "fingerprint": "7c461d0c5987105c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d4a95487c355ef88", "level": "note", "message": {"text": "Legacy-named symbol `pruneOld` in server/db/datasetUploadJobs.ts:537"}, "properties": {"repobilityId": "c81ebc420ef9bce1", "scanner": "scanner-primary", "fingerprint": "d4a95487c355ef88", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-748cf9ae2475c5c4", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/db/datasetUploadJobs.ts:222"}, "properties": {"repobilityId": "929560de1006fea3", "scanner": "scanner-primary", "fingerprint": "748cf9ae2475c5c4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-02485869b61eafc6", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/db/_core.ts:37"}, "properties": {"repobilityId": "bf2f69db93767ae6", "scanner": "scanner-primary", "fingerprint": "02485869b61eafc6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d01dec696c20f404", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/db/systemMeterReads.ts:277"}, "properties": {"repobilityId": "da79d118dfccf130", "scanner": "scanner-primary", "fingerprint": "d01dec696c20f404", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-85d21a0b0661f040", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/db/supplements.ts:718"}, "properties": {"repobilityId": "728090522fb253ae", "scanner": "scanner-primary", "fingerprint": "85d21a0b0661f040", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f34e58a124da5654", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/db/dashboardCsvExportJobs.ts:28"}, "properties": {"repobilityId": "ad67d7e23842e4a0", "scanner": "scanner-primary", "fingerprint": "f34e58a124da5654", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b25b7435c31b6bfb", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/db/productionReadings.test.ts:4"}, "properties": {"repobilityId": "a57d22f1d78ed595", "scanner": "scanner-primary", "fingerprint": "b25b7435c31b6bfb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-28e43d1dde983822", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/db/notes.ts:260"}, "properties": {"repobilityId": "44f516bcf3e2c191", "scanner": "scanner-primary", "fingerprint": "28e43d1dde983822", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-78dc7b7bf84373e9", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/db/ingestNonces.ts:12"}, "properties": {"repobilityId": "75019d0b8f768b12", "scanner": "scanner-primary", "fingerprint": "78dc7b7bf84373e9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6a3f5476644b5f3e", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/db/preferences.ts:42"}, "properties": {"repobilityId": "ea00c0eb8949e50b", "scanner": "scanner-primary", "fingerprint": "6a3f5476644b5f3e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a284c268e4fedc45", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/db/systemMonitoringHistory.ts:264"}, "properties": {"repobilityId": "14cbea14e1d1bdb5", "scanner": "scanner-primary", "fingerprint": "a284c268e4fedc45", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a6077f31c0a6707f", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/db/dashboardSystemFacts.test.ts:183"}, "properties": {"repobilityId": "b9635db17f09da99", "scanner": "scanner-primary", "fingerprint": "a6077f31c0a6707f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a86031141905e918", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/db/solarRecDashboardBuilds.test.ts:421"}, "properties": {"repobilityId": "c0517bc26431c774", "scanner": "scanner-primary", "fingerprint": "a86031141905e918", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7b23aaf58f49ea9", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/db/dashboardPerformanceRatioFacts.ts:263"}, "properties": {"repobilityId": "ad9e83e84e0edac7", "scanner": "scanner-primary", "fingerprint": "a7b23aaf58f49ea9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-be135f3fdd96d211", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/db/conversations.ts:40"}, "properties": {"repobilityId": "604e3f5acaa27afa", "scanner": "scanner-primary", "fingerprint": "be135f3fdd96d211", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-edfb1cdfcbd1ae40", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/db/integrations.ts:39"}, "properties": {"repobilityId": "9fa0f82c5af031d3", "scanner": "scanner-primary", "fingerprint": "edfb1cdfcbd1ae40", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ff387231b180eb39", "level": "none", "message": {"text": "Commented-code block (9 lines) in server/db/scheduleB.ts:891"}, "properties": {"repobilityId": "59e55bba933f6b07", "scanner": "scanner-primary", "fingerprint": "ff387231b180eb39", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0b23d0f4319203f7", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/db/dailyJobs.test.ts:114"}, "properties": {"repobilityId": "9289e69efea56d8f", "scanner": "scanner-primary", "fingerprint": "0b23d0f4319203f7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d1dd6a3dda396f03", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/db/solarRecDatasets.ts:936"}, "properties": {"repobilityId": "a282ecd23a4f93a6", "scanner": "scanner-primary", "fingerprint": "d1dd6a3dda396f03", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3a86714e0f91812b", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/db/dashboardSystemFacts.ts:43"}, "properties": {"repobilityId": "a13c28cdb7133b1f", "scanner": "scanner-primary", "fingerprint": "3a86714e0f91812b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b4349cc76d79a0c4", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/db/metrics.ts:102"}, "properties": {"repobilityId": "2bb28e52e817320b", "scanner": "scanner-primary", "fingerprint": "b4349cc76d79a0c4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-07823f534980435c", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/db/systemDetailHelpers.test.ts:119"}, "properties": {"repobilityId": "1908a4fab95b035d", "scanner": "scanner-primary", "fingerprint": "07823f534980435c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4ea9b4711875af35", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/db/dashboardPerformanceRatioCompliantFacts.test.ts:415"}, "properties": {"repobilityId": "6c72324589790b5f", "scanner": "scanner-primary", "fingerprint": "4ea9b4711875af35", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5e5b7a929be7c1ee", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/db/systemRegistry.ts:191"}, "properties": {"repobilityId": "7ab7abdca760d613", "scanner": "scanner-primary", "fingerprint": "5e5b7a929be7c1ee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c6021b1cd57c0b00", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/db/jobsIndex.ts:292"}, "properties": {"repobilityId": "9f6400702c825d91", "scanner": "scanner-primary", "fingerprint": "c6021b1cd57c0b00", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-62050df17e7fd09d", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/db/dailyJobs.ts:50"}, "properties": {"repobilityId": "ffb504df4a7554a6", "scanner": "scanner-primary", "fingerprint": "62050df17e7fd09d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-83d2e6d9e85b3ccf", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/solar/convertedReadsBridge.test.ts:303"}, "properties": {"repobilityId": "d52d31ee094693d5", "scanner": "scanner-primary", "fingerprint": "83d2e6d9e85b3ccf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-19b860312b74e9c6", "level": "none", "message": {"text": "Commented-code block (10 lines) in server/solar/convertedReadsBridge.ts:123"}, "properties": {"repobilityId": "293727210e542b3c", "scanner": "scanner-primary", "fingerprint": "19b860312b74e9c6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7a4f56b519513dd", "level": "none", "message": {"text": "Commented-code block (5 lines) in server/solar/monitoring.service.ts:294"}, "properties": {"repobilityId": "d5bc8857161b2a32", "scanner": "scanner-primary", "fingerprint": "a7a4f56b519513dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-78382c3475439573", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/solar/monitoringScheduler.ts:83"}, "properties": {"repobilityId": "86c1790863c466d0", "scanner": "scanner-primary", "fingerprint": "78382c3475439573", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc43982fa3ce01fd", "level": "none", "message": {"text": "Commented-code block (7 lines) in server/solar/adapters/teslaPowerhub.adapter.ts:307"}, "properties": {"repobilityId": "3ac88288714098fe", "scanner": "scanner-primary", "fingerprint": "cc43982fa3ce01fd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2de521f3f2929a13", "level": "none", "message": {"text": "Commented-code block (8 lines) in server/routers/auth.ts:308"}, "properties": {"repobilityId": "986c5db0ee6d0299", "scanner": "scanner-primary", "fingerprint": "2de521f3f2929a13", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3de0c0ccb290cebe", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/routers/productivity.ts:650"}, "properties": {"repobilityId": "d2ee531e54abe21a", "scanner": "scanner-primary", "fingerprint": "3de0c0ccb290cebe", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0a82ecfc57667825", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/routers/personalData.ts:272"}, "properties": {"repobilityId": "2e8828c082c73c8c", "scanner": "scanner-primary", "fingerprint": "0a82ecfc57667825", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7173d4814d37ccc2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 server/routers/personalData.ts:2723"}, "properties": {"repobilityId": "81bc46cd2c7fbaf5", "scanner": "scanner-primary", "fingerprint": "7173d4814d37ccc2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a87c594dd96f1606", "level": "none", "message": {"text": "Commented-code block (6 lines) in server/routers/kingOfDay.ts:707"}, "properties": {"repobilityId": "477e0eb13d8e4d18", "scanner": "scanner-primary", "fingerprint": "a87c594dd96f1606", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-17a5c4119946290c", "level": "none", "message": {"text": "Commented-code block (6 lines) in drizzle/schemas/auth.ts:133"}, "properties": {"repobilityId": "7c1611adbd2326dc", "scanner": "scanner-primary", "fingerprint": "17a5c4119946290c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-92b26a26340c19f2", "level": "none", "message": {"text": "Commented-code block (5 lines) in drizzle/schemas/dock.ts:53"}, "properties": {"repobilityId": "16aa712713a2edda", "scanner": "scanner-primary", "fingerprint": "92b26a26340c19f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-92acdee02db9a88b", "level": "none", "message": {"text": "Commented-code block (6 lines) in drizzle/schemas/core.ts:543"}, "properties": {"repobilityId": "e578a044ce66ebd1", "scanner": "scanner-primary", "fingerprint": "92acdee02db9a88b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-230f9efec00a15a8", "level": "none", "message": {"text": "Commented-code block (5 lines) in drizzle/schemas/integrations.ts:59"}, "properties": {"repobilityId": "558f63357d27865d", "scanner": "scanner-primary", "fingerprint": "230f9efec00a15a8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-38c2635ae98ec9a8", "level": "none", "message": {"text": "Commented-code block (5 lines) in drizzle/schemas/solar.ts:161"}, "properties": {"repobilityId": "0fc42e9d9c67df87", "scanner": "scanner-primary", "fingerprint": "38c2635ae98ec9a8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b49ef011b115b807", "level": "none", "message": {"text": "Commented-code block (5 lines) in drizzle/schemas/contacts.ts:57"}, "properties": {"repobilityId": "186499d96b76a036", "scanner": "scanner-primary", "fingerprint": "b49ef011b115b807", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3f45a82cc48e9df9", "level": "note", "message": {"text": "44 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "589836c35e9d9c49", "scanner": "scanner-primary", "fingerprint": "3f45a82cc48e9df9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-68ab1ec71ae8331c", "level": "warning", "message": {"text": "Frontend route `/solar-rec/monitoring` has no Link/navigate to it \u2014 client/src/solar-rec/SolarRecApp.tsx"}, "properties": {"repobilityId": "45d47b354dca90ce", "scanner": "scanner-primary", "fingerprint": "68ab1ec71ae8331c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-5f0a1ddc52d82d4b", "level": "warning", "message": {"text": "Frontend route `/solar-rec/monitoring-overview` has no Link/navigate to it \u2014 client/src/solar-rec/SolarRecApp.tsx"}, "properties": {"repobilityId": "0d76f38e0baba70c", "scanner": "scanner-primary", "fingerprint": "5f0a1ddc52d82d4b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-202a5a824c865f7d", "level": "warning", "message": {"text": "Frontend route `/solar-rec/settings` has no Link/navigate to it \u2014 client/src/solar-rec/SolarRecApp.tsx"}, "properties": {"repobilityId": "0b98240a201a31ab", "scanner": "scanner-primary", "fingerprint": "202a5a824c865f7d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-94da2162d3ebf8ec", "level": "warning", "message": {"text": "Frontend route `/solar-rec/jobs` has no Link/navigate to it \u2014 client/src/solar-rec/SolarRecApp.tsx"}, "properties": {"repobilityId": "d53071d4fc649ded", "scanner": "scanner-primary", "fingerprint": "94da2162d3ebf8ec", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-48439d8b63b6bcaa", "level": "warning", "message": {"text": "Frontend route `/solar-rec/jobs/:kind/:id` has no Link/navigate to it \u2014 client/src/solar-rec/SolarRecApp.tsx"}, "properties": {"repobilityId": "0c8add8a7a73f181", "scanner": "scanner-primary", "fingerprint": "48439d8b63b6bcaa", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-72d60178f3dce34a", "level": "warning", "message": {"text": "Frontend route `/solar-rec/systems` has no Link/navigate to it \u2014 client/src/solar-rec/SolarRecApp.tsx"}, "properties": {"repobilityId": "192446a782bf921c", "scanner": "scanner-primary", "fingerprint": "72d60178f3dce34a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-5bf1f4968d56f71b", "level": "warning", "message": {"text": "Frontend route `/solar-rec/system/:csgId` has no Link/navigate to it \u2014 client/src/solar-rec/SolarRecApp.tsx"}, "properties": {"repobilityId": "843873de4784e498", "scanner": "scanner-primary", "fingerprint": "5bf1f4968d56f71b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-99258b09220ffeb1", "level": "warning", "message": {"text": "Frontend route `${route}` has no Link/navigate to it \u2014 server/_core/solarRecMonitoringGates.test.ts"}, "properties": {"repobilityId": "6053189445c8f638", "scanner": "scanner-primary", "fingerprint": "99258b09220ffeb1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-29c29b742e3f8c2e", "level": "error", "message": {"text": "Dangling fetch: POST /solar-rec/api/trpc/${procedure}?batch=1 (scripts/recover-core-dataset-from-idb.js:124)"}, "properties": {"repobilityId": "07aa4d1e07fa91ca", "scanner": "scanner-primary", "fingerprint": "29c29b742e3f8c2e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5064f02c447cb791", "level": "error", "message": {"text": "Dangling fetch: POST /solar-rec/api/auth/login (client/src/components/SolarRecAuthGate.tsx:51)"}, "properties": {"repobilityId": "d577bcceebcd00e3", "scanner": "scanner-primary", "fingerprint": "5064f02c447cb791", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-552cb797518f6b32", "level": "error", "message": {"text": "Dangling fetch: GET https://api.todoist.com/sync/v9/completed/get_all?${params.toString()} (server/services/integrations/todoist.ts:704)"}, "properties": {"repobilityId": "50db764b95591504", "scanner": "scanner-primary", "fingerprint": "552cb797518f6b32", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-86db4c13b09dfe22", "level": "error", "message": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (server/services/integrations/supplements.ts:178)"}, "properties": {"repobilityId": "aa511cb84cab3208", "scanner": "scanner-primary", "fingerprint": "86db4c13b09dfe22", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-a02a85b691605903", "level": "error", "message": {"text": "Dangling fetch: GET /admin/login (server/services/integrations/csgPortal.ts:629)"}, "properties": {"repobilityId": "c401664530178c76", "scanner": "scanner-primary", "fingerprint": "a02a85b691605903", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-25bec2902316f615", "level": "error", "message": {"text": "Dangling fetch: POST /admin/login (server/services/integrations/csgPortal.ts:655)"}, "properties": {"repobilityId": "ffdf5d8a1b4cc8da", "scanner": "scanner-primary", "fingerprint": "25bec2902316f615", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e9d5861b7935be62", "level": "error", "message": {"text": "Dangling fetch: POST https://slack.com/api/oauth.v2.access (server/services/integrations/slack.ts:62)"}, "properties": {"repobilityId": "1ffee22e5b524b01", "scanner": "scanner-primary", "fingerprint": "e9d5861b7935be62", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-901ec5d3a4886b54", "level": "error", "message": {"text": "Dangling fetch: POST https://slack.com/api/auth.test (server/services/integrations/slack.ts:91)"}, "properties": {"repobilityId": "899223e3da01ddf6", "scanner": "scanner-primary", "fingerprint": "901ec5d3a4886b54", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-df483fe23b1e9b94", "level": "error", "message": {"text": "Dangling fetch: GET https://slack.com/api/search.messages?${params.toString()} (server/services/integrations/slack.ts:157)"}, "properties": {"repobilityId": "0e1f9b6b6a0a1a51", "scanner": "scanner-primary", "fingerprint": "df483fe23b1e9b94", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-3a0de849a139d77f", "level": "error", "message": {"text": "Dangling fetch: POST https://gmail.googleapis.com/gmail/v1/users/me/messages/${encodeURIComponent(messageId)}/modify (server/services/integrations/google.ts:328)"}, "properties": {"repobilityId": "034cce50e5184226", "scanner": "scanner-primary", "fingerprint": "3a0de849a139d77f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7cd0e6163798ef72", "level": "error", "message": {"text": "Dangling fetch: POST https://sheets.googleapis.com/v4/spreadsheets (server/services/integrations/google.ts:405)"}, "properties": {"repobilityId": "fc890ad2aa5430e0", "scanner": "scanner-primary", "fingerprint": "7cd0e6163798ef72", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-74e364fb07e661a9", "level": "error", "message": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (server/services/integrations/google.ts:621)"}, "properties": {"repobilityId": "bcb7db826a4e38fe", "scanner": "scanner-primary", "fingerprint": "74e364fb07e661a9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-38e54d9ced9c9524", "level": "error", "message": {"text": "Dangling fetch: POST https://oauth2.googleapis.com/token (server/services/integrations/google.ts:652)"}, "properties": {"repobilityId": "767e8460b9f5c6da", "scanner": "scanner-primary", "fingerprint": "38e54d9ced9c9524", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-420c0dadf564e33d", "level": "error", "message": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (server/services/core/addressCleaning.ts:470)"}, "properties": {"repobilityId": "76f8e0ecd35c6ae5", "scanner": "scanner-primary", "fingerprint": "420c0dadf564e33d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b4e9da1404ee1de4", "level": "error", "message": {"text": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (server/services/core/addressCleaning.ts:496)"}, "properties": {"repobilityId": "194d35d9d11962c0", "scanner": "scanner-primary", "fingerprint": "b4e9da1404ee1de4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-854f3e2b83470a42", "level": "error", "message": {"text": "Dangling fetch: GET /eguard/ (server/services/solar/egauge.ts:895)"}, "properties": {"repobilityId": "79e9c03562ae0759", "scanner": "scanner-primary", "fingerprint": "854f3e2b83470a42", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3efae5e569f9374b", "level": "error", "message": {"text": "Dangling fetch: GET /eguard/data/ (server/services/solar/egauge.ts:1075)"}, "properties": {"repobilityId": "2acbf1c9c8c73f71", "scanner": "scanner-primary", "fingerprint": "3efae5e569f9374b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4f8ab9fb6e68303a", "level": "error", "message": {"text": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (server/routers/productivity.ts:650)"}, "properties": {"repobilityId": "a96b1f347ea74f06", "scanner": "scanner-primary", "fingerprint": "4f8ab9fb6e68303a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f7b1a3872f7ef24c", "level": "error", "message": {"text": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (server/routers/productivity.ts:812)"}, "properties": {"repobilityId": "1c9a49cd6174d49c", "scanner": "scanner-primary", "fingerprint": "f7b1a3872f7ef24c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b812fcfeb904daae", "level": "error", "message": {"text": "Dangling fetch: POST https://api.openai.com/v1/chat/completions (server/routers/productivity.ts:947)"}, "properties": {"repobilityId": "3e8bf0c140fb7239", "scanner": "scanner-primary", "fingerprint": "b812fcfeb904daae", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-452348a82716bfa3", "level": "error", "message": {"text": "Dangling fetch: GET https://gmail.googleapis.com/gmail/v1/users/me/messages/${encodeURIComponent(messageId)}?format=metadata&metadataHeaders=Subject (server/routers/personalData.ts:2723)"}, "properties": {"repobilityId": "b43b3720c0b8542b", "scanner": "scanner-primary", "fingerprint": "452348a82716bfa3", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e7763b195e068798", "level": "error", "message": {"text": "Dangling fetch: GET https://www.googleapis.com/calendar/v3/calendars/${encodeURIComponent(calId)}/events/${encodeURIComponent(eventId!)} (server/routers/personalData.ts:2791)"}, "properties": {"repobilityId": "72d1b2ff3f5a1d76", "scanner": "scanner-primary", "fingerprint": "e7763b195e068798", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d7012941c24520f1", "level": "error", "message": {"text": "Dangling fetch: GET https://www.googleapis.com/calendar/v3/users/me/calendarList?fields=items(id,accessRole) (server/routers/personalData.ts:2811)"}, "properties": {"repobilityId": "05a656f26d42fa08", "scanner": "scanner-primary", "fingerprint": "d7012941c24520f1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c8b0c9e6bcd777a8", "level": "error", "message": {"text": "Dangling fetch: GET https://www.googleapis.com/drive/v3/files/${spreadsheetId}?fields=name (server/routers/personalData.ts:2886)"}, "properties": {"repobilityId": "1eb4f944f2e58eac", "scanner": "scanner-primary", "fingerprint": "c8b0c9e6bcd777a8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-173b1bc476c98547", "level": "error", "message": {"text": "Dangling fetch: GET https://api.todoist.com/api/v1/tasks/${encodeURIComponent(taskId)} (server/routers/personalData.ts:2945)"}, "properties": {"repobilityId": "a9ce88bcd867cace", "scanner": "scanner-primary", "fingerprint": "173b1bc476c98547", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-be9a5833e4e283f4", "level": "error", "message": {"text": "Dangling fetch: POST https://api.anthropic.com/v1/messages (server/routers/personalData.ts:3598)"}, "properties": {"repobilityId": "8f20b128aac5db7c", "scanner": "scanner-primary", "fingerprint": "be9a5833e4e283f4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0dbe1cb992fb5c5b", "level": "note", "message": {"text": "Unused endpoint: GET /oauth/google"}, "properties": {"repobilityId": "37f9ca1c3ca16ed1", "scanner": "scanner-primary", "fingerprint": "0dbe1cb992fb5c5b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-eb03a5115c2d8a71", "level": "note", "message": {"text": "Unused endpoint: GET /oauth/google/callback"}, "properties": {"repobilityId": "124caea8af7c4fe5", "scanner": "scanner-primary", "fingerprint": "eb03a5115c2d8a71", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e6ffe0a4ac46924c", "level": "note", "message": {"text": "Unused endpoint: GET /oauth/whoop"}, "properties": {"repobilityId": "819a3591ed87088c", "scanner": "scanner-primary", "fingerprint": "e6ffe0a4ac46924c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-db650ca1d12fd589", "level": "note", "message": {"text": "Unused endpoint: GET /oauth/whoop/callback"}, "properties": {"repobilityId": "7c9c8bf3243cb9e2", "scanner": "scanner-primary", "fingerprint": "db650ca1d12fd589", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-49362ec901d9305e", "level": "note", "message": {"text": "Unused endpoint: GET /oauth/slack"}, "properties": {"repobilityId": "9af773d329261e2c", "scanner": "scanner-primary", "fingerprint": "49362ec901d9305e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ce32167f382c6754", "level": "note", "message": {"text": "Unused endpoint: GET /oauth/slack/callback"}, "properties": {"repobilityId": "a1d598fd359a4cad", "scanner": "scanner-primary", "fingerprint": "ce32167f382c6754", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d2c9063bc9b9c01b", "level": "note", "message": {"text": "Unused endpoint: POST /webhooks/whoop"}, "properties": {"repobilityId": "d99dd1d3652822c5", "scanner": "scanner-primary", "fingerprint": "d2c9063bc9b9c01b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d2db90a05e7614b5", "level": "note", "message": {"text": "Unused endpoint: POST /webhooks/samsung-health"}, "properties": {"repobilityId": "825a891f1619aeef", "scanner": "scanner-primary", "fingerprint": "d2db90a05e7614b5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e17fd20f3fae5cd6", "level": "note", "message": {"text": "Unused endpoint: POST /webhooks/samsung-health/batch"}, "properties": {"repobilityId": "307a774ea948110b", "scanner": "scanner-primary", "fingerprint": "e17fd20f3fae5cd6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d3f0e6642e916974", "level": "note", "message": {"text": "Unused endpoint: POST /webhooks/samsung-health/sdk-shadow/batch"}, "properties": {"repobilityId": "37516690a0db884b", "scanner": "scanner-primary", "fingerprint": "d3f0e6642e916974", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-52aa6bb90f761c98", "level": "note", "message": {"text": "Unused endpoint: POST /webhooks/samsung-health/import-daily-metrics"}, "properties": {"repobilityId": "da7efeb50f8fe3d1", "scanner": "scanner-primary", "fingerprint": "52aa6bb90f761c98", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8b0514fb34f15a11", "level": "note", "message": {"text": "Unused endpoint: GET /webhooks/samsung-health/debug"}, "properties": {"repobilityId": "bfcf891d18a5d43b", "scanner": "scanner-primary", "fingerprint": "8b0514fb34f15a11", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c582c77bd1a58a0f", "level": "note", "message": {"text": "Unused endpoint: USE /api/trpc/<proc>"}, "properties": {"repobilityId": "55e4d5caca4c17f6", "scanner": "scanner-primary", "fingerprint": "c582c77bd1a58a0f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-dde3adb27bf7eebe", "level": "note", "message": {"text": "Unused endpoint: USE /api"}, "properties": {"repobilityId": "e4d1751af939fe87", "scanner": "scanner-primary", "fingerprint": "dde3adb27bf7eebe", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ac1c4924f32c1d79", "level": "note", "message": {"text": "Unused endpoint: USE /api/trpc"}, "properties": {"repobilityId": "74f5624e4906520e", "scanner": "scanner-primary", "fingerprint": "ac1c4924f32c1d79", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b93c1ed754cfdc30", "level": "note", "message": {"text": "Unused endpoint: USE /api/oauth"}, "properties": {"repobilityId": "80df7b344f2fe6d9", "scanner": "scanner-primary", "fingerprint": "b93c1ed754cfdc30", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-86088fb7ae1e08c5", "level": "note", "message": {"text": "Unused endpoint: USE /solar-rec/api/trpc"}, "properties": {"repobilityId": "e832a9191df852e2", "scanner": "scanner-primary", "fingerprint": "86088fb7ae1e08c5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-99d4709bb39be00b", "level": "note", "message": {"text": "Unused endpoint: USE /solar-rec/api/main-trpc"}, "properties": {"repobilityId": "a79703dff116555d", "scanner": "scanner-primary", "fingerprint": "99d4709bb39be00b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-acbaaa9e533b33f5", "level": "note", "message": {"text": "Unused endpoint: GET /api/oauth/callback"}, "properties": {"repobilityId": "d15b53af0eaa591b", "scanner": "scanner-primary", "fingerprint": "acbaaa9e533b33f5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5b460bccbb3391d9", "level": "note", "message": {"text": "Unused endpoint: POST /api/oauth/exchange"}, "properties": {"repobilityId": "e854e9766bf48e13", "scanner": "scanner-primary", "fingerprint": "5b460bccbb3391d9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-71f7bd3b4bf7ad17", "level": "note", "message": {"text": "Unused endpoint: GET /solar-rec/api/auth/google"}, "properties": {"repobilityId": "87baf6903a8b03c9", "scanner": "scanner-primary", "fingerprint": "71f7bd3b4bf7ad17", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-32cbdfb8486303b0", "level": "note", "message": {"text": "Unused endpoint: GET /solar-rec/api/auth/google/callback"}, "properties": {"repobilityId": "c2b708ff5ac401db", "scanner": "scanner-primary", "fingerprint": "32cbdfb8486303b0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f8752c7eb4ef602a", "level": "note", "message": {"text": "Unused endpoint: POST /api/pin/logout"}, "properties": {"repobilityId": "891a1a34757ccaad", "scanner": "scanner-primary", "fingerprint": "f8752c7eb4ef602a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3b59435b3211a9df", "level": "note", "message": {"text": "Unused endpoint: USE /assets"}, "properties": {"repobilityId": "19667beecfbdfbc5", "scanner": "scanner-primary", "fingerprint": "3b59435b3211a9df", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-546bef5426a8ab5f", "level": "note", "message": {"text": "Unused endpoint: USE /solar-rec/*"}, "properties": {"repobilityId": "c9c54aef6690ace9", "scanner": "scanner-primary", "fingerprint": "546bef5426a8ab5f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-203ec659ed8ada77", "level": "note", "message": {"text": "Unused endpoint: USE /api/webhooks"}, "properties": {"repobilityId": "6d6441147f0faa62", "scanner": "scanner-primary", "fingerprint": "203ec659ed8ada77", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}