{"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-bead75b0f9233e05", "name": "No API endpoints detected", "shortDescription": {"text": "No API endpoints detected"}, "fullDescription": {"text": "The scanner did not find FastAPI/Flask/Express/NestJS/GraphQL/gRPC routes. If this repo exposes APIs, the framework may be unsupported."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "info", "confidence": 1.0}}, {"id": "scanner-79be77b2e13769e8", "name": "Stray `console.log` in TS/JS \u2014 scripts/test-r2-connection.ts:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-r2-connection.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-3d24b19dcb3ed8dd", "name": "`truncate` class without `title=` for hover reveal \u2014 components/layout/Sidebar.tsx:378", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/layout/Sidebar.tsx:378"}, "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-f6f990dcf5573c5f", "name": "`truncate` class without `title=` for hover reveal \u2014 components/structure/StaffGamesScopeModal.tsx:150", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/structure/StaffGamesScopeModal.tsx:150"}, "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-4a66510509f247d1", "name": "`truncate` class without `title=` for hover reveal \u2014 components/structure/PlayerStructureView.tsx:499", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/structure/PlayerStructureView.tsx:499"}, "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-6b606fb9c0ee61a1", "name": "`truncate` class without `title=` for hover reveal \u2014 components/structure/CrossTeamTodosPanel.tsx:702", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/structure/CrossTeamTodosPanel.tsx:702"}, "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-e783cbbded308276", "name": "`truncate` class without `title=` for hover reveal \u2014 components/verification/VerifyAccountNudge.tsx:225", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/verification/VerifyAccountNudge.tsx:225"}, "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-ccb85ebf386396f3", "name": "`truncate` class without `title=` for hover reveal \u2014 components/ui/DateTimePicker.tsx:211", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/ui/DateTimePicker.tsx:211"}, "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-87ddae3ac5f27c89", "name": "`truncate` class without `title=` for hover reveal \u2014 components/ui/CommandPalette.tsx:326", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/ui/CommandPalette.tsx:326"}, "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-c9c2fb86c69d5017", "name": "`truncate` class without `title=` for hover reveal \u2014 components/ui/PublicPreviewFrame.tsx:42", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/ui/PublicPreviewFrame.tsx:42"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ecf61f1b52b45d7e", "name": "`truncate` class without `title=` for hover reveal \u2014 components/ui/Breadcrumbs.tsx:37", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/ui/Breadcrumbs.tsx:37"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a609dd4b85b38aee", "name": "`truncate` class without `title=` for hover reveal \u2014 components/ui/NotificationsBell.tsx:269", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/ui/NotificationsBell.tsx:269"}, "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-ed4932da179d9bc3", "name": "`truncate` class without `title=` for hover reveal \u2014 components/home/ConnectedDashboard.tsx:167", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/home/ConnectedDashboard.tsx:167"}, "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-205fd1c1f54cd0d7", "name": "`truncate` class without `title=` for hover reveal \u2014 components/admin/AdminUserRef.tsx:85", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/AdminUserRef.tsx:85"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b91c668c3572e477", "name": "TODO/FIXME marker in shipping code \u2014 components/onboarding/OnboardingWizard.tsx:112", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 components/onboarding/OnboardingWizard.tsx:112"}, "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-97d10f36a436437f", "name": "`truncate` class without `title=` for hover reveal \u2014 components/replays/ReplayList.tsx:218", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/replays/ReplayList.tsx:218"}, "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-70cfb33649f1883d", "name": "`truncate` class without `title=` for hover reveal \u2014 components/replays/ReplayStatsDrawer.tsx:170", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/replays/ReplayStatsDrawer.tsx:170"}, "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-acb53a0072813f9e", "name": "`truncate` class without `title=` for hover reveal \u2014 components/documents/DocumentsExplorer.tsx:538", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/documents/DocumentsExplorer.tsx:538"}, "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-63fec78f69839b56", "name": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/EventDetailModal.tsx:262", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/EventDetailModal.tsx:262"}, "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-77db932137ae653c", "name": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/WeekView.tsx:488", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/WeekView.tsx:488"}, "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-e8a1fa97f9a2cfd3", "name": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/EventCard.tsx:101", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/EventCard.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-b20fc2eaca5e66ac", "name": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/MiniMonthWidget.tsx:172", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/MiniMonthWidget.tsx:172"}, "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-21b9fb61d431fa15", "name": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/TodoConfigFields.tsx:90", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/TodoConfigFields.tsx:90"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-16bd8432c271b320", "name": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/CalendarSection.tsx:374", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/CalendarSection.tsx:374"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1dee7a5d4e86f471", "name": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/TeamDetailDrawer.tsx:128", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/TeamDetailDrawer.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-e15e7240ae25dca7", "name": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/MonthView.tsx:244", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/MonthView.tsx:244"}, "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-f66183416c03dc2d", "name": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/PlayerEventDrawer.tsx:359", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/PlayerEventDrawer.tsx:359"}, "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-83f9e3b4e7bf111e", "name": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/TeamFilterDropdown.tsx:118", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/TeamFilterDropdown.tsx:118"}, "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-c1af6cc5fd506332", "name": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/EventFormModal.tsx:657", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/EventFormModal.tsx:657"}, "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-44c3b5ab18ceca8d", "name": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/StaffAvailabilityView.tsx:607", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/StaffAvailabilityView.tsx:607"}, "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-8c97462f93ee0dc0", "name": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/TodoTemplatesManager.tsx:421", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/TodoTemplatesManager.tsx:421"}, "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-a1078293274e19cd", "name": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/StepResponseForm.tsx:252", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/StepResponseForm.tsx:252"}, "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-0aae7b3c2257b0c0", "name": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/TeamAvailabilityView.tsx:990", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/TeamAvailabilityView.tsx:990"}, "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-dc61ec173d3499c6", "name": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/TeamTodosPanel.tsx:719", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/TeamTodosPanel.tsx:719"}, "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-5103bc69cc3d7380", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 components/seo/JsonLd.tsx:10", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/seo/JsonLd.tsx:10"}, "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-8770d2501379cf8b", "name": "`truncate` class without `title=` for hover reveal \u2014 app/settings/page.tsx:725", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/settings/page.tsx:725"}, "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-b08341b3706f8da4", "name": "`truncate` class without `title=` for hover reveal \u2014 app/community/page.tsx:279", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/community/page.tsx:279"}, "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-226e1fc2c0c27d42", "name": "`truncate` class without `title=` for hover reveal \u2014 app/community/my-structure/discord-config-block.tsx:57", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/community/my-structure/discord-config-block.tsx:57"}, "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-42cf87a2168d73cf", "name": "`truncate` class without `title=` for hover reveal \u2014 app/community/my-structure/components.tsx:135", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/community/my-structure/components.tsx:135"}, "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-705d992ad7b6089d", "name": "`truncate` class without `title=` for hover reveal \u2014 app/community/my-structure/tabs/members-tab.tsx:120", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/community/my-structure/tabs/members-tab.tsx:120"}, "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-fb8fc31748b7fd41", "name": "`truncate` class without `title=` for hover reveal \u2014 app/community/my-structure/tabs/recruitment-tab.tsx:209", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/community/my-structure/tabs/recruitment-tab.tsx:209"}, "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-d68dd5d32597b88d", "name": "`truncate` class without `title=` for hover reveal \u2014 app/community/my-structure/tabs/general-tab.tsx:201", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/community/my-structure/tabs/general-tab.tsx:201"}, "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-a2f1c21b455e1ce1", "name": "`truncate` class without `title=` for hover reveal \u2014 app/community/structure/[id]/page.tsx:189", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/community/structure/[id]/page.tsx:189"}, "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-0e4dfcaed5869f94", "name": "`truncate` class without `title=` for hover reveal \u2014 app/community/players/page.tsx:745", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/community/players/page.tsx:745"}, "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-c17c07711926525f", "name": "`truncate` class without `title=` for hover reveal \u2014 app/admin/page.tsx:298", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/page.tsx:298"}, "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-bc078e5559ac08d5", "name": "`truncate` class without `title=` for hover reveal \u2014 app/admin/users/page.tsx:362", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/users/page.tsx:362"}, "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-16925daeab48f56f", "name": "`truncate` class without `title=` for hover reveal \u2014 app/admin/structures/page.tsx:754", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/structures/page.tsx:754"}, "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-126c09bb5eeb4caf", "name": "`truncate` class without `title=` for hover reveal \u2014 app/admin/teams/page.tsx:350", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/teams/page.tsx:350"}, "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-5b2695a366445893", "name": "`truncate` class without `title=` for hover reveal \u2014 app/admin/messages/page.tsx:181", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/messages/page.tsx:181"}, "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-9b9d1421be254ef8", "name": "`truncate` class without `title=` for hover reveal \u2014 app/admin/calendar/page.tsx:806", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/calendar/page.tsx:806"}, "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-d254864315c25b7e", "name": "`truncate` class without `title=` for hover reveal \u2014 app/profile/[id]/page.tsx:1023", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/profile/[id]/page.tsx:1023"}, "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-4dc69179c36b7f6a", "name": "`truncate` class without `title=` for hover reveal \u2014 app/guide/page.tsx:264", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/guide/page.tsx:264"}, "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-b952c698fa59e705", "name": "`truncate` class without `title=` for hover reveal \u2014 app/calendar/page.tsx:465", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/calendar/page.tsx:465"}, "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-82bbf842e0c9e0a7", "name": "Stray `console.log` in TS/JS \u2014 lib/valorant-henrikdev.ts:48", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/valorant-henrikdev.ts:48"}, "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-c0196ce4f56ea601", "name": "TODO/FIXME marker in shipping code \u2014 lib/discord-bot.ts:546", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 lib/discord-bot.ts:546"}, "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-b51bdca56914e440", "name": "Possible secret in lib/firebase.ts", "shortDescription": {"text": "Possible secret in lib/firebase.ts"}, "fullDescription": {"text": "Detected pattern matching generic_api_key. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c23afc4b48605434", "name": "Very large file: components/calendar/WeekView.tsx (1108 lines)", "shortDescription": {"text": "Very large file: components/calendar/WeekView.tsx (1108 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-44b282100aa0fa34", "name": "Very large file: components/calendar/EventFormModal.tsx (1058 lines)", "shortDescription": {"text": "Very large file: components/calendar/EventFormModal.tsx (1058 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-a58be228dd253039", "name": "Very large file: components/calendar/TeamTodosPanel.tsx (1262 lines)", "shortDescription": {"text": "Very large file: components/calendar/TeamTodosPanel.tsx (1262 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-804ce8d886eeb9d0", "name": "Very large file: app/settings/page.tsx (2375 lines)", "shortDescription": {"text": "Very large file: app/settings/page.tsx (2375 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-4330b0ff0e16f8e3", "name": "Very large file: app/community/my-structure/page.tsx (1939 lines)", "shortDescription": {"text": "Very large file: app/community/my-structure/page.tsx (1939 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-454665d1d6122bbc", "name": "Very large file: app/community/my-structure/tabs/teams-tab.tsx (1102 lines)", "shortDescription": {"text": "Very large file: app/community/my-structure/tabs/teams-tab.tsx (1102 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-4ab260101361583f", "name": "Very large file: app/community/structure/[id]/page.tsx (1340 lines)", "shortDescription": {"text": "Very large file: app/community/structure/[id]/page.tsx (1340 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-270decef6723b9f7", "name": "Very large file: app/community/players/page.tsx (1265 lines)", "shortDescription": {"text": "Very large file: app/community/players/page.tsx (1265 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-f95b8c0ff006cd2b", "name": "Very large file: app/admin/users/page.tsx (961 lines)", "shortDescription": {"text": "Very large file: app/admin/users/page.tsx (961 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-77805fa2a9b64412", "name": "Very large file: app/profile/[id]/page.tsx (1329 lines)", "shortDescription": {"text": "Very large file: app/profile/[id]/page.tsx (1329 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "23 test file(s) for 371 source file(s) (ratio 0.06). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1d5c69f6b9af62d4", "name": "57 TODO/FIXME markers", "shortDescription": {"text": "57 TODO/FIXME markers"}, "fullDescription": {"text": "High count of TODO/FIXME/HACK markers \u2014 track them as issues so they're not forgotten."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-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 127 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 131 placeholder/mock markers across 42 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-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, ci. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e725d2ab884fbd49", "name": "Multiple root agent instruction files without precedence", "shortDescription": {"text": "Multiple root agent instruction files without precedence"}, "fullDescription": {"text": "The repo has multiple top-level AI-coder instruction files. Without precedence rules, different agents may follow different policies."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0f9a2f6e65a489bd", "name": "Commented-code block (5 lines) in types/index.ts:26", "shortDescription": {"text": "Commented-code block (5 lines) in types/index.ts:26"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c78c0672feaa8a83", "name": "Commented-code block (5 lines) in scripts/backfill-structure-per-game.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/backfill-structure-per-game.mjs: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-a815cab06d65a4f4", "name": "Commented-code block (5 lines) in scripts/backfill-structure-slugs.mjs:5", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/backfill-structure-slugs.mjs: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-0dcc8e9bf38c5f87", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/download-rl-rank-icons.mjs:50", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/download-rl-rank-icons.mjs: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-4b87711a263072c0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/notify-valorant-purged.mjs:75", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/notify-valorant-purged.mjs:75"}, "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-46389e2e5683c2cb", "name": "Commented-code block (8 lines) in scripts/diagnose-verification.mjs:3", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/diagnose-verification.mjs:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b3adc6bb4997183b", "name": "Commented-code block (5 lines) in scripts/add-announce-template.mjs:3", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/add-announce-template.mjs:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d7f97a0300756624", "name": "Commented-code block (5 lines) in scripts/post-aedral-patch-notes.mjs:4", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/post-aedral-patch-notes.mjs: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-26e6e0931836ddee", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/post-aedral-patch-notes.mjs:38", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/post-aedral-patch-notes.mjs:38"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-70f88152fc2fa653", "name": "Commented-code block (6 lines) in scripts/cleanup-valorant-declared-ranks.mjs:3", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/cleanup-valorant-declared-ranks.mjs:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fa573cc7061a03d5", "name": "Commented-code block (7 lines) in scripts/backfill-user-slugs.mjs:8", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/backfill-user-slugs.mjs: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-dbc5ad60c4a3006e", "name": "Commented-code block (5 lines) in scripts/migrate-aedral-admins.mjs:3", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/migrate-aedral-admins.mjs:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8324462da1931b19", "name": "Commented-code block (5 lines) in scripts/generate-png-derivatives.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/generate-png-derivatives.mjs: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-6e8121470c4d5830", "name": "Commented-code block (5 lines) in components/settings/SharingSection.tsx:139", "shortDescription": {"text": "Commented-code block (5 lines) in components/settings/SharingSection.tsx:139"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fabe6b729510be34", "name": "Commented-code block (6 lines) in components/layout/Sidebar.tsx:29", "shortDescription": {"text": "Commented-code block (6 lines) in components/layout/Sidebar.tsx: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-294a0d45149c87e2", "name": "Commented-code block (5 lines) in components/brand/AedralLogo.tsx:10", "shortDescription": {"text": "Commented-code block (5 lines) in components/brand/AedralLogo.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-b3b5d4214193f9e3", "name": "Commented-code block (5 lines) in components/structure/BallchasingAutoParseToggle.tsx:9", "shortDescription": {"text": "Commented-code block (5 lines) in components/structure/BallchasingAutoParseToggle.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-ab2a550f8126a6bb", "name": "Commented-code block (6 lines) in components/structure/StaffGamesScopeModal.tsx:106", "shortDescription": {"text": "Commented-code block (6 lines) in components/structure/StaffGamesScopeModal.tsx:106"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-13707bb0df1d56fc", "name": "Commented-code block (6 lines) in components/structure/CrossTeamTodosPanel.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in components/structure/CrossTeamTodosPanel.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cad05c57c3c00713", "name": "Commented-code block (6 lines) in components/verification/VerifyAccountNudge.tsx:24", "shortDescription": {"text": "Commented-code block (6 lines) in components/verification/VerifyAccountNudge.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-caea1710e53c56f9", "name": "Commented-code block (9 lines) in components/players/ValorantIdentityBadge.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in components/players/ValorantIdentityBadge.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4edcf198a751dd58", "name": "Commented-code block (9 lines) in components/players/RLIdentityBadge.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in components/players/RLIdentityBadge.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-67e9023e1c334918", "name": "Commented-code block (12 lines) in components/analytics/PostHogProvider.tsx:7", "shortDescription": {"text": "Commented-code block (12 lines) in components/analytics/PostHogProvider.tsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f06b5a8f0beb5084", "name": "Commented-code block (6 lines) in components/analytics/AnalyticsConsentBanner.tsx:7", "shortDescription": {"text": "Commented-code block (6 lines) in components/analytics/AnalyticsConsentBanner.tsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2e2dacbb783d3b71", "name": "Commented-code block (6 lines) in components/ui/DateTimePicker.tsx:8", "shortDescription": {"text": "Commented-code block (6 lines) in components/ui/DateTimePicker.tsx:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d6b3e7dee2eb1bf3", "name": "Commented-code block (7 lines) in components/ui/ShareStoryButton.tsx:74", "shortDescription": {"text": "Commented-code block (7 lines) in components/ui/ShareStoryButton.tsx:74"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c3c009a81a8371e6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/ImpersonationBanner.tsx:54", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/ImpersonationBanner.tsx:54"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b4625921e8587d2e", "name": "Commented-code block (5 lines) in components/admin/AdminUserRef.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in components/admin/AdminUserRef.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-768efb2ca7a540cb", "name": "Commented-code block (6 lines) in components/landing/VisitorLanding.tsx:73", "shortDescription": {"text": "Commented-code block (6 lines) in components/landing/VisitorLanding.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-40abcc25c4f2ebf2", "name": "Commented-code block (5 lines) in components/replays/ReplayStatsDrawer.tsx:199", "shortDescription": {"text": "Commented-code block (5 lines) in components/replays/ReplayStatsDrawer.tsx: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-91e3012e16e0f2ee", "name": "Commented-code block (6 lines) in components/calendar/EventDetailModal.tsx:104", "shortDescription": {"text": "Commented-code block (6 lines) in components/calendar/EventDetailModal.tsx: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-c89a2362f8d1915b", "name": "Commented-code block (6 lines) in components/calendar/WeekView.tsx:5", "shortDescription": {"text": "Commented-code block (6 lines) in components/calendar/WeekView.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-338bab42ca5812e1", "name": "Commented-code block (9 lines) in components/calendar/PlayerEventDrawer.tsx:81", "shortDescription": {"text": "Commented-code block (9 lines) in components/calendar/PlayerEventDrawer.tsx:81"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-19aee5bcf1fce976", "name": "Commented-code block (11 lines) in components/calendar/StaffAvailabilityView.tsx:5", "shortDescription": {"text": "Commented-code block (11 lines) in components/calendar/StaffAvailabilityView.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6d27b38fed7425e7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/calendar/StepResponseForm.tsx:100", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/calendar/StepResponseForm.tsx: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-6d488e2c5ba08a03", "name": "Commented-code block (6 lines) in components/calendar/TeamAvailabilityView.tsx:204", "shortDescription": {"text": "Commented-code block (6 lines) in components/calendar/TeamAvailabilityView.tsx:204"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ab27be3129950711", "name": "Commented-code block (7 lines) in app/robots.ts:5", "shortDescription": {"text": "Commented-code block (7 lines) in app/robots.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-ec79b8b3bd04b8c7", "name": "Commented-code block (6 lines) in app/sitemap.ts:7", "shortDescription": {"text": "Commented-code block (6 lines) in app/sitemap.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-09f92866323dab7d", "name": "Commented-code block (5 lines) in app/settings/page.tsx:460", "shortDescription": {"text": "Commented-code block (5 lines) in app/settings/page.tsx:460"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f1c176dee3666681", "name": "Commented-code block (6 lines) in app/api/auth/discord/callback/route.ts:105", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/auth/discord/callback/route.ts: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-126525e7200a9701", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/auth/discord/callback/route.ts:71", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/auth/discord/callback/route.ts:71"}, "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-a5f816cbf9401c09", "name": "Commented-code block (5 lines) in app/api/auth/discord/session/route.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/auth/discord/session/route.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-49b52f8e40feb232", "name": "Commented-code block (5 lines) in app/api/auth/discord/start/route.ts:35", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/auth/discord/start/route.ts:35"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-53fda5f7ab357539", "name": "Commented-code block (5 lines) in app/api/auth/steam/callback/route.ts:8", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/auth/steam/callback/route.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-0744805c12e3b275", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/auth/steam/start/route.ts:11", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/auth/steam/start/route.ts:11"}, "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-6baf550adcf8e707", "name": "Commented-code block (6 lines) in app/api/players/route.ts:15", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/players/route.ts:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-96c86a258ccc0fed", "name": "Commented-code block (5 lines) in app/api/changelog/route.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/changelog/route.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-4fc9e1ee096c4c9d", "name": "Commented-code block (5 lines) in app/api/changelog/latest/route.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/changelog/latest/route.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-a8b8ca5d4894c5ec", "name": "Commented-code block (5 lines) in app/api/structures/route.ts:15", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/structures/route.ts:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-18441c8d115a4b9f", "name": "Commented-code block (5 lines) in app/api/structures/transfer/route.ts:15", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/structures/transfer/route.ts:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d4b472891dfbe989", "name": "Commented-code block (5 lines) in app/api/structures/teams/route.ts:198", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/structures/teams/route.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-1b9ef5fad7ac977e", "name": "Commented-code block (5 lines) in app/api/structures/teams/availability/route.ts:61", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/structures/teams/availability/route.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-b62c4e47618e94c2", "name": "Commented-code block (9 lines) in app/api/structures/[id]/staff-availability/route.ts:16", "shortDescription": {"text": "Commented-code block (9 lines) in app/api/structures/[id]/staff-availability/route.ts:16"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-46a9bccc3d5fd9ab", "name": "Commented-code block (6 lines) in app/api/structures/[id]/events/route.ts:436", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/structures/[id]/events/route.ts:436"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-75a28240adfbbba0", "name": "Commented-code block (6 lines) in app/api/structures/[id]/events/[eventId]/replay-stats-agg/route.ts:16", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/structures/[id]/events/[eventId]/replay-stats-agg/route.ts:16"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-20425be46305cb1b", "name": "Commented-code block (5 lines) in app/api/structures/[id]/events/[eventId]/lineup/route.ts:9", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/structures/[id]/events/[eventId]/lineup/route.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-c4767ec5ec2c5d6e", "name": "Commented-code block (5 lines) in app/api/structures/[id]/todos/route.ts:78", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/structures/[id]/todos/route.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-a4f77cecd5b8135c", "name": "Commented-code block (8 lines) in app/api/structures/[id]/todos/[todoId]/route.ts:23", "shortDescription": {"text": "Commented-code block (8 lines) in app/api/structures/[id]/todos/[todoId]/route.ts: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-311878b54ea103d4", "name": "Commented-code block (6 lines) in app/api/structures/[id]/todos/overview/route.ts:20", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/structures/[id]/todos/overview/route.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-194e02818a5b240d", "name": "Commented-code block (6 lines) in app/api/structures/[id]/replays/route.ts:54", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/structures/[id]/replays/route.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-6f30b6fac73c07c4", "name": "Commented-code block (5 lines) in app/api/structures/[id]/replays/[replayId]/route.ts:116", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/structures/[id]/replays/[replayId]/route.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-9477e53fc3d19747", "name": "Commented-code block (7 lines) in app/api/structures/[id]/replays/[replayId]/download/route.ts:14", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/structures/[id]/replays/[replayId]/download/route.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-8dcdde703c1d45ea", "name": "Commented-code block (5 lines) in app/api/structures/[id]/replays/[replayId]/stats/route.ts:26", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/structures/[id]/replays/[replayId]/stats/route.ts:26"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6fdd20f298e2e060", "name": "Commented-code block (5 lines) in app/api/structures/[id]/documents/upload-sensitive/route.ts:20", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/structures/[id]/documents/upload-sensitive/route.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-0f38b03ef458824f", "name": "Commented-code block (6 lines) in app/api/structures/[id]/documents/[docId]/download/route.ts:12", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/structures/[id]/documents/[docId]/download/route.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-341c064a0d6066f2", "name": "Commented-code block (5 lines) in app/api/structures/[id]/todo-templates/route.ts:21", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/structures/[id]/todo-templates/route.ts:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7ce01c9454a4eb7a", "name": "Commented-code block (6 lines) in app/api/structures/[id]/todo-templates/[templateId]/route.ts:12", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/structures/[id]/todo-templates/[templateId]/route.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-fa0253029d10d062", "name": "Commented-code block (5 lines) in app/api/structures/my-player/route.ts:7", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/structures/my-player/route.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-ff2d6a897c975015", "name": "Commented-code block (7 lines) in app/api/structures/my/route.ts:52", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/structures/my/route.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-81b600aac4b1a9be", "name": "Commented-code block (8 lines) in app/api/structures/request/route.ts:105", "shortDescription": {"text": "Commented-code block (8 lines) in app/api/structures/request/route.ts: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-e452ef3513ff111c", "name": "Commented-code block (5 lines) in app/api/tm-stats/route.ts:8", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/tm-stats/route.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-e173622b32b226c4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/tm-stats/route.ts:67", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/tm-stats/route.ts:67"}, "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-ce294ace29c772ff", "name": "Commented-code block (5 lines) in app/api/admin/users/route.ts:120", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/users/route.ts: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-25a9ea8613cb7bf4", "name": "Commented-code block (8 lines) in app/api/admin/users/mass/route.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in app/api/admin/users/mass/route.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-d846b6d4ea37e972", "name": "Commented-code block (8 lines) in app/api/admin/rank-reports/[id]/route.ts:5", "shortDescription": {"text": "Commented-code block (8 lines) in app/api/admin/rank-reports/[id]/route.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-e262e09b14b36fb5", "name": "Commented-code block (7 lines) in app/api/admin/audit/route.ts:23", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/admin/audit/route.ts: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-39d6e98fdc3313db", "name": "Commented-code block (5 lines) in app/api/admin/rl-link-changes/[id]/route.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/rl-link-changes/[id]/route.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-91500637bcb1bcf1", "name": "Commented-code block (7 lines) in app/api/admin/discord-broadcast/route.ts:8", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/admin/discord-broadcast/route.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-40dac970e9e26821", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/discord-broadcast/route.ts:50", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/discord-broadcast/route.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-5ad4c37100609577", "name": "Commented-code block (8 lines) in app/api/admin/impersonate/stop/route.ts:12", "shortDescription": {"text": "Commented-code block (8 lines) in app/api/admin/impersonate/stop/route.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-7561d8283f1063e3", "name": "Commented-code block (5 lines) in app/api/admin/backfill-counters/route.ts:7", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/backfill-counters/route.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-984cbf6c4a26f3f4", "name": "Commented-code block (5 lines) in app/api/admin/messages/send/route.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/messages/send/route.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-a988806b75b3b54f", "name": "Commented-code block (5 lines) in app/api/admin/valorant-link-changes/[id]/route.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/admin/valorant-link-changes/[id]/route.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-8cbe1e0b42d86534", "name": "Commented-code block (5 lines) in app/api/rl-stats/route.ts:14", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/rl-stats/route.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-7714eebe90b1f581", "name": "Commented-code block (5 lines) in app/api/discord/install/route.ts:9", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/discord/install/route.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-b9af40f6bb92a7a2", "name": "Legacy-named symbol `crypt_legacy` in app/api/dev/seed/route.ts:121", "shortDescription": {"text": "Legacy-named symbol `crypt_legacy` in app/api/dev/seed/route.ts:121"}, "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-696c0f6ae3fb9daa", "name": "Commented-code block (6 lines) in app/api/dev/seed/route.ts:6", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/dev/seed/route.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-a7f21ef29aaabf14", "name": "Commented-code block (5 lines) in app/api/cron/expire-invitations/route.ts:23", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/cron/expire-invitations/route.ts: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-060650792a88b95e", "name": "Commented-code block (5 lines) in app/api/cron/sync-valorant-ranks/route.ts:11", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/cron/sync-valorant-ranks/route.ts:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f2abec3f3e9f9ab0", "name": "Commented-code block (5 lines) in app/api/cron/todos-reminders/route.ts:9", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/cron/todos-reminders/route.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-ac1fcff8db0f85f3", "name": "Commented-code block (9 lines) in app/api/account/delete/route.ts:8", "shortDescription": {"text": "Commented-code block (9 lines) in app/api/account/delete/route.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-a3e242ad72761dea", "name": "Commented-code block (8 lines) in app/api/profile/route.ts:102", "shortDescription": {"text": "Commented-code block (8 lines) in app/api/profile/route.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-10e9de2ca5f7d52b", "name": "Commented-code block (5 lines) in app/api/profile/og-display/route.ts:17", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/profile/og-display/route.ts:17"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c568b44b754517c8", "name": "Commented-code block (5 lines) in app/api/profile/mark-changelog-seen/route.ts:7", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/profile/mark-changelog-seen/route.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-d834736d93924458", "name": "Commented-code block (11 lines) in app/api/profile/[uid]/rank-report/route.ts:9", "shortDescription": {"text": "Commented-code block (11 lines) in app/api/profile/[uid]/rank-report/route.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-b681820574b4d5f8", "name": "Commented-code block (6 lines) in app/api/profile/rl-steam-link/change-request/route.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/profile/rl-steam-link/change-request/route.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-2475d9023cf5785b", "name": "Commented-code block (5 lines) in app/api/profile/refresh-discord-connections/route.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/profile/refresh-discord-connections/route.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bb4e2c6ab98fa541", "name": "Commented-code block (5 lines) in app/api/profile/valorant-link/change-request/route.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/profile/valorant-link/change-request/route.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-0d5c181ae5c56750", "name": "Commented-code block (5 lines) in app/api/profile/history/route.ts:17", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/profile/history/route.ts:17"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-decce874e4a91397", "name": "Commented-code block (5 lines) in app/api/profile/rl-epic-link/route.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/profile/rl-epic-link/route.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-feb40a528d0d4178", "name": "Commented-code block (6 lines) in app/api/profile/rl-epic-link/change-request/route.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/profile/rl-epic-link/change-request/route.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-73660bb1eaa5dc47", "name": "Commented-code block (5 lines) in app/api/og/structure/[id]/route.tsx:25", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/og/structure/[id]/route.tsx:25"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0d485a6833f9e152", "name": "Commented-code block (8 lines) in app/api/og/structure/[id]/story/route.tsx:22", "shortDescription": {"text": "Commented-code block (8 lines) in app/api/og/structure/[id]/story/route.tsx:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-12f872c921f6bb0b", "name": "Commented-code block (5 lines) in app/api/og/profile/[slug]/route.tsx:32", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/og/profile/[slug]/route.tsx:32"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7f311b107419e8e6", "name": "Commented-code block (5 lines) in app/api/og/profile/[slug]/banner/route.tsx:7", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/og/profile/[slug]/banner/route.tsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-773d4b388fe9ffd5", "name": "Commented-code block (7 lines) in app/api/og/profile/[slug]/story/route.tsx:30", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/og/profile/[slug]/story/route.tsx:30"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d2b84f19e245ba4a", "name": "Commented-code block (6 lines) in app/community/my-structure/components.tsx:47", "shortDescription": {"text": "Commented-code block (6 lines) in app/community/my-structure/components.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-67461c02511fa1a0", "name": "Commented-code block (6 lines) in app/community/my-structure/page.tsx:732", "shortDescription": {"text": "Commented-code block (6 lines) in app/community/my-structure/page.tsx:732"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b3e93066cbd01994", "name": "Commented-code block (5 lines) in app/community/my-structure/teams-dnd.tsx:53", "shortDescription": {"text": "Commented-code block (5 lines) in app/community/my-structure/teams-dnd.tsx: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-b9199e62a2c75cdf", "name": "Commented-code block (9 lines) in app/community/my-structure/tabs/teams-tab.tsx:38", "shortDescription": {"text": "Commented-code block (9 lines) in app/community/my-structure/tabs/teams-tab.tsx:38"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e7881f6395def4da", "name": "Commented-code block (5 lines) in app/community/structure/[id]/layout.tsx:150", "shortDescription": {"text": "Commented-code block (5 lines) in app/community/structure/[id]/layout.tsx: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-ed9fae74276b3161", "name": "Commented-code block (5 lines) in app/community/create-structure/page.tsx:167", "shortDescription": {"text": "Commented-code block (5 lines) in app/community/create-structure/page.tsx: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-8d9c0c27956c0d7a", "name": "Commented-code block (8 lines) in app/admin/announce/page.tsx:5", "shortDescription": {"text": "Commented-code block (8 lines) in app/admin/announce/page.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c84991b4e7ae83c2", "name": "Legacy-named symbol `isLegacy` in app/profile/[id]/page.tsx:93", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in app/profile/[id]/page.tsx:93"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e699293743ec20f7", "name": "Commented-code block (6 lines) in app/profile/[id]/page.tsx:95", "shortDescription": {"text": "Commented-code block (6 lines) in app/profile/[id]/page.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-b3f85316bf05a8e4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/profile/[id]/page.tsx:103", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/profile/[id]/page.tsx:103"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-eb86baeb8c3b3abe", "name": "Commented-code block (7 lines) in app/profile/[id]/layout.tsx:67", "shortDescription": {"text": "Commented-code block (7 lines) in app/profile/[id]/layout.tsx: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-64a0d0dc7e4138f7", "name": "Commented-code block (5 lines) in lib/api-client.ts:28", "shortDescription": {"text": "Commented-code block (5 lines) in lib/api-client.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-9d3c0e656753bea1", "name": "Commented-code block (6 lines) in lib/valorant-sync.ts:94", "shortDescription": {"text": "Commented-code block (6 lines) in lib/valorant-sync.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-d405dc788efeeca7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/admin-discord-alert.ts:73", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/admin-discord-alert.ts:73"}, "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-ab9c5fddb8b85dfd", "name": "Commented-code block (5 lines) in lib/legal-info.ts:15", "shortDescription": {"text": "Commented-code block (5 lines) in lib/legal-info.ts:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1712391fff018bd9", "name": "Commented-code block (7 lines) in lib/plan-limits.ts:115", "shortDescription": {"text": "Commented-code block (7 lines) in lib/plan-limits.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-6c5a798acf4721dd", "name": "Commented-code block (6 lines) in lib/structure-slug.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in lib/structure-slug.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-20794c913ab227eb", "name": "Commented-code block (7 lines) in lib/storage.ts:12", "shortDescription": {"text": "Commented-code block (7 lines) in lib/storage.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-ad540127d0bf6f1f", "name": "Commented-code block (6 lines) in lib/rl-ranks.ts:21", "shortDescription": {"text": "Commented-code block (6 lines) in lib/rl-ranks.ts:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0ce237228c0f5299", "name": "Commented-code block (6 lines) in lib/analytics.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/analytics.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-593c727da29155fc", "name": "Commented-code block (7 lines) in lib/user-slug.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in lib/user-slug.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-ea31367651cd19e8", "name": "Commented-code block (5 lines) in lib/structure-permissions.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/structure-permissions.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-4631ab4f409a9019", "name": "Commented-code block (5 lines) in lib/event-context.ts:89", "shortDescription": {"text": "Commented-code block (5 lines) in lib/event-context.ts:89"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-73d3879fb2c1ec35", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/discord-role-sync.ts:42", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/discord-role-sync.ts:42"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5836d54973691d59", "name": "Commented-code block (7 lines) in lib/event-permissions.ts:44", "shortDescription": {"text": "Commented-code block (7 lines) in lib/event-permissions.ts: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-7443143174cf9b0c", "name": "Commented-code block (10 lines) in lib/cron-state.ts:9", "shortDescription": {"text": "Commented-code block (10 lines) in lib/cron-state.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-b2c082f31b337463", "name": "Commented-code block (5 lines) in lib/changelog-categories.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in lib/changelog-categories.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-325b5f856a104a29", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/steam-openid.ts:56", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/steam-openid.ts:56"}, "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-2da39c1b4e96d08d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/ballchasing.ts:335", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/ballchasing.ts:335"}, "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-cd788e54d43e60f3", "name": "Commented-code block (8 lines) in lib/admin-segments.ts:24", "shortDescription": {"text": "Commented-code block (8 lines) in lib/admin-segments.ts:24"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ed45367ecd82deeb", "name": "Commented-code block (11 lines) in lib/ballchasing-quota.ts:6", "shortDescription": {"text": "Commented-code block (11 lines) in lib/ballchasing-quota.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-ef1e8459ec0d4c9e", "name": "Commented-code block (7 lines) in lib/discord-bot.ts:234", "shortDescription": {"text": "Commented-code block (7 lines) in lib/discord-bot.ts:234"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ebdab797c8e8fb39", "name": "Commented-code block (5 lines) in lib/valorant-ranks.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/valorant-ranks.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-5aa32ad5e8102c74", "name": "Commented-code block (6 lines) in lib/return-to.ts:91", "shortDescription": {"text": "Commented-code block (6 lines) in lib/return-to.ts:91"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-241dd6dc267ab990", "name": "Commented-code block (5 lines) in lib/todos.ts:15", "shortDescription": {"text": "Commented-code block (5 lines) in lib/todos.ts:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4595c2e37aa63d42", "name": "Commented-code block (8 lines) in lib/availability.ts:4", "shortDescription": {"text": "Commented-code block (8 lines) in lib/availability.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-3e630c88ca868239", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/discord-connections.ts:127", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/discord-connections.ts:127"}, "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-23ba78e319919895", "name": "Commented-code block (7 lines) in lib/availability.test.ts:314", "shortDescription": {"text": "Commented-code block (7 lines) in lib/availability.test.ts:314"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8e7f782c131caa55", "name": "Commented-code block (5 lines) in lib/account-verification.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in lib/account-verification.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3112f46408826f3b", "name": "Commented-code block (7 lines) in lib/structure-membership.ts:6", "shortDescription": {"text": "Commented-code block (7 lines) in lib/structure-membership.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-f48487982a81f16d", "name": "Commented-code block (7 lines) in lib/rl-identity.ts:4", "shortDescription": {"text": "Commented-code block (7 lines) in lib/rl-identity.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-f7355370abc1f4c7", "name": "Commented-code block (6 lines) in lib/rl-platform.ts:78", "shortDescription": {"text": "Commented-code block (6 lines) in lib/rl-platform.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-1f2b169dd1a1d5f7", "name": "Commented-code block (6 lines) in lib/trackmania-sync.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in lib/trackmania-sync.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ef54a60596d2d897", "name": "Commented-code block (5 lines) in context/AuthContext.tsx:67", "shortDescription": {"text": "Commented-code block (5 lines) in context/AuthContext.tsx: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-dfd290e3fd6dcda8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 context/AuthContext.tsx:63", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 context/AuthContext.tsx:63"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/19819"}, "properties": {"repository": "skypi11/springs-hub", "repoUrl": "https://github.com/skypi11/springs-hub", "branch": "main"}, "results": [{"ruleId": "scanner-bead75b0f9233e05", "level": "none", "message": {"text": "No API endpoints detected"}, "properties": {"repobilityId": "0f8bb852027c38f8", "scanner": "scanner-primary", "fingerprint": "bead75b0f9233e05", "layer": "api", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-79be77b2e13769e8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/test-r2-connection.ts:21"}, "properties": {"repobilityId": "7e00c4782a55c631", "scanner": "scanner-primary", "fingerprint": "79be77b2e13769e8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3d24b19dcb3ed8dd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/layout/Sidebar.tsx:378"}, "properties": {"repobilityId": "ed7c8f2901f0ddbb", "scanner": "scanner-primary", "fingerprint": "3d24b19dcb3ed8dd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f6f990dcf5573c5f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/structure/StaffGamesScopeModal.tsx:150"}, "properties": {"repobilityId": "2ab5f9747897f47d", "scanner": "scanner-primary", "fingerprint": "f6f990dcf5573c5f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4a66510509f247d1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/structure/PlayerStructureView.tsx:499"}, "properties": {"repobilityId": "8d433255cdc74757", "scanner": "scanner-primary", "fingerprint": "4a66510509f247d1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6b606fb9c0ee61a1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/structure/CrossTeamTodosPanel.tsx:702"}, "properties": {"repobilityId": "2ad4c7002a7bbce8", "scanner": "scanner-primary", "fingerprint": "6b606fb9c0ee61a1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e783cbbded308276", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/verification/VerifyAccountNudge.tsx:225"}, "properties": {"repobilityId": "710cb6b08f9a5b4c", "scanner": "scanner-primary", "fingerprint": "e783cbbded308276", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ccb85ebf386396f3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/ui/DateTimePicker.tsx:211"}, "properties": {"repobilityId": "21ee4a7fc0f8a6c6", "scanner": "scanner-primary", "fingerprint": "ccb85ebf386396f3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-87ddae3ac5f27c89", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/ui/CommandPalette.tsx:326"}, "properties": {"repobilityId": "58186127c434667d", "scanner": "scanner-primary", "fingerprint": "87ddae3ac5f27c89", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c9c2fb86c69d5017", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/ui/PublicPreviewFrame.tsx:42"}, "properties": {"repobilityId": "9355e03b9ed51b0c", "scanner": "scanner-primary", "fingerprint": "c9c2fb86c69d5017", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ecf61f1b52b45d7e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/ui/Breadcrumbs.tsx:37"}, "properties": {"repobilityId": "f0dbe0e26b8ff7a9", "scanner": "scanner-primary", "fingerprint": "ecf61f1b52b45d7e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a609dd4b85b38aee", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/ui/NotificationsBell.tsx:269"}, "properties": {"repobilityId": "c4cd1c8c8b71511f", "scanner": "scanner-primary", "fingerprint": "a609dd4b85b38aee", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ed4932da179d9bc3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/home/ConnectedDashboard.tsx:167"}, "properties": {"repobilityId": "fa06baceefdc5352", "scanner": "scanner-primary", "fingerprint": "ed4932da179d9bc3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-205fd1c1f54cd0d7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/AdminUserRef.tsx:85"}, "properties": {"repobilityId": "e4763ffa44981bf5", "scanner": "scanner-primary", "fingerprint": "205fd1c1f54cd0d7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b91c668c3572e477", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 components/onboarding/OnboardingWizard.tsx:112"}, "properties": {"repobilityId": "7116b1df891fef5d", "scanner": "scanner-primary", "fingerprint": "b91c668c3572e477", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-97d10f36a436437f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/replays/ReplayList.tsx:218"}, "properties": {"repobilityId": "b5dce17bf28b5a5f", "scanner": "scanner-primary", "fingerprint": "97d10f36a436437f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-70cfb33649f1883d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/replays/ReplayStatsDrawer.tsx:170"}, "properties": {"repobilityId": "cce9a6e58f4547ff", "scanner": "scanner-primary", "fingerprint": "70cfb33649f1883d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-acb53a0072813f9e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/documents/DocumentsExplorer.tsx:538"}, "properties": {"repobilityId": "9d63c27193be85b1", "scanner": "scanner-primary", "fingerprint": "acb53a0072813f9e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-63fec78f69839b56", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/EventDetailModal.tsx:262"}, "properties": {"repobilityId": "ce667800fedd6d5b", "scanner": "scanner-primary", "fingerprint": "63fec78f69839b56", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-77db932137ae653c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/WeekView.tsx:488"}, "properties": {"repobilityId": "2be82dc8f5dedda8", "scanner": "scanner-primary", "fingerprint": "77db932137ae653c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e8a1fa97f9a2cfd3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/EventCard.tsx:101"}, "properties": {"repobilityId": "eff904bacccefd42", "scanner": "scanner-primary", "fingerprint": "e8a1fa97f9a2cfd3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b20fc2eaca5e66ac", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/MiniMonthWidget.tsx:172"}, "properties": {"repobilityId": "7f847250dab57422", "scanner": "scanner-primary", "fingerprint": "b20fc2eaca5e66ac", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-21b9fb61d431fa15", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/TodoConfigFields.tsx:90"}, "properties": {"repobilityId": "2a00de40cc87bed7", "scanner": "scanner-primary", "fingerprint": "21b9fb61d431fa15", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-16bd8432c271b320", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/CalendarSection.tsx:374"}, "properties": {"repobilityId": "a175b99f44de26b9", "scanner": "scanner-primary", "fingerprint": "16bd8432c271b320", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1dee7a5d4e86f471", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/TeamDetailDrawer.tsx:128"}, "properties": {"repobilityId": "c274ec84bbc9daef", "scanner": "scanner-primary", "fingerprint": "1dee7a5d4e86f471", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e15e7240ae25dca7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/MonthView.tsx:244"}, "properties": {"repobilityId": "c22ae7f2d1da7b02", "scanner": "scanner-primary", "fingerprint": "e15e7240ae25dca7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f66183416c03dc2d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/PlayerEventDrawer.tsx:359"}, "properties": {"repobilityId": "a57c7b1321159b45", "scanner": "scanner-primary", "fingerprint": "f66183416c03dc2d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-83f9e3b4e7bf111e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/TeamFilterDropdown.tsx:118"}, "properties": {"repobilityId": "940c20c92bd46903", "scanner": "scanner-primary", "fingerprint": "83f9e3b4e7bf111e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c1af6cc5fd506332", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/EventFormModal.tsx:657"}, "properties": {"repobilityId": "0c8cf5bb98681d8b", "scanner": "scanner-primary", "fingerprint": "c1af6cc5fd506332", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-44c3b5ab18ceca8d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/StaffAvailabilityView.tsx:607"}, "properties": {"repobilityId": "6771de451159c1ab", "scanner": "scanner-primary", "fingerprint": "44c3b5ab18ceca8d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8c97462f93ee0dc0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/TodoTemplatesManager.tsx:421"}, "properties": {"repobilityId": "b3c78e05a43c4c71", "scanner": "scanner-primary", "fingerprint": "8c97462f93ee0dc0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a1078293274e19cd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/StepResponseForm.tsx:252"}, "properties": {"repobilityId": "d6643fc0a62c1e9b", "scanner": "scanner-primary", "fingerprint": "a1078293274e19cd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0aae7b3c2257b0c0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/TeamAvailabilityView.tsx:990"}, "properties": {"repobilityId": "8fbc606c6ddd6860", "scanner": "scanner-primary", "fingerprint": "0aae7b3c2257b0c0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-dc61ec173d3499c6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/calendar/TeamTodosPanel.tsx:719"}, "properties": {"repobilityId": "d17f4d0cf05a6fc4", "scanner": "scanner-primary", "fingerprint": "dc61ec173d3499c6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5103bc69cc3d7380", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/seo/JsonLd.tsx:10"}, "properties": {"repobilityId": "5a214a5e3e2f96be", "scanner": "scanner-primary", "fingerprint": "5103bc69cc3d7380", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-8770d2501379cf8b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/settings/page.tsx:725"}, "properties": {"repobilityId": "a007395f5fe452fc", "scanner": "scanner-primary", "fingerprint": "8770d2501379cf8b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b08341b3706f8da4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/community/page.tsx:279"}, "properties": {"repobilityId": "e0d8b8b1e6965d20", "scanner": "scanner-primary", "fingerprint": "b08341b3706f8da4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-226e1fc2c0c27d42", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/community/my-structure/discord-config-block.tsx:57"}, "properties": {"repobilityId": "84e14d016ed67cf2", "scanner": "scanner-primary", "fingerprint": "226e1fc2c0c27d42", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-42cf87a2168d73cf", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/community/my-structure/components.tsx:135"}, "properties": {"repobilityId": "51b7ab1aa10b6dcd", "scanner": "scanner-primary", "fingerprint": "42cf87a2168d73cf", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-705d992ad7b6089d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/community/my-structure/tabs/members-tab.tsx:120"}, "properties": {"repobilityId": "5828769ad45db060", "scanner": "scanner-primary", "fingerprint": "705d992ad7b6089d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fb8fc31748b7fd41", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/community/my-structure/tabs/recruitment-tab.tsx:209"}, "properties": {"repobilityId": "fb08a6651846d24f", "scanner": "scanner-primary", "fingerprint": "fb8fc31748b7fd41", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d68dd5d32597b88d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/community/my-structure/tabs/general-tab.tsx:201"}, "properties": {"repobilityId": "d36f40d0b20d1ff4", "scanner": "scanner-primary", "fingerprint": "d68dd5d32597b88d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a2f1c21b455e1ce1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/community/structure/[id]/page.tsx:189"}, "properties": {"repobilityId": "074510bf3bcc952c", "scanner": "scanner-primary", "fingerprint": "a2f1c21b455e1ce1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0e4dfcaed5869f94", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/community/players/page.tsx:745"}, "properties": {"repobilityId": "57334c47b2ddd52e", "scanner": "scanner-primary", "fingerprint": "0e4dfcaed5869f94", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c17c07711926525f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/page.tsx:298"}, "properties": {"repobilityId": "9c2c16c32be292da", "scanner": "scanner-primary", "fingerprint": "c17c07711926525f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bc078e5559ac08d5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/users/page.tsx:362"}, "properties": {"repobilityId": "ee3b4cacbc1674f1", "scanner": "scanner-primary", "fingerprint": "bc078e5559ac08d5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-16925daeab48f56f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/structures/page.tsx:754"}, "properties": {"repobilityId": "a306adb322c70927", "scanner": "scanner-primary", "fingerprint": "16925daeab48f56f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-126c09bb5eeb4caf", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/teams/page.tsx:350"}, "properties": {"repobilityId": "f8f48b8b5eb000e9", "scanner": "scanner-primary", "fingerprint": "126c09bb5eeb4caf", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5b2695a366445893", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/messages/page.tsx:181"}, "properties": {"repobilityId": "5039a0da59d6fc8e", "scanner": "scanner-primary", "fingerprint": "5b2695a366445893", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9b9d1421be254ef8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/calendar/page.tsx:806"}, "properties": {"repobilityId": "e99961628723a6ad", "scanner": "scanner-primary", "fingerprint": "9b9d1421be254ef8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d254864315c25b7e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/profile/[id]/page.tsx:1023"}, "properties": {"repobilityId": "f8c40bffa70e20e8", "scanner": "scanner-primary", "fingerprint": "d254864315c25b7e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4dc69179c36b7f6a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/guide/page.tsx:264"}, "properties": {"repobilityId": "7d5a61f6a6be465a", "scanner": "scanner-primary", "fingerprint": "4dc69179c36b7f6a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b952c698fa59e705", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/calendar/page.tsx:465"}, "properties": {"repobilityId": "621a973e4f61084a", "scanner": "scanner-primary", "fingerprint": "b952c698fa59e705", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-82bbf842e0c9e0a7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/valorant-henrikdev.ts:48"}, "properties": {"repobilityId": "ef6cc692f761eb81", "scanner": "scanner-primary", "fingerprint": "82bbf842e0c9e0a7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c0196ce4f56ea601", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 lib/discord-bot.ts:546"}, "properties": {"repobilityId": "7cd88c3ea4dc9285", "scanner": "scanner-primary", "fingerprint": "c0196ce4f56ea601", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-b51bdca56914e440", "level": "error", "message": {"text": "Possible secret in lib/firebase.ts"}, "properties": {"repobilityId": "62be8f99bc88c5f1", "scanner": "scanner-primary", "fingerprint": "b51bdca56914e440", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/firebase.ts"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-c23afc4b48605434", "level": "note", "message": {"text": "Very large file: components/calendar/WeekView.tsx (1108 lines)"}, "properties": {"repobilityId": "4ff6214503a27368", "scanner": "scanner-primary", "fingerprint": "c23afc4b48605434", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-44b282100aa0fa34", "level": "note", "message": {"text": "Very large file: components/calendar/EventFormModal.tsx (1058 lines)"}, "properties": {"repobilityId": "cf197def18e0bd32", "scanner": "scanner-primary", "fingerprint": "44b282100aa0fa34", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a58be228dd253039", "level": "note", "message": {"text": "Very large file: components/calendar/TeamTodosPanel.tsx (1262 lines)"}, "properties": {"repobilityId": "401125c57709d8b4", "scanner": "scanner-primary", "fingerprint": "a58be228dd253039", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-804ce8d886eeb9d0", "level": "note", "message": {"text": "Very large file: app/settings/page.tsx (2375 lines)"}, "properties": {"repobilityId": "fc63d12a94bbefd7", "scanner": "scanner-primary", "fingerprint": "804ce8d886eeb9d0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4330b0ff0e16f8e3", "level": "note", "message": {"text": "Very large file: app/community/my-structure/page.tsx (1939 lines)"}, "properties": {"repobilityId": "d2c84729fc7ad0d4", "scanner": "scanner-primary", "fingerprint": "4330b0ff0e16f8e3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-454665d1d6122bbc", "level": "note", "message": {"text": "Very large file: app/community/my-structure/tabs/teams-tab.tsx (1102 lines)"}, "properties": {"repobilityId": "a6b29d1d98c463bd", "scanner": "scanner-primary", "fingerprint": "454665d1d6122bbc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4ab260101361583f", "level": "note", "message": {"text": "Very large file: app/community/structure/[id]/page.tsx (1340 lines)"}, "properties": {"repobilityId": "27b8ab6aa26dd879", "scanner": "scanner-primary", "fingerprint": "4ab260101361583f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-270decef6723b9f7", "level": "note", "message": {"text": "Very large file: app/community/players/page.tsx (1265 lines)"}, "properties": {"repobilityId": "9b686e4b5e2ee2fe", "scanner": "scanner-primary", "fingerprint": "270decef6723b9f7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f95b8c0ff006cd2b", "level": "note", "message": {"text": "Very large file: app/admin/users/page.tsx (961 lines)"}, "properties": {"repobilityId": "47b61298e38fff41", "scanner": "scanner-primary", "fingerprint": "f95b8c0ff006cd2b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-77805fa2a9b64412", "level": "note", "message": {"text": "Very large file: app/profile/[id]/page.tsx (1329 lines)"}, "properties": {"repobilityId": "18ea5e191983dbc2", "scanner": "scanner-primary", "fingerprint": "77805fa2a9b64412", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-1d5c69f6b9af62d4", "level": "note", "message": {"text": "57 TODO/FIXME markers"}, "properties": {"repobilityId": "4b38c118003e07d2", "scanner": "scanner-primary", "fingerprint": "1d5c69f6b9af62d4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["maintenance"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "9730acf65dc564af", "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": "c7a0509f40065485", "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": "c627e63967e97b68", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "6697586c8abb4ab5", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "903d0a0e35bb4a27", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "36b4211ad59f74b5", "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": "e5f844218db4d2ab", "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": "ab1abaadce4dce74", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-e725d2ab884fbd49", "level": "note", "message": {"text": "Multiple root agent instruction files without precedence"}, "properties": {"repobilityId": "1953db6c89508d22", "scanner": "scanner-primary", "fingerprint": "e725d2ab884fbd49", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["agent-instructions", "governance"]}}, {"ruleId": "scanner-0f9a2f6e65a489bd", "level": "none", "message": {"text": "Commented-code block (5 lines) in types/index.ts:26"}, "properties": {"repobilityId": "57fab0b1137df39c", "scanner": "scanner-primary", "fingerprint": "0f9a2f6e65a489bd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c78c0672feaa8a83", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/backfill-structure-per-game.mjs:1"}, "properties": {"repobilityId": "3185b647db80444c", "scanner": "scanner-primary", "fingerprint": "c78c0672feaa8a83", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a815cab06d65a4f4", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/backfill-structure-slugs.mjs:5"}, "properties": {"repobilityId": "dd42f1dba80b2b66", "scanner": "scanner-primary", "fingerprint": "a815cab06d65a4f4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0dcc8e9bf38c5f87", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/download-rl-rank-icons.mjs:50"}, "properties": {"repobilityId": "3716d77368987355", "scanner": "scanner-primary", "fingerprint": "0dcc8e9bf38c5f87", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4b87711a263072c0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/notify-valorant-purged.mjs:75"}, "properties": {"repobilityId": "b07900e8fd515334", "scanner": "scanner-primary", "fingerprint": "4b87711a263072c0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-46389e2e5683c2cb", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/diagnose-verification.mjs:3"}, "properties": {"repobilityId": "83475db93f3bb9ea", "scanner": "scanner-primary", "fingerprint": "46389e2e5683c2cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b3adc6bb4997183b", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/add-announce-template.mjs:3"}, "properties": {"repobilityId": "6e823b3f00eb4c67", "scanner": "scanner-primary", "fingerprint": "b3adc6bb4997183b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d7f97a0300756624", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/post-aedral-patch-notes.mjs:4"}, "properties": {"repobilityId": "936bc606af0e1cab", "scanner": "scanner-primary", "fingerprint": "d7f97a0300756624", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-26e6e0931836ddee", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/post-aedral-patch-notes.mjs:38"}, "properties": {"repobilityId": "1cafd9720ee705f8", "scanner": "scanner-primary", "fingerprint": "26e6e0931836ddee", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-70f88152fc2fa653", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/cleanup-valorant-declared-ranks.mjs:3"}, "properties": {"repobilityId": "de86345195829e4f", "scanner": "scanner-primary", "fingerprint": "70f88152fc2fa653", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fa573cc7061a03d5", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/backfill-user-slugs.mjs:8"}, "properties": {"repobilityId": "f285341a3e60b776", "scanner": "scanner-primary", "fingerprint": "fa573cc7061a03d5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dbc5ad60c4a3006e", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/migrate-aedral-admins.mjs:3"}, "properties": {"repobilityId": "744b150cad83cfcd", "scanner": "scanner-primary", "fingerprint": "dbc5ad60c4a3006e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8324462da1931b19", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/generate-png-derivatives.mjs:1"}, "properties": {"repobilityId": "60c7a0ba7d514046", "scanner": "scanner-primary", "fingerprint": "8324462da1931b19", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6e8121470c4d5830", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/settings/SharingSection.tsx:139"}, "properties": {"repobilityId": "3020c39ae1806ffb", "scanner": "scanner-primary", "fingerprint": "6e8121470c4d5830", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fabe6b729510be34", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/layout/Sidebar.tsx:29"}, "properties": {"repobilityId": "f83f66d669919fdc", "scanner": "scanner-primary", "fingerprint": "fabe6b729510be34", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-294a0d45149c87e2", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/brand/AedralLogo.tsx:10"}, "properties": {"repobilityId": "a6efafe119f718b9", "scanner": "scanner-primary", "fingerprint": "294a0d45149c87e2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b3b5d4214193f9e3", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/structure/BallchasingAutoParseToggle.tsx:9"}, "properties": {"repobilityId": "0dc10644ee35c93f", "scanner": "scanner-primary", "fingerprint": "b3b5d4214193f9e3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab2a550f8126a6bb", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/structure/StaffGamesScopeModal.tsx:106"}, "properties": {"repobilityId": "b51115aba0409725", "scanner": "scanner-primary", "fingerprint": "ab2a550f8126a6bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-13707bb0df1d56fc", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/structure/CrossTeamTodosPanel.tsx:3"}, "properties": {"repobilityId": "0f701838ae1b9bb0", "scanner": "scanner-primary", "fingerprint": "13707bb0df1d56fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cad05c57c3c00713", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/verification/VerifyAccountNudge.tsx:24"}, "properties": {"repobilityId": "a6c921f445786244", "scanner": "scanner-primary", "fingerprint": "cad05c57c3c00713", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-caea1710e53c56f9", "level": "none", "message": {"text": "Commented-code block (9 lines) in components/players/ValorantIdentityBadge.tsx:1"}, "properties": {"repobilityId": "ccf56a66c084248e", "scanner": "scanner-primary", "fingerprint": "caea1710e53c56f9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4edcf198a751dd58", "level": "none", "message": {"text": "Commented-code block (9 lines) in components/players/RLIdentityBadge.tsx:1"}, "properties": {"repobilityId": "76fdcfbf08ab698e", "scanner": "scanner-primary", "fingerprint": "4edcf198a751dd58", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67e9023e1c334918", "level": "none", "message": {"text": "Commented-code block (12 lines) in components/analytics/PostHogProvider.tsx:7"}, "properties": {"repobilityId": "aa49c572aade4534", "scanner": "scanner-primary", "fingerprint": "67e9023e1c334918", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f06b5a8f0beb5084", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/analytics/AnalyticsConsentBanner.tsx:7"}, "properties": {"repobilityId": "cd5b4c231ef329cc", "scanner": "scanner-primary", "fingerprint": "f06b5a8f0beb5084", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2e2dacbb783d3b71", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/ui/DateTimePicker.tsx:8"}, "properties": {"repobilityId": "efacf92ee704cf60", "scanner": "scanner-primary", "fingerprint": "2e2dacbb783d3b71", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6b3e7dee2eb1bf3", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/ui/ShareStoryButton.tsx:74"}, "properties": {"repobilityId": "5e07c211b4831797", "scanner": "scanner-primary", "fingerprint": "d6b3e7dee2eb1bf3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c3c009a81a8371e6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/admin/ImpersonationBanner.tsx:54"}, "properties": {"repobilityId": "5f8b09e11ca05c43", "scanner": "scanner-primary", "fingerprint": "c3c009a81a8371e6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b4625921e8587d2e", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/admin/AdminUserRef.tsx:3"}, "properties": {"repobilityId": "b788e50af6779f13", "scanner": "scanner-primary", "fingerprint": "b4625921e8587d2e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-768efb2ca7a540cb", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/landing/VisitorLanding.tsx:73"}, "properties": {"repobilityId": "33f93c74239c2d30", "scanner": "scanner-primary", "fingerprint": "768efb2ca7a540cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-40abcc25c4f2ebf2", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/replays/ReplayStatsDrawer.tsx:199"}, "properties": {"repobilityId": "55135ba297816f36", "scanner": "scanner-primary", "fingerprint": "40abcc25c4f2ebf2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-91e3012e16e0f2ee", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/calendar/EventDetailModal.tsx:104"}, "properties": {"repobilityId": "de3f2aec613fed36", "scanner": "scanner-primary", "fingerprint": "91e3012e16e0f2ee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c89a2362f8d1915b", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/calendar/WeekView.tsx:5"}, "properties": {"repobilityId": "eb2de5aff95ddfd9", "scanner": "scanner-primary", "fingerprint": "c89a2362f8d1915b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-338bab42ca5812e1", "level": "none", "message": {"text": "Commented-code block (9 lines) in components/calendar/PlayerEventDrawer.tsx:81"}, "properties": {"repobilityId": "8b7a68d9fdca27b4", "scanner": "scanner-primary", "fingerprint": "338bab42ca5812e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-19aee5bcf1fce976", "level": "none", "message": {"text": "Commented-code block (11 lines) in components/calendar/StaffAvailabilityView.tsx:5"}, "properties": {"repobilityId": "3d043e9f947d8295", "scanner": "scanner-primary", "fingerprint": "19aee5bcf1fce976", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d27b38fed7425e7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/calendar/StepResponseForm.tsx:100"}, "properties": {"repobilityId": "fc89f11b10fb2195", "scanner": "scanner-primary", "fingerprint": "6d27b38fed7425e7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6d488e2c5ba08a03", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/calendar/TeamAvailabilityView.tsx:204"}, "properties": {"repobilityId": "f0b8c599d193b348", "scanner": "scanner-primary", "fingerprint": "6d488e2c5ba08a03", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab27be3129950711", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/robots.ts:5"}, "properties": {"repobilityId": "65780261a962b1e5", "scanner": "scanner-primary", "fingerprint": "ab27be3129950711", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ec79b8b3bd04b8c7", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/sitemap.ts:7"}, "properties": {"repobilityId": "d4cd13cc5ac0be96", "scanner": "scanner-primary", "fingerprint": "ec79b8b3bd04b8c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-09f92866323dab7d", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/settings/page.tsx:460"}, "properties": {"repobilityId": "3b919d894549e263", "scanner": "scanner-primary", "fingerprint": "09f92866323dab7d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1c176dee3666681", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/auth/discord/callback/route.ts:105"}, "properties": {"repobilityId": "0d4f270434f8e8b5", "scanner": "scanner-primary", "fingerprint": "f1c176dee3666681", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-126525e7200a9701", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/auth/discord/callback/route.ts:71"}, "properties": {"repobilityId": "78d7efc52caa2d88", "scanner": "scanner-primary", "fingerprint": "126525e7200a9701", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a5f816cbf9401c09", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/auth/discord/session/route.ts:3"}, "properties": {"repobilityId": "d14f6de86169188f", "scanner": "scanner-primary", "fingerprint": "a5f816cbf9401c09", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-49b52f8e40feb232", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/auth/discord/start/route.ts:35"}, "properties": {"repobilityId": "c7d1c28ebd4a2508", "scanner": "scanner-primary", "fingerprint": "49b52f8e40feb232", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-53fda5f7ab357539", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/auth/steam/callback/route.ts:8"}, "properties": {"repobilityId": "aeb10fb0f91ae7c3", "scanner": "scanner-primary", "fingerprint": "53fda5f7ab357539", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0744805c12e3b275", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/auth/steam/start/route.ts:11"}, "properties": {"repobilityId": "9f9b6f248c793f89", "scanner": "scanner-primary", "fingerprint": "0744805c12e3b275", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6baf550adcf8e707", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/players/route.ts:15"}, "properties": {"repobilityId": "6077ea61592753d4", "scanner": "scanner-primary", "fingerprint": "6baf550adcf8e707", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96c86a258ccc0fed", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/changelog/route.ts:6"}, "properties": {"repobilityId": "7772acf568c28e6e", "scanner": "scanner-primary", "fingerprint": "96c86a258ccc0fed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4fc9e1ee096c4c9d", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/changelog/latest/route.ts:6"}, "properties": {"repobilityId": "166849a2fc9f54b3", "scanner": "scanner-primary", "fingerprint": "4fc9e1ee096c4c9d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a8b8ca5d4894c5ec", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/structures/route.ts:15"}, "properties": {"repobilityId": "6056b595516fd9a0", "scanner": "scanner-primary", "fingerprint": "a8b8ca5d4894c5ec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-18441c8d115a4b9f", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/structures/transfer/route.ts:15"}, "properties": {"repobilityId": "df6af6953baa8430", "scanner": "scanner-primary", "fingerprint": "18441c8d115a4b9f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d4b472891dfbe989", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/structures/teams/route.ts:198"}, "properties": {"repobilityId": "60b2df66852e0df9", "scanner": "scanner-primary", "fingerprint": "d4b472891dfbe989", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1b9ef5fad7ac977e", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/structures/teams/availability/route.ts:61"}, "properties": {"repobilityId": "117ccddeda431010", "scanner": "scanner-primary", "fingerprint": "1b9ef5fad7ac977e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b62c4e47618e94c2", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/api/structures/[id]/staff-availability/route.ts:16"}, "properties": {"repobilityId": "f7421fb223778c9f", "scanner": "scanner-primary", "fingerprint": "b62c4e47618e94c2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-46a9bccc3d5fd9ab", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/structures/[id]/events/route.ts:436"}, "properties": {"repobilityId": "3d29d9ed7433c58d", "scanner": "scanner-primary", "fingerprint": "46a9bccc3d5fd9ab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-75a28240adfbbba0", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/structures/[id]/events/[eventId]/replay-stats-agg/route.ts:16"}, "properties": {"repobilityId": "16e89035a88fc2e9", "scanner": "scanner-primary", "fingerprint": "75a28240adfbbba0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-20425be46305cb1b", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/structures/[id]/events/[eventId]/lineup/route.ts:9"}, "properties": {"repobilityId": "2b770e6fcc47d8f4", "scanner": "scanner-primary", "fingerprint": "20425be46305cb1b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c4767ec5ec2c5d6e", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/structures/[id]/todos/route.ts:78"}, "properties": {"repobilityId": "803f789016851df8", "scanner": "scanner-primary", "fingerprint": "c4767ec5ec2c5d6e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a4f77cecd5b8135c", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/api/structures/[id]/todos/[todoId]/route.ts:23"}, "properties": {"repobilityId": "937428c7d6b7c12a", "scanner": "scanner-primary", "fingerprint": "a4f77cecd5b8135c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-311878b54ea103d4", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/structures/[id]/todos/overview/route.ts:20"}, "properties": {"repobilityId": "35316df8273a06fb", "scanner": "scanner-primary", "fingerprint": "311878b54ea103d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-194e02818a5b240d", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/structures/[id]/replays/route.ts:54"}, "properties": {"repobilityId": "9f28eea098464b3f", "scanner": "scanner-primary", "fingerprint": "194e02818a5b240d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6f30b6fac73c07c4", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/structures/[id]/replays/[replayId]/route.ts:116"}, "properties": {"repobilityId": "82c18b92cd06c166", "scanner": "scanner-primary", "fingerprint": "6f30b6fac73c07c4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9477e53fc3d19747", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/structures/[id]/replays/[replayId]/download/route.ts:14"}, "properties": {"repobilityId": "347d910c606d0579", "scanner": "scanner-primary", "fingerprint": "9477e53fc3d19747", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8dcdde703c1d45ea", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/structures/[id]/replays/[replayId]/stats/route.ts:26"}, "properties": {"repobilityId": "2edc84430b9948ab", "scanner": "scanner-primary", "fingerprint": "8dcdde703c1d45ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6fdd20f298e2e060", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/structures/[id]/documents/upload-sensitive/route.ts:20"}, "properties": {"repobilityId": "31c22ddfeb0de99c", "scanner": "scanner-primary", "fingerprint": "6fdd20f298e2e060", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f38b03ef458824f", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/structures/[id]/documents/[docId]/download/route.ts:12"}, "properties": {"repobilityId": "d6536e3a5df8d51d", "scanner": "scanner-primary", "fingerprint": "0f38b03ef458824f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-341c064a0d6066f2", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/structures/[id]/todo-templates/route.ts:21"}, "properties": {"repobilityId": "493505342eeb6a5d", "scanner": "scanner-primary", "fingerprint": "341c064a0d6066f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7ce01c9454a4eb7a", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/structures/[id]/todo-templates/[templateId]/route.ts:12"}, "properties": {"repobilityId": "e6a71ea1ff8cb5d3", "scanner": "scanner-primary", "fingerprint": "7ce01c9454a4eb7a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fa0253029d10d062", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/structures/my-player/route.ts:7"}, "properties": {"repobilityId": "60db78fa05e8fbad", "scanner": "scanner-primary", "fingerprint": "fa0253029d10d062", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ff2d6a897c975015", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/structures/my/route.ts:52"}, "properties": {"repobilityId": "378d85988c64969b", "scanner": "scanner-primary", "fingerprint": "ff2d6a897c975015", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-81b600aac4b1a9be", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/api/structures/request/route.ts:105"}, "properties": {"repobilityId": "4d5871d74cced1a2", "scanner": "scanner-primary", "fingerprint": "81b600aac4b1a9be", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e452ef3513ff111c", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/tm-stats/route.ts:8"}, "properties": {"repobilityId": "c964cb32b037762f", "scanner": "scanner-primary", "fingerprint": "e452ef3513ff111c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e173622b32b226c4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/tm-stats/route.ts:67"}, "properties": {"repobilityId": "def2a6454da7886d", "scanner": "scanner-primary", "fingerprint": "e173622b32b226c4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ce294ace29c772ff", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/users/route.ts:120"}, "properties": {"repobilityId": "c4aa7cd3151894c3", "scanner": "scanner-primary", "fingerprint": "ce294ace29c772ff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-25a9ea8613cb7bf4", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/api/admin/users/mass/route.ts:1"}, "properties": {"repobilityId": "90f0770daadbc308", "scanner": "scanner-primary", "fingerprint": "25a9ea8613cb7bf4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d846b6d4ea37e972", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/api/admin/rank-reports/[id]/route.ts:5"}, "properties": {"repobilityId": "d742867128781494", "scanner": "scanner-primary", "fingerprint": "d846b6d4ea37e972", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e262e09b14b36fb5", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/admin/audit/route.ts:23"}, "properties": {"repobilityId": "76a667bba923cde8", "scanner": "scanner-primary", "fingerprint": "e262e09b14b36fb5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-39d6e98fdc3313db", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/rl-link-changes/[id]/route.ts:1"}, "properties": {"repobilityId": "ffdafe6475430545", "scanner": "scanner-primary", "fingerprint": "39d6e98fdc3313db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-91500637bcb1bcf1", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/admin/discord-broadcast/route.ts:8"}, "properties": {"repobilityId": "c1e94189f11a81c0", "scanner": "scanner-primary", "fingerprint": "91500637bcb1bcf1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-40dac970e9e26821", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/admin/discord-broadcast/route.ts:50"}, "properties": {"repobilityId": "26b63d4a4ddda770", "scanner": "scanner-primary", "fingerprint": "40dac970e9e26821", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5ad4c37100609577", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/api/admin/impersonate/stop/route.ts:12"}, "properties": {"repobilityId": "7ffe7dbc8e8a81f1", "scanner": "scanner-primary", "fingerprint": "5ad4c37100609577", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7561d8283f1063e3", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/backfill-counters/route.ts:7"}, "properties": {"repobilityId": "15e53e227698f866", "scanner": "scanner-primary", "fingerprint": "7561d8283f1063e3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-984cbf6c4a26f3f4", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/messages/send/route.ts:6"}, "properties": {"repobilityId": "dcadfc198fbc9fc2", "scanner": "scanner-primary", "fingerprint": "984cbf6c4a26f3f4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a988806b75b3b54f", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/admin/valorant-link-changes/[id]/route.ts:1"}, "properties": {"repobilityId": "5b2f6d7d066c5fc2", "scanner": "scanner-primary", "fingerprint": "a988806b75b3b54f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8cbe1e0b42d86534", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/rl-stats/route.ts:14"}, "properties": {"repobilityId": "9e2f616e7d6d80e9", "scanner": "scanner-primary", "fingerprint": "8cbe1e0b42d86534", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7714eebe90b1f581", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/discord/install/route.ts:9"}, "properties": {"repobilityId": "119f7f1c6f1a186a", "scanner": "scanner-primary", "fingerprint": "7714eebe90b1f581", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b9af40f6bb92a7a2", "level": "note", "message": {"text": "Legacy-named symbol `crypt_legacy` in app/api/dev/seed/route.ts:121"}, "properties": {"repobilityId": "6ec0e5f7e885d32e", "scanner": "scanner-primary", "fingerprint": "b9af40f6bb92a7a2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-696c0f6ae3fb9daa", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/dev/seed/route.ts:6"}, "properties": {"repobilityId": "1f27d022442df5ff", "scanner": "scanner-primary", "fingerprint": "696c0f6ae3fb9daa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7f21ef29aaabf14", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/cron/expire-invitations/route.ts:23"}, "properties": {"repobilityId": "f543ca7a150d8673", "scanner": "scanner-primary", "fingerprint": "a7f21ef29aaabf14", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-060650792a88b95e", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/cron/sync-valorant-ranks/route.ts:11"}, "properties": {"repobilityId": "da40b0cdf46ddd11", "scanner": "scanner-primary", "fingerprint": "060650792a88b95e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f2abec3f3e9f9ab0", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/cron/todos-reminders/route.ts:9"}, "properties": {"repobilityId": "bdf4e74070ffe770", "scanner": "scanner-primary", "fingerprint": "f2abec3f3e9f9ab0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ac1fcff8db0f85f3", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/api/account/delete/route.ts:8"}, "properties": {"repobilityId": "c701c2feb6a36729", "scanner": "scanner-primary", "fingerprint": "ac1fcff8db0f85f3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a3e242ad72761dea", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/api/profile/route.ts:102"}, "properties": {"repobilityId": "cda4a49b639438ff", "scanner": "scanner-primary", "fingerprint": "a3e242ad72761dea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-10e9de2ca5f7d52b", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/profile/og-display/route.ts:17"}, "properties": {"repobilityId": "7edd1cf92fa3c83d", "scanner": "scanner-primary", "fingerprint": "10e9de2ca5f7d52b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c568b44b754517c8", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/profile/mark-changelog-seen/route.ts:7"}, "properties": {"repobilityId": "396e7c2f3cfd91b6", "scanner": "scanner-primary", "fingerprint": "c568b44b754517c8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d834736d93924458", "level": "none", "message": {"text": "Commented-code block (11 lines) in app/api/profile/[uid]/rank-report/route.ts:9"}, "properties": {"repobilityId": "5c9707358db11009", "scanner": "scanner-primary", "fingerprint": "d834736d93924458", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b681820574b4d5f8", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/profile/rl-steam-link/change-request/route.ts:1"}, "properties": {"repobilityId": "6e14ca45eb6c2c1b", "scanner": "scanner-primary", "fingerprint": "b681820574b4d5f8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2475d9023cf5785b", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/profile/refresh-discord-connections/route.ts:3"}, "properties": {"repobilityId": "2c4fda3d158782e5", "scanner": "scanner-primary", "fingerprint": "2475d9023cf5785b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bb4e2c6ab98fa541", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/profile/valorant-link/change-request/route.ts:1"}, "properties": {"repobilityId": "e88dd95f86dbadae", "scanner": "scanner-primary", "fingerprint": "bb4e2c6ab98fa541", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d5c181ae5c56750", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/profile/history/route.ts:17"}, "properties": {"repobilityId": "aae4bc6b146fbc4d", "scanner": "scanner-primary", "fingerprint": "0d5c181ae5c56750", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-decce874e4a91397", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/profile/rl-epic-link/route.ts:1"}, "properties": {"repobilityId": "9229a9df1cb97708", "scanner": "scanner-primary", "fingerprint": "decce874e4a91397", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-feb40a528d0d4178", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/profile/rl-epic-link/change-request/route.ts:1"}, "properties": {"repobilityId": "b576c886aa849bd7", "scanner": "scanner-primary", "fingerprint": "feb40a528d0d4178", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-73660bb1eaa5dc47", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/og/structure/[id]/route.tsx:25"}, "properties": {"repobilityId": "7876726642993c0a", "scanner": "scanner-primary", "fingerprint": "73660bb1eaa5dc47", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d485a6833f9e152", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/api/og/structure/[id]/story/route.tsx:22"}, "properties": {"repobilityId": "74f9ff53b27ef265", "scanner": "scanner-primary", "fingerprint": "0d485a6833f9e152", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-12f872c921f6bb0b", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/og/profile/[slug]/route.tsx:32"}, "properties": {"repobilityId": "3deb322c7ab0d274", "scanner": "scanner-primary", "fingerprint": "12f872c921f6bb0b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7f311b107419e8e6", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/og/profile/[slug]/banner/route.tsx:7"}, "properties": {"repobilityId": "e56d8e35d61ae8d3", "scanner": "scanner-primary", "fingerprint": "7f311b107419e8e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-773d4b388fe9ffd5", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/og/profile/[slug]/story/route.tsx:30"}, "properties": {"repobilityId": "cae07fb9774d8c2f", "scanner": "scanner-primary", "fingerprint": "773d4b388fe9ffd5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d2b84f19e245ba4a", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/community/my-structure/components.tsx:47"}, "properties": {"repobilityId": "b6bc78edabeee576", "scanner": "scanner-primary", "fingerprint": "d2b84f19e245ba4a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67461c02511fa1a0", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/community/my-structure/page.tsx:732"}, "properties": {"repobilityId": "f558fe9ff2dc4c45", "scanner": "scanner-primary", "fingerprint": "67461c02511fa1a0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b3e93066cbd01994", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/community/my-structure/teams-dnd.tsx:53"}, "properties": {"repobilityId": "a5afa7b12359cc61", "scanner": "scanner-primary", "fingerprint": "b3e93066cbd01994", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b9199e62a2c75cdf", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/community/my-structure/tabs/teams-tab.tsx:38"}, "properties": {"repobilityId": "d64f7cf7ca3dddbc", "scanner": "scanner-primary", "fingerprint": "b9199e62a2c75cdf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e7881f6395def4da", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/community/structure/[id]/layout.tsx:150"}, "properties": {"repobilityId": "e4aa497718769c6b", "scanner": "scanner-primary", "fingerprint": "e7881f6395def4da", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ed9fae74276b3161", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/community/create-structure/page.tsx:167"}, "properties": {"repobilityId": "09600f704f847066", "scanner": "scanner-primary", "fingerprint": "ed9fae74276b3161", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8d9c0c27956c0d7a", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/admin/announce/page.tsx:5"}, "properties": {"repobilityId": "f4828a5fcc523bd0", "scanner": "scanner-primary", "fingerprint": "8d9c0c27956c0d7a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c84991b4e7ae83c2", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in app/profile/[id]/page.tsx:93"}, "properties": {"repobilityId": "c285214e07950299", "scanner": "scanner-primary", "fingerprint": "c84991b4e7ae83c2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e699293743ec20f7", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/profile/[id]/page.tsx:95"}, "properties": {"repobilityId": "aade49c4c1086014", "scanner": "scanner-primary", "fingerprint": "e699293743ec20f7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b3f85316bf05a8e4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/profile/[id]/page.tsx:103"}, "properties": {"repobilityId": "4076baaf611d64f6", "scanner": "scanner-primary", "fingerprint": "b3f85316bf05a8e4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-eb86baeb8c3b3abe", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/profile/[id]/layout.tsx:67"}, "properties": {"repobilityId": "b6270b704c9d7ee0", "scanner": "scanner-primary", "fingerprint": "eb86baeb8c3b3abe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-64a0d0dc7e4138f7", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/api-client.ts:28"}, "properties": {"repobilityId": "36b7bbeef0aaa7a6", "scanner": "scanner-primary", "fingerprint": "64a0d0dc7e4138f7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9d3c0e656753bea1", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/valorant-sync.ts:94"}, "properties": {"repobilityId": "c1831fc7ce8de94b", "scanner": "scanner-primary", "fingerprint": "9d3c0e656753bea1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d405dc788efeeca7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/admin-discord-alert.ts:73"}, "properties": {"repobilityId": "4e627976757e86e2", "scanner": "scanner-primary", "fingerprint": "d405dc788efeeca7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ab9c5fddb8b85dfd", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/legal-info.ts:15"}, "properties": {"repobilityId": "bd6146a3c7d6b4ac", "scanner": "scanner-primary", "fingerprint": "ab9c5fddb8b85dfd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1712391fff018bd9", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/plan-limits.ts:115"}, "properties": {"repobilityId": "6b1a58ee5ce6eac7", "scanner": "scanner-primary", "fingerprint": "1712391fff018bd9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6c5a798acf4721dd", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/structure-slug.ts:4"}, "properties": {"repobilityId": "217a6063a68f91af", "scanner": "scanner-primary", "fingerprint": "6c5a798acf4721dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-20794c913ab227eb", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/storage.ts:12"}, "properties": {"repobilityId": "c1ddbb32d602f237", "scanner": "scanner-primary", "fingerprint": "20794c913ab227eb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad540127d0bf6f1f", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/rl-ranks.ts:21"}, "properties": {"repobilityId": "56322f8e67cf0700", "scanner": "scanner-primary", "fingerprint": "ad540127d0bf6f1f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0ce237228c0f5299", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/analytics.ts:1"}, "properties": {"repobilityId": "5c76e793c332493b", "scanner": "scanner-primary", "fingerprint": "0ce237228c0f5299", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-593c727da29155fc", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/user-slug.ts:1"}, "properties": {"repobilityId": "f300b618f4fb9d3c", "scanner": "scanner-primary", "fingerprint": "593c727da29155fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ea31367651cd19e8", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/structure-permissions.ts:1"}, "properties": {"repobilityId": "739de51d600e6cab", "scanner": "scanner-primary", "fingerprint": "ea31367651cd19e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4631ab4f409a9019", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/event-context.ts:89"}, "properties": {"repobilityId": "be78d4ffd0605703", "scanner": "scanner-primary", "fingerprint": "4631ab4f409a9019", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-73d3879fb2c1ec35", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/discord-role-sync.ts:42"}, "properties": {"repobilityId": "a7d8283f4410c5f5", "scanner": "scanner-primary", "fingerprint": "73d3879fb2c1ec35", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5836d54973691d59", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/event-permissions.ts:44"}, "properties": {"repobilityId": "ebab3cae35381884", "scanner": "scanner-primary", "fingerprint": "5836d54973691d59", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7443143174cf9b0c", "level": "none", "message": {"text": "Commented-code block (10 lines) in lib/cron-state.ts:9"}, "properties": {"repobilityId": "0014e61c53218190", "scanner": "scanner-primary", "fingerprint": "7443143174cf9b0c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b2c082f31b337463", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/changelog-categories.ts:3"}, "properties": {"repobilityId": "549ef9ca03f8e74f", "scanner": "scanner-primary", "fingerprint": "b2c082f31b337463", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-325b5f856a104a29", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/steam-openid.ts:56"}, "properties": {"repobilityId": "2b8b460a84659f1e", "scanner": "scanner-primary", "fingerprint": "325b5f856a104a29", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2da39c1b4e96d08d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/ballchasing.ts:335"}, "properties": {"repobilityId": "4e46f8163a551661", "scanner": "scanner-primary", "fingerprint": "2da39c1b4e96d08d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cd788e54d43e60f3", "level": "none", "message": {"text": "Commented-code block (8 lines) in lib/admin-segments.ts:24"}, "properties": {"repobilityId": "535a62cc4ae8321e", "scanner": "scanner-primary", "fingerprint": "cd788e54d43e60f3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ed45367ecd82deeb", "level": "none", "message": {"text": "Commented-code block (11 lines) in lib/ballchasing-quota.ts:6"}, "properties": {"repobilityId": "4f12adb73827b833", "scanner": "scanner-primary", "fingerprint": "ed45367ecd82deeb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ef1e8459ec0d4c9e", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/discord-bot.ts:234"}, "properties": {"repobilityId": "00e4804d17b2282a", "scanner": "scanner-primary", "fingerprint": "ef1e8459ec0d4c9e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ebdab797c8e8fb39", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/valorant-ranks.ts:1"}, "properties": {"repobilityId": "05b5bd2cd710686d", "scanner": "scanner-primary", "fingerprint": "ebdab797c8e8fb39", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5aa32ad5e8102c74", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/return-to.ts:91"}, "properties": {"repobilityId": "02e2399a549e08c4", "scanner": "scanner-primary", "fingerprint": "5aa32ad5e8102c74", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-241dd6dc267ab990", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/todos.ts:15"}, "properties": {"repobilityId": "5bcb7b4edf230c63", "scanner": "scanner-primary", "fingerprint": "241dd6dc267ab990", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4595c2e37aa63d42", "level": "none", "message": {"text": "Commented-code block (8 lines) in lib/availability.ts:4"}, "properties": {"repobilityId": "21596cc406a58d79", "scanner": "scanner-primary", "fingerprint": "4595c2e37aa63d42", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3e630c88ca868239", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/discord-connections.ts:127"}, "properties": {"repobilityId": "6a945cf83a08e165", "scanner": "scanner-primary", "fingerprint": "3e630c88ca868239", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-23ba78e319919895", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/availability.test.ts:314"}, "properties": {"repobilityId": "232b7f37767fafd3", "scanner": "scanner-primary", "fingerprint": "23ba78e319919895", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8e7f782c131caa55", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/account-verification.ts:3"}, "properties": {"repobilityId": "69a4725e42b85660", "scanner": "scanner-primary", "fingerprint": "8e7f782c131caa55", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3112f46408826f3b", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/structure-membership.ts:6"}, "properties": {"repobilityId": "f642eb19d5eac8c6", "scanner": "scanner-primary", "fingerprint": "3112f46408826f3b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f48487982a81f16d", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/rl-identity.ts:4"}, "properties": {"repobilityId": "545482640163ccfe", "scanner": "scanner-primary", "fingerprint": "f48487982a81f16d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f7355370abc1f4c7", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/rl-platform.ts:78"}, "properties": {"repobilityId": "e08eda5f83f2de72", "scanner": "scanner-primary", "fingerprint": "f7355370abc1f4c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f2b169dd1a1d5f7", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/trackmania-sync.ts:3"}, "properties": {"repobilityId": "40580f8dd335aa53", "scanner": "scanner-primary", "fingerprint": "1f2b169dd1a1d5f7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ef54a60596d2d897", "level": "none", "message": {"text": "Commented-code block (5 lines) in context/AuthContext.tsx:67"}, "properties": {"repobilityId": "e7f97ffacc7cf64c", "scanner": "scanner-primary", "fingerprint": "ef54a60596d2d897", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dfd290e3fd6dcda8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 context/AuthContext.tsx:63"}, "properties": {"repobilityId": "2fc1ece0bc32a5d3", "scanner": "scanner-primary", "fingerprint": "dfd290e3fd6dcda8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}]}]}