{"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-4e47463dc786c7eb", "name": "Stray `console.log` in TS/JS \u2014 App.tsx:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 App.tsx:33"}, "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-08fe6e8f916eb5bf", "name": "Stray `console.log` in TS/JS \u2014 src/api.ts:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/api.ts:20"}, "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-88fa35fa0a81a74c", "name": "Stray `console.log` in TS/JS \u2014 src/__tests__/logHygieneAndCrashSafety.test.ts:104", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/__tests__/logHygieneAndCrashSafety.test.ts:104"}, "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-c3cc496accad8736", "name": "Stray `console.log` in TS/JS \u2014 src/navigation/RootNavigator.tsx:145", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/navigation/RootNavigator.tsx:145"}, "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-8585f11dd9ffd437", "name": "Stray `console.log` in TS/JS \u2014 src/navigation/navigationRef.ts:9", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/navigation/navigationRef.ts:9"}, "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-a485368ac9f980ee", "name": "Stray `console.log` in TS/JS \u2014 src/navigation/AdminTabNavigator.tsx:25", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/navigation/AdminTabNavigator.tsx:25"}, "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-9be5e0d6cac4f8f7", "name": "Stray `console.log` in TS/JS \u2014 src/auth/useAuth.ts:74", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/auth/useAuth.ts:74"}, "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-e310436d62a7643a", "name": "Stray `console.log` in TS/JS \u2014 src/screens/ProfileScreen.tsx:124", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/screens/ProfileScreen.tsx:124"}, "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-1073fff8c5320a85", "name": "Stray `console.log` in TS/JS \u2014 src/screens/CompleteProfileWizard.tsx:103", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/screens/CompleteProfileWizard.tsx:103"}, "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-14a7b1adb090ac3f", "name": "Stray `console.log` in TS/JS \u2014 src/screens/MyBookingsScreen.tsx:229", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/screens/MyBookingsScreen.tsx:229"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-16ab53b89e079472", "name": "TODO/FIXME marker in shipping code \u2014 src/screens/Dashboard/DashboardScreen.tsx:166", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/screens/Dashboard/DashboardScreen.tsx:166"}, "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-4fdd31c9934c38af", "name": "Stray `console.log` in TS/JS \u2014 src/screens/Admin/AdminCustomersScreen.tsx:68", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/screens/Admin/AdminCustomersScreen.tsx:68"}, "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-f2ee5c7a04652e3c", "name": "Stray `console.log` in TS/JS \u2014 src/screens/Admin/components/CustomerSearchInput.tsx:50", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/screens/Admin/components/CustomerSearchInput.tsx:50"}, "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-2a60975dd1854578", "name": "Stray `console.log` in TS/JS \u2014 src/screens/Admin/components/AdminScheduleHeader.tsx:25", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/screens/Admin/components/AdminScheduleHeader.tsx:25"}, "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-e8470c1835d8318a", "name": "Stray `console.log` in TS/JS \u2014 src/utils/openExternalUrl.ts:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/utils/openExternalUrl.ts:18"}, "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-36a7e63884f6869f", "name": "Stray `console.log` in TS/JS \u2014 src/utils/sessionTime.ts:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/utils/sessionTime.ts:40"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1835bfae86b3b62b", "name": "Stray `console.log` in TS/JS \u2014 src/utils/tokenUtils.ts:62", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/utils/tokenUtils.ts:62"}, "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-8f62021e872a01e7", "name": "Stray `console.log` in TS/JS \u2014 src/utils/scheduleDebug.ts:141", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/utils/scheduleDebug.ts:141"}, "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-4dd9a6ebf89fbe24", "name": "Stray `console.log` in TS/JS \u2014 src/features/api/apiSlice.ts:78", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/features/api/apiSlice.ts:78"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6b29f8acf1bbe298", "name": "Possible secret in src/i18n/strings.ar.ts", "shortDescription": {"text": "Possible secret in src/i18n/strings.ar.ts"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-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-faccb9061e9b52a0", "name": "No README detected", "shortDescription": {"text": "No README detected"}, "fullDescription": {"text": "No README file was found. Generated repos without README context are hard to operate, validate, or safely hand off."}, "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 76 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 53 placeholder/mock markers across 16 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, operator-readme. 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, operator-readme. 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-3364dfdc285cc442", "name": "Commented-code block (9 lines) in jest.config.js:10", "shortDescription": {"text": "Commented-code block (9 lines) in jest.config.js:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7d5b2d4ebceb8ed3", "name": "Commented-code block (6 lines) in jest.setup.ts:9", "shortDescription": {"text": "Commented-code block (6 lines) in jest.setup.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-7ef6f42cecc3181a", "name": "Commented-code block (5 lines) in App.tsx:14", "shortDescription": {"text": "Commented-code block (5 lines) in App.tsx:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5ea6b2d248594350", "name": "Commented-code block (5 lines) in src/api.ts:86", "shortDescription": {"text": "Commented-code block (5 lines) in src/api.ts:86"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-95a94cbfe56c3380", "name": "Commented-code block (8 lines) in src/__tests__/authTeardownClearsRefreshToken.test.ts:3", "shortDescription": {"text": "Commented-code block (8 lines) in src/__tests__/authTeardownClearsRefreshToken.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5fd151e8ac7b6d78", "name": "Commented-code block (19 lines) in src/__tests__/apiSlice401Refresh.test.ts:3", "shortDescription": {"text": "Commented-code block (19 lines) in src/__tests__/apiSlice401Refresh.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-897cf709ed03b8a0", "name": "Commented-code block (6 lines) in src/__tests__/logoutResetsApiCache.test.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/__tests__/logoutResetsApiCache.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-df3f152a273f73df", "name": "Commented-code block (10 lines) in src/__tests__/profileCompletionGate.test.ts:3", "shortDescription": {"text": "Commented-code block (10 lines) in src/__tests__/profileCompletionGate.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-67dba744ee34033b", "name": "Commented-code block (6 lines) in src/__tests__/api.test.ts:30", "shortDescription": {"text": "Commented-code block (6 lines) in src/__tests__/api.test.ts: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-636f42dbf3ba91cb", "name": "Commented-code block (6 lines) in src/__tests__/logHygieneAndCrashSafety.test.ts:8", "shortDescription": {"text": "Commented-code block (6 lines) in src/__tests__/logHygieneAndCrashSafety.test.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-bc36065bdbc1ee5a", "name": "Commented-code block (11 lines) in src/__tests__/keyboardAvoidancePolish.test.ts:6", "shortDescription": {"text": "Commented-code block (11 lines) in src/__tests__/keyboardAvoidancePolish.test.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e6be8c2ab368fbb0", "name": "Commented-code block (6 lines) in src/navigation/RootNavigator.tsx:22", "shortDescription": {"text": "Commented-code block (6 lines) in src/navigation/RootNavigator.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-3a6911c9548fa23e", "name": "Commented-code block (9 lines) in src/navigation/__tests__/RootNavigator.authAudit.test.ts:14", "shortDescription": {"text": "Commented-code block (9 lines) in src/navigation/__tests__/RootNavigator.authAudit.test.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-0558e4236847f324", "name": "Commented-code block (7 lines) in src/auth/useAuth.ts:33", "shortDescription": {"text": "Commented-code block (7 lines) in src/auth/useAuth.ts:33"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-484f6547d50dfa2d", "name": "Commented-code block (5 lines) in src/auth/__tests__/useAuth.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/auth/__tests__/useAuth.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6c44ea5bfbbf3c60", "name": "Commented-code block (6 lines) in src/screens/CompleteProfileWizard.tsx:143", "shortDescription": {"text": "Commented-code block (6 lines) in src/screens/CompleteProfileWizard.tsx:143"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e279e7e32716ad95", "name": "Commented-code block (9 lines) in src/screens/__tests__/CompleteProfileWizard.test.tsx:149", "shortDescription": {"text": "Commented-code block (9 lines) in src/screens/__tests__/CompleteProfileWizard.test.tsx:149"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8ca7dc3b48a816af", "name": "Commented-code block (11 lines) in src/screens/__tests__/arabicServerErrorAdoption.test.ts:8", "shortDescription": {"text": "Commented-code block (11 lines) in src/screens/__tests__/arabicServerErrorAdoption.test.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-b917fa48939f4a88", "name": "Commented-code block (5 lines) in src/screens/__tests__/ProfileScreen.test.tsx:36", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/__tests__/ProfileScreen.test.tsx:36"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-989b8173ed5e739f", "name": "Commented-code block (7 lines) in src/screens/__tests__/ProfileScreen.notificationsToggleRemoval.test.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in src/screens/__tests__/ProfileScreen.notificationsToggleRemoval.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ab7e000dac78ca3d", "name": "Commented-code block (5 lines) in src/screens/Login/__tests__/Login.test.tsx:137", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/Login/__tests__/Login.test.tsx:137"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5088fb3ca171ea32", "name": "Commented-code block (6 lines) in src/screens/Subscription/SubscriptionScreen.tsx:270", "shortDescription": {"text": "Commented-code block (6 lines) in src/screens/Subscription/SubscriptionScreen.tsx:270"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9a27c1cfcbe8f0bc", "name": "Commented-code block (8 lines) in src/screens/Subscription/__tests__/SubscriptionScreen.progressGuards.test.tsx:6", "shortDescription": {"text": "Commented-code block (8 lines) in src/screens/Subscription/__tests__/SubscriptionScreen.progressGuards.test.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7a4ee7bd79955edf", "name": "Commented-code block (5 lines) in src/screens/Booking/BookingWizardScreen.tsx:69", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/Booking/BookingWizardScreen.tsx:69"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4957aa50a7a66001", "name": "Commented-code block (5 lines) in src/screens/Booking/__tests__/BookingWizardScreen.test.tsx:160", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/Booking/__tests__/BookingWizardScreen.test.tsx:160"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-82874ea4fad9debc", "name": "Commented-code block (8 lines) in src/screens/Booking/__tests__/BookingWizardScreen.dayGroupingTz.test.ts:3", "shortDescription": {"text": "Commented-code block (8 lines) in src/screens/Booking/__tests__/BookingWizardScreen.dayGroupingTz.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fd2691a81ce6cd13", "name": "Commented-code block (18 lines) in src/screens/Booking/__tests__/BookingWizardScreen.step4ConfirmGuard.test.ts:3", "shortDescription": {"text": "Commented-code block (18 lines) in src/screens/Booking/__tests__/BookingWizardScreen.step4ConfirmGuard.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-96972b645a3f50f4", "name": "Commented-code block (9 lines) in src/screens/Booking/__tests__/BookingWizardScreen.step3Padding.test.ts:6", "shortDescription": {"text": "Commented-code block (9 lines) in src/screens/Booking/__tests__/BookingWizardScreen.step3Padding.test.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-36add346b113e23c", "name": "Commented-code block (7 lines) in src/screens/AdminScheduleSettings/__tests__/AdminScheduleSettingsScreen.optimisticRoll", "shortDescription": {"text": "Commented-code block (7 lines) in src/screens/AdminScheduleSettings/__tests__/AdminScheduleSettingsScreen.optimisticRollback.test.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-155957f3def5f373", "name": "Commented-code block (7 lines) in src/screens/AdminScheduleSettings/__tests__/AutoGenerationCard.test.tsx:13", "shortDescription": {"text": "Commented-code block (7 lines) in src/screens/AdminScheduleSettings/__tests__/AutoGenerationCard.test.tsx:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a64b8422a22db9c5", "name": "Commented-code block (5 lines) in src/screens/AdminScheduleSettings/components/AutoGenerationCard.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/AdminScheduleSettings/components/AutoGenerationCard.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-0f3f770b12a022b5", "name": "Commented-code block (6 lines) in src/screens/SubscriptionPlans/SubscriptionPlansScreen.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/screens/SubscriptionPlans/SubscriptionPlansScreen.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-92388755d3a397aa", "name": "Commented-code block (7 lines) in src/screens/SubscriptionPlans/__tests__/SubscriptionPlansScreen.paymentRework.test.tsx", "shortDescription": {"text": "Commented-code block (7 lines) in src/screens/SubscriptionPlans/__tests__/SubscriptionPlansScreen.paymentRework.test.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9ad779f9b1804d2b", "name": "Commented-code block (6 lines) in src/screens/SubscriptionPlans/components/PaymentMethodModal.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/screens/SubscriptionPlans/components/PaymentMethodModal.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-14d1a472ed241416", "name": "Commented-code block (12 lines) in src/screens/Schedule/__tests__/ScheduleScreen.weekNav.test.tsx:6", "shortDescription": {"text": "Commented-code block (12 lines) in src/screens/Schedule/__tests__/ScheduleScreen.weekNav.test.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-af95bdd9d6460bd8", "name": "Commented-code block (8 lines) in src/screens/Admin/AdminCustomerDetailsScreen.tsx:124", "shortDescription": {"text": "Commented-code block (8 lines) in src/screens/Admin/AdminCustomerDetailsScreen.tsx:124"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fabfe6187228b58f", "name": "Commented-code block (5 lines) in src/screens/Admin/AdminScheduleScreen.tsx:146", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/Admin/AdminScheduleScreen.tsx:146"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0912afb45e9827f2", "name": "Commented-code block (10 lines) in src/screens/Admin/__tests__/AdminCustomerDetailsScreen.editGuard.test.tsx:5", "shortDescription": {"text": "Commented-code block (10 lines) in src/screens/Admin/__tests__/AdminCustomerDetailsScreen.editGuard.test.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-e74cd0844896ae9d", "name": "Commented-code block (8 lines) in src/screens/Admin/__tests__/AdminScheduleScreen.polish.test.ts:3", "shortDescription": {"text": "Commented-code block (8 lines) in src/screens/Admin/__tests__/AdminScheduleScreen.polish.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c1bc21d744887639", "name": "Commented-code block (7 lines) in src/screens/Admin/__tests__/AdminCustomersScreen.timerLeaks.test.tsx:5", "shortDescription": {"text": "Commented-code block (7 lines) in src/screens/Admin/__tests__/AdminCustomersScreen.timerLeaks.test.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-3e0e8a92bda87de0", "name": "Commented-code block (8 lines) in src/screens/Admin/components/__tests__/CustomerSearchInput.timerLeaks.test.tsx:5", "shortDescription": {"text": "Commented-code block (8 lines) in src/screens/Admin/components/__tests__/CustomerSearchInput.timerLeaks.test.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-9746a38370e7b422", "name": "Commented-code block (7 lines) in src/utils/__tests__/serverErrors.test.ts:7", "shortDescription": {"text": "Commented-code block (7 lines) in src/utils/__tests__/serverErrors.test.ts:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b754a04d5ada7d77", "name": "Commented-code block (8 lines) in src/features/api/apiSlice.ts:44", "shortDescription": {"text": "Commented-code block (8 lines) in src/features/api/apiSlice.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-2133af546589ed2e", "name": "Commented-code block (7 lines) in src/features/api/__tests__/apiSlice.timeout.test.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in src/features/api/__tests__/apiSlice.timeout.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-de385b1005117b03", "name": "Unused endpoint: POST /v1/me/bootstrap", "shortDescription": {"text": "Unused endpoint: POST /v1/me/bootstrap"}, "fullDescription": {"text": "`src/auth/useAuth.ts` declares `POST /v1/me/bootstrap` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-71b51f26178f6d04", "name": "Unused endpoint: GET /v1/me", "shortDescription": {"text": "Unused endpoint: GET /v1/me"}, "fullDescription": {"text": "`src/auth/useAuth.ts` declares `GET /v1/me` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/20021"}, "properties": {"repository": "soreka/conneviaClient", "repoUrl": "https://github.com/soreka/conneviaClient", "branch": "main"}, "results": [{"ruleId": "scanner-4e47463dc786c7eb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 App.tsx:33"}, "properties": {"repobilityId": "5d0ffc120f7dc0b2", "scanner": "scanner-primary", "fingerprint": "4e47463dc786c7eb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-08fe6e8f916eb5bf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/api.ts:20"}, "properties": {"repobilityId": "d2a24b81cec07bf0", "scanner": "scanner-primary", "fingerprint": "08fe6e8f916eb5bf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-88fa35fa0a81a74c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/__tests__/logHygieneAndCrashSafety.test.ts:104"}, "properties": {"repobilityId": "35a659a12be2c18f", "scanner": "scanner-primary", "fingerprint": "88fa35fa0a81a74c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c3cc496accad8736", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/navigation/RootNavigator.tsx:145"}, "properties": {"repobilityId": "ed89ed6292ff46a2", "scanner": "scanner-primary", "fingerprint": "c3cc496accad8736", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8585f11dd9ffd437", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/navigation/navigationRef.ts:9"}, "properties": {"repobilityId": "27ce5c035bd98219", "scanner": "scanner-primary", "fingerprint": "8585f11dd9ffd437", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a485368ac9f980ee", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/navigation/AdminTabNavigator.tsx:25"}, "properties": {"repobilityId": "181140deb7b1ca04", "scanner": "scanner-primary", "fingerprint": "a485368ac9f980ee", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9be5e0d6cac4f8f7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/auth/useAuth.ts:74"}, "properties": {"repobilityId": "79ab46c2ca1f5750", "scanner": "scanner-primary", "fingerprint": "9be5e0d6cac4f8f7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e310436d62a7643a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/screens/ProfileScreen.tsx:124"}, "properties": {"repobilityId": "afd9d84e80166975", "scanner": "scanner-primary", "fingerprint": "e310436d62a7643a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1073fff8c5320a85", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/screens/CompleteProfileWizard.tsx:103"}, "properties": {"repobilityId": "5f1b77afe583d8e5", "scanner": "scanner-primary", "fingerprint": "1073fff8c5320a85", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-14a7b1adb090ac3f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/screens/MyBookingsScreen.tsx:229"}, "properties": {"repobilityId": "e1284c0fa8cda62b", "scanner": "scanner-primary", "fingerprint": "14a7b1adb090ac3f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-16ab53b89e079472", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/screens/Dashboard/DashboardScreen.tsx:166"}, "properties": {"repobilityId": "f3359d0440b47a22", "scanner": "scanner-primary", "fingerprint": "16ab53b89e079472", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-4fdd31c9934c38af", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/screens/Admin/AdminCustomersScreen.tsx:68"}, "properties": {"repobilityId": "12a4b7f9f38df85f", "scanner": "scanner-primary", "fingerprint": "4fdd31c9934c38af", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f2ee5c7a04652e3c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/screens/Admin/components/CustomerSearchInput.tsx:50"}, "properties": {"repobilityId": "2d90ee79e54da9ef", "scanner": "scanner-primary", "fingerprint": "f2ee5c7a04652e3c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2a60975dd1854578", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/screens/Admin/components/AdminScheduleHeader.tsx:25"}, "properties": {"repobilityId": "df93c8bbbd8a6ee0", "scanner": "scanner-primary", "fingerprint": "2a60975dd1854578", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e8470c1835d8318a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/utils/openExternalUrl.ts:18"}, "properties": {"repobilityId": "685e2a7672995d8c", "scanner": "scanner-primary", "fingerprint": "e8470c1835d8318a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-36a7e63884f6869f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/utils/sessionTime.ts:40"}, "properties": {"repobilityId": "0e631a4e85033828", "scanner": "scanner-primary", "fingerprint": "36a7e63884f6869f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1835bfae86b3b62b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/utils/tokenUtils.ts:62"}, "properties": {"repobilityId": "9fed1a3f4d9983e8", "scanner": "scanner-primary", "fingerprint": "1835bfae86b3b62b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8f62021e872a01e7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/utils/scheduleDebug.ts:141"}, "properties": {"repobilityId": "9df405e45a61cad0", "scanner": "scanner-primary", "fingerprint": "8f62021e872a01e7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4dd9a6ebf89fbe24", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/features/api/apiSlice.ts:78"}, "properties": {"repobilityId": "e47b8c784e2d3d7c", "scanner": "scanner-primary", "fingerprint": "4dd9a6ebf89fbe24", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6b29f8acf1bbe298", "level": "error", "message": {"text": "Possible secret in src/i18n/strings.ar.ts"}, "properties": {"repobilityId": "01fd66c732092230", "scanner": "scanner-primary", "fingerprint": "6b29f8acf1bbe298", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/i18n/strings.ar.ts"}, "region": {"startLine": 180}}}]}, {"ruleId": "scanner-6b29f8acf1bbe298", "level": "error", "message": {"text": "Possible secret in src/i18n/strings.ar.ts"}, "properties": {"repobilityId": "01fd66c732092230", "scanner": "scanner-primary", "fingerprint": "6b29f8acf1bbe298", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/i18n/strings.ar.ts"}, "region": {"startLine": 197}}}]}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "f116171dc4c22b28", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-faccb9061e9b52a0", "level": "note", "message": {"text": "No README detected"}, "properties": {"repobilityId": "42989f4764204a67", "scanner": "scanner-primary", "fingerprint": "faccb9061e9b52a0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["docs", "readme", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "6cce0354c0bd6333", "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": "2809770744075ee4", "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": "85b458deadad1aa3", "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": "55ade60358a536a8", "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": "90aa8eeb65272c57", "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": "06e22c520be18aa5", "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": "9fe4020361847123", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-3364dfdc285cc442", "level": "none", "message": {"text": "Commented-code block (9 lines) in jest.config.js:10"}, "properties": {"repobilityId": "a58a290cdf2b7dd3", "scanner": "scanner-primary", "fingerprint": "3364dfdc285cc442", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7d5b2d4ebceb8ed3", "level": "none", "message": {"text": "Commented-code block (6 lines) in jest.setup.ts:9"}, "properties": {"repobilityId": "4e03ecf5e768f62f", "scanner": "scanner-primary", "fingerprint": "7d5b2d4ebceb8ed3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7ef6f42cecc3181a", "level": "none", "message": {"text": "Commented-code block (5 lines) in App.tsx:14"}, "properties": {"repobilityId": "f6b33b0c305fe789", "scanner": "scanner-primary", "fingerprint": "7ef6f42cecc3181a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5ea6b2d248594350", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/api.ts:86"}, "properties": {"repobilityId": "61291bcd7668f1ec", "scanner": "scanner-primary", "fingerprint": "5ea6b2d248594350", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-95a94cbfe56c3380", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/__tests__/authTeardownClearsRefreshToken.test.ts:3"}, "properties": {"repobilityId": "7bd91d1d3139c80e", "scanner": "scanner-primary", "fingerprint": "95a94cbfe56c3380", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5fd151e8ac7b6d78", "level": "none", "message": {"text": "Commented-code block (19 lines) in src/__tests__/apiSlice401Refresh.test.ts:3"}, "properties": {"repobilityId": "d765c50d24bf496b", "scanner": "scanner-primary", "fingerprint": "5fd151e8ac7b6d78", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-897cf709ed03b8a0", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/__tests__/logoutResetsApiCache.test.ts:3"}, "properties": {"repobilityId": "d51b1e3e16eb9b92", "scanner": "scanner-primary", "fingerprint": "897cf709ed03b8a0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-df3f152a273f73df", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/__tests__/profileCompletionGate.test.ts:3"}, "properties": {"repobilityId": "ddcaf38b97a92e99", "scanner": "scanner-primary", "fingerprint": "df3f152a273f73df", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67dba744ee34033b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/__tests__/api.test.ts:30"}, "properties": {"repobilityId": "7224f17a8fcd32ef", "scanner": "scanner-primary", "fingerprint": "67dba744ee34033b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-636f42dbf3ba91cb", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/__tests__/logHygieneAndCrashSafety.test.ts:8"}, "properties": {"repobilityId": "b3b8e45e41c9fbdd", "scanner": "scanner-primary", "fingerprint": "636f42dbf3ba91cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc36065bdbc1ee5a", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/__tests__/keyboardAvoidancePolish.test.ts:6"}, "properties": {"repobilityId": "f4a83ae3012b37ae", "scanner": "scanner-primary", "fingerprint": "bc36065bdbc1ee5a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e6be8c2ab368fbb0", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/navigation/RootNavigator.tsx:22"}, "properties": {"repobilityId": "b26d004c44de5e8b", "scanner": "scanner-primary", "fingerprint": "e6be8c2ab368fbb0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3a6911c9548fa23e", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/navigation/__tests__/RootNavigator.authAudit.test.ts:14"}, "properties": {"repobilityId": "98b686a1058f0db0", "scanner": "scanner-primary", "fingerprint": "3a6911c9548fa23e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0558e4236847f324", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/auth/useAuth.ts:33"}, "properties": {"repobilityId": "9867061673cb07a0", "scanner": "scanner-primary", "fingerprint": "0558e4236847f324", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-484f6547d50dfa2d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/auth/__tests__/useAuth.test.ts:1"}, "properties": {"repobilityId": "e338345dc0ecb58e", "scanner": "scanner-primary", "fingerprint": "484f6547d50dfa2d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6c44ea5bfbbf3c60", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/screens/CompleteProfileWizard.tsx:143"}, "properties": {"repobilityId": "2ca4c178ad5ff291", "scanner": "scanner-primary", "fingerprint": "6c44ea5bfbbf3c60", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e279e7e32716ad95", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/screens/__tests__/CompleteProfileWizard.test.tsx:149"}, "properties": {"repobilityId": "3e37374a1b61dc72", "scanner": "scanner-primary", "fingerprint": "e279e7e32716ad95", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ca7dc3b48a816af", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/screens/__tests__/arabicServerErrorAdoption.test.ts:8"}, "properties": {"repobilityId": "930617050310af9c", "scanner": "scanner-primary", "fingerprint": "8ca7dc3b48a816af", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b917fa48939f4a88", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/__tests__/ProfileScreen.test.tsx:36"}, "properties": {"repobilityId": "f0fd066619f5de5f", "scanner": "scanner-primary", "fingerprint": "b917fa48939f4a88", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-989b8173ed5e739f", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/screens/__tests__/ProfileScreen.notificationsToggleRemoval.test.ts:3"}, "properties": {"repobilityId": "c52195591036609c", "scanner": "scanner-primary", "fingerprint": "989b8173ed5e739f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab7e000dac78ca3d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/Login/__tests__/Login.test.tsx:137"}, "properties": {"repobilityId": "3cb1ddb26ed47083", "scanner": "scanner-primary", "fingerprint": "ab7e000dac78ca3d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5088fb3ca171ea32", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/screens/Subscription/SubscriptionScreen.tsx:270"}, "properties": {"repobilityId": "e9f29798bfef92b7", "scanner": "scanner-primary", "fingerprint": "5088fb3ca171ea32", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a27c1cfcbe8f0bc", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/screens/Subscription/__tests__/SubscriptionScreen.progressGuards.test.tsx:6"}, "properties": {"repobilityId": "3ba780ea162698cf", "scanner": "scanner-primary", "fingerprint": "9a27c1cfcbe8f0bc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a4ee7bd79955edf", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/Booking/BookingWizardScreen.tsx:69"}, "properties": {"repobilityId": "53b9b394cedbdfb3", "scanner": "scanner-primary", "fingerprint": "7a4ee7bd79955edf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4957aa50a7a66001", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/Booking/__tests__/BookingWizardScreen.test.tsx:160"}, "properties": {"repobilityId": "6c3056109866aed9", "scanner": "scanner-primary", "fingerprint": "4957aa50a7a66001", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-82874ea4fad9debc", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/screens/Booking/__tests__/BookingWizardScreen.dayGroupingTz.test.ts:3"}, "properties": {"repobilityId": "3ebea6b6f8947c03", "scanner": "scanner-primary", "fingerprint": "82874ea4fad9debc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fd2691a81ce6cd13", "level": "none", "message": {"text": "Commented-code block (18 lines) in src/screens/Booking/__tests__/BookingWizardScreen.step4ConfirmGuard.test.ts:3"}, "properties": {"repobilityId": "cbcabf1ec9da1266", "scanner": "scanner-primary", "fingerprint": "fd2691a81ce6cd13", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96972b645a3f50f4", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/screens/Booking/__tests__/BookingWizardScreen.step3Padding.test.ts:6"}, "properties": {"repobilityId": "d5d65425dca93515", "scanner": "scanner-primary", "fingerprint": "96972b645a3f50f4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-36add346b113e23c", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/screens/AdminScheduleSettings/__tests__/AdminScheduleSettingsScreen.optimisticRollback.test.tsx:5"}, "properties": {"repobilityId": "b02c6730f39c4ccc", "scanner": "scanner-primary", "fingerprint": "36add346b113e23c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-155957f3def5f373", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/screens/AdminScheduleSettings/__tests__/AutoGenerationCard.test.tsx:13"}, "properties": {"repobilityId": "0f3581ba254ef1a8", "scanner": "scanner-primary", "fingerprint": "155957f3def5f373", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a64b8422a22db9c5", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/AdminScheduleSettings/components/AutoGenerationCard.tsx:3"}, "properties": {"repobilityId": "2ca18d7a1c18b408", "scanner": "scanner-primary", "fingerprint": "a64b8422a22db9c5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f3f770b12a022b5", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/screens/SubscriptionPlans/SubscriptionPlansScreen.tsx:3"}, "properties": {"repobilityId": "d0f1631d74101a5d", "scanner": "scanner-primary", "fingerprint": "0f3f770b12a022b5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-92388755d3a397aa", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/screens/SubscriptionPlans/__tests__/SubscriptionPlansScreen.paymentRework.test.tsx:6"}, "properties": {"repobilityId": "b3115ba3b10c9e5d", "scanner": "scanner-primary", "fingerprint": "92388755d3a397aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9ad779f9b1804d2b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/screens/SubscriptionPlans/components/PaymentMethodModal.tsx:3"}, "properties": {"repobilityId": "b1c68ce0bfe5749f", "scanner": "scanner-primary", "fingerprint": "9ad779f9b1804d2b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-14d1a472ed241416", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/screens/Schedule/__tests__/ScheduleScreen.weekNav.test.tsx:6"}, "properties": {"repobilityId": "b237bef3746cc49a", "scanner": "scanner-primary", "fingerprint": "14d1a472ed241416", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-af95bdd9d6460bd8", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/screens/Admin/AdminCustomerDetailsScreen.tsx:124"}, "properties": {"repobilityId": "5f5a52c814dfc6c3", "scanner": "scanner-primary", "fingerprint": "af95bdd9d6460bd8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fabfe6187228b58f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/Admin/AdminScheduleScreen.tsx:146"}, "properties": {"repobilityId": "e204a248f0d65604", "scanner": "scanner-primary", "fingerprint": "fabfe6187228b58f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0912afb45e9827f2", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/screens/Admin/__tests__/AdminCustomerDetailsScreen.editGuard.test.tsx:5"}, "properties": {"repobilityId": "1a148328c78ca76d", "scanner": "scanner-primary", "fingerprint": "0912afb45e9827f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e74cd0844896ae9d", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/screens/Admin/__tests__/AdminScheduleScreen.polish.test.ts:3"}, "properties": {"repobilityId": "5d36028eaf8f66a0", "scanner": "scanner-primary", "fingerprint": "e74cd0844896ae9d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c1bc21d744887639", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/screens/Admin/__tests__/AdminCustomersScreen.timerLeaks.test.tsx:5"}, "properties": {"repobilityId": "a8fe3ff39ce981f1", "scanner": "scanner-primary", "fingerprint": "c1bc21d744887639", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3e0e8a92bda87de0", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/screens/Admin/components/__tests__/CustomerSearchInput.timerLeaks.test.tsx:5"}, "properties": {"repobilityId": "b34defedc3582568", "scanner": "scanner-primary", "fingerprint": "3e0e8a92bda87de0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9746a38370e7b422", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/utils/__tests__/serverErrors.test.ts:7"}, "properties": {"repobilityId": "7f7a23e897b5fb46", "scanner": "scanner-primary", "fingerprint": "9746a38370e7b422", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b754a04d5ada7d77", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/features/api/apiSlice.ts:44"}, "properties": {"repobilityId": "a6bb1c99e65286c1", "scanner": "scanner-primary", "fingerprint": "b754a04d5ada7d77", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2133af546589ed2e", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/features/api/__tests__/apiSlice.timeout.test.ts:3"}, "properties": {"repobilityId": "03078a02c138c902", "scanner": "scanner-primary", "fingerprint": "2133af546589ed2e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de385b1005117b03", "level": "note", "message": {"text": "Unused endpoint: POST /v1/me/bootstrap"}, "properties": {"repobilityId": "a89e3ee05ac6441a", "scanner": "scanner-primary", "fingerprint": "de385b1005117b03", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-71b51f26178f6d04", "level": "note", "message": {"text": "Unused endpoint: GET /v1/me"}, "properties": {"repobilityId": "9bdc393737e2c1ca", "scanner": "scanner-primary", "fingerprint": "71b51f26178f6d04", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}