{"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-f13595f56b125817", "name": "`truncate` class without `title=` for hover reveal \u2014 src/screens/Settings.tsx:567", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/screens/Settings.tsx:567"}, "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-856eb9ac2bde96a3", "name": "`truncate` class without `title=` for hover reveal \u2014 src/screens/admin/OrgAndUsers.tsx:325", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/screens/admin/OrgAndUsers.tsx:325"}, "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-7cfb8eac76fd1f59", "name": "`truncate` class without `title=` for hover reveal \u2014 src/screens/admin/OrganizationManager.tsx:430", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/screens/admin/OrganizationManager.tsx:430"}, "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-bb667f9260efbcdc", "name": "`truncate` class without `title=` for hover reveal \u2014 src/screens/admin/CompanyManager.tsx:1249", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/screens/admin/CompanyManager.tsx:1249"}, "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-c248de16a5998861", "name": "`truncate` class without `title=` for hover reveal \u2014 src/screens/admin/AdminDashboard.tsx:518", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/screens/admin/AdminDashboard.tsx:518"}, "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-3b3436a07ebebce2", "name": "`truncate` class without `title=` for hover reveal \u2014 src/screens/admin/AIReviewQueue.tsx:209", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/screens/admin/AIReviewQueue.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-2214301e9e95cc54", "name": "`truncate` class without `title=` for hover reveal \u2014 src/screens/admin/DeveloperDashboard.tsx:416", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/screens/admin/DeveloperDashboard.tsx:416"}, "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-333e776903a2c919", "name": "`truncate` class without `title=` for hover reveal \u2014 src/screens/admin/ContactManager.tsx:520", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/screens/admin/ContactManager.tsx:520"}, "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-f69e1d7faea54db8", "name": "`truncate` class without `title=` for hover reveal \u2014 src/screens/principal/PrincipalDashboard.tsx:105", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/screens/principal/PrincipalDashboard.tsx:105"}, "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-f29e8c40d844f854", "name": "`truncate` class without `title=` for hover reveal \u2014 src/screens/salesperson/ProspectDetail.tsx:403", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/screens/salesperson/ProspectDetail.tsx:403"}, "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-44694d28f7400f91", "name": "`truncate` class without `title=` for hover reveal \u2014 src/screens/salesperson/MyOrg.tsx:499", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/screens/salesperson/MyOrg.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-162d01b4ddeade17", "name": "`truncate` class without `title=` for hover reveal \u2014 src/screens/salesperson/Dashboard.tsx:506", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/screens/salesperson/Dashboard.tsx:506"}, "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-85a5f6cd612df63d", "name": "`truncate` class without `title=` for hover reveal \u2014 src/screens/salesperson/Companies.tsx:712", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/screens/salesperson/Companies.tsx:712"}, "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-8c1a03f85a87277d", "name": "`truncate` class without `title=` for hover reveal \u2014 src/screens/salesperson/Pipeline.tsx:495", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/screens/salesperson/Pipeline.tsx:495"}, "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-23b463489242daac", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/GlobalSearch.tsx:181", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/GlobalSearch.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-326accc316d11412", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/Dropdown.tsx:275", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/Dropdown.tsx:275"}, "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-ee1e729199d0d0bd", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/DealPreviewModal.tsx:279", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/DealPreviewModal.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-75556b30a394021b", "name": "\"active\" state uses light bg in a dark theme \u2014 src/components/LoginPanel.tsx:411", "shortDescription": {"text": "\"active\" state uses light bg in a dark theme \u2014 src/components/LoginPanel.tsx:411"}, "fullDescription": {"text": "A ternary like `active ? 'bg-white' : '...'` (or bg-gray-100/200) on a dark theme produces jarring white pills. Use a dark-emphasized active state instead \u2014 border + ring or slightly brighter dark bg. Example: `active ? 'bg-gray-800 border-gray-500 ring-1 ring-blue-500/30' : '\u2026'`.\n\nWhy: P-E in CHECKLIST.md \u2014 light bg in a dark theme is a class of regression.\nRule id: fq.active-light-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3adaa792543f4fd8", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/UserMenu.tsx:145", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/UserMenu.tsx:145"}, "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-5ee011a03db3214b", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/DataViewShell.tsx:86", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/DataViewShell.tsx:86"}, "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-d8bc63d563fc6db0", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/BrowserFrame.tsx:33", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/BrowserFrame.tsx:33"}, "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-518bdebf0a7102fe", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/EcosystemChart.tsx:388", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/EcosystemChart.tsx:388"}, "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-048d29fd1c04e65f", "name": "Insecure pattern 'direct_innerhtml_assignment' in happnnow_prototype.html:1530", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in happnnow_prototype.html:1530"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-edcc7ad496b3cbef", "name": "Possible secret in scripts/seed-mock-hierarchy.mjs", "shortDescription": {"text": "Possible secret in scripts/seed-mock-hierarchy.mjs"}, "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-8f0d58a7056d23d0", "name": "Possible secret in scripts/test-deal-collab.mjs", "shortDescription": {"text": "Possible secret in scripts/test-deal-collab.mjs"}, "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-7425938b1c2c3414", "name": "Possible secret in scripts/test-signup-diagnostic.mjs", "shortDescription": {"text": "Possible secret in scripts/test-signup-diagnostic.mjs"}, "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-6a6ec8123eb141d9", "name": "Possible secret in scripts/test-hierarchy-schema.mjs", "shortDescription": {"text": "Possible secret in scripts/test-hierarchy-schema.mjs"}, "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-4557eb11993c4915", "name": "Possible secret in scripts/test-users-insert.mjs", "shortDescription": {"text": "Possible secret in scripts/test-users-insert.mjs"}, "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-44201289ee5e6692", "name": "Possible secret in scripts/test-dev-suggestions.mjs", "shortDescription": {"text": "Possible secret in scripts/test-dev-suggestions.mjs"}, "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-c40e311ec83155e1", "name": "Possible secret in scripts/test-hierarchy-rls.mjs", "shortDescription": {"text": "Possible secret in scripts/test-hierarchy-rls.mjs"}, "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-9486e2f735623e64", "name": "Possible secret in scripts/test-ecosystem-view.mjs", "shortDescription": {"text": "Possible secret in scripts/test-ecosystem-view.mjs"}, "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-ed40f1bff0356581", "name": "Possible secret in scripts/test-admin-invite-flow.mjs", "shortDescription": {"text": "Possible secret in scripts/test-admin-invite-flow.mjs"}, "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-f2398999d21c6488", "name": "Possible secret in scripts/test-dev-dashboard-migration.mjs", "shortDescription": {"text": "Possible secret in scripts/test-dev-dashboard-migration.mjs"}, "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-d43bb6052a2071bf", "name": "Possible secret in scripts/create-demo-user.mjs", "shortDescription": {"text": "Possible secret in scripts/create-demo-user.mjs"}, "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-60907ce6d9deb9c2", "name": "Possible secret in scripts/test-calendar-events.mjs", "shortDescription": {"text": "Possible secret in scripts/test-calendar-events.mjs"}, "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-99fd9edfabfa4a5e", "name": "Possible secret in scripts/test-contact-change-requests.mjs", "shortDescription": {"text": "Possible secret in scripts/test-contact-change-requests.mjs"}, "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-a1fba6c1aec51e25", "name": "Possible secret in scripts/test-search-consistency.mjs", "shortDescription": {"text": "Possible secret in scripts/test-search-consistency.mjs"}, "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-75404c5ef8961c1f", "name": "Possible secret in scripts/test-dev-logs.mjs", "shortDescription": {"text": "Possible secret in scripts/test-dev-logs.mjs"}, "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-389ac4a993f27841", "name": "Possible secret in scripts/test-040-org-management.mjs", "shortDescription": {"text": "Possible secret in scripts/test-040-org-management.mjs"}, "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-60c7c6c3b1cea96e", "name": "Possible secret in scripts/capture-pitch-screenshots.mjs", "shortDescription": {"text": "Possible secret in scripts/capture-pitch-screenshots.mjs"}, "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-917799d4d91e5038", "name": "Possible secret in scripts/create-sales-owners.mjs", "shortDescription": {"text": "Possible secret in scripts/create-sales-owners.mjs"}, "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-8ebd96c41a4892a2", "name": "Possible secret in scripts/seed-mock-team.mjs", "shortDescription": {"text": "Possible secret in scripts/seed-mock-team.mjs"}, "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-69bca7c5fd4c56c4", "name": "Possible secret in scripts/trigger-and-read-debug.mjs", "shortDescription": {"text": "Possible secret in scripts/trigger-and-read-debug.mjs"}, "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-d7e3b4512148acc7", "name": "Possible secret in scripts/capture-landing-shots.mjs", "shortDescription": {"text": "Possible secret in scripts/capture-landing-shots.mjs"}, "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-c930e626d8a63f4b", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/claude-proxy/index.ts:617", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/claude-proxy/index.ts:617"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6876016364c4dff3", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/news-classifier/index.ts:332", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/news-classifier/index.ts:332"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-69975f9dd8011cb2", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/dev-logs/index.ts:48", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/dev-logs/index.ts:48"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5e46b4b6a6484256", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/news-fetch/index.ts:210", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/news-fetch/index.ts:210"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b6f1fee4f3543ded", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/news-rss-poller/index.ts:356", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/news-rss-poller/index.ts:356"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-74c1bc6149e4adb5", "name": "Possible secret in src/lib/godMode.ts", "shortDescription": {"text": "Possible secret in src/lib/godMode.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-27924aa79fa4a517", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a95677413f0d8df0", "name": "Very large file: src/screens/Settings.tsx (1385 lines)", "shortDescription": {"text": "Very large file: src/screens/Settings.tsx (1385 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-f9e8195080852861", "name": "Very large file: src/screens/admin/CompanyManager.tsx (2782 lines)", "shortDescription": {"text": "Very large file: src/screens/admin/CompanyManager.tsx (2782 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-3714b45aaac1effb", "name": "Very large file: src/screens/admin/AdminDashboard.tsx (1578 lines)", "shortDescription": {"text": "Very large file: src/screens/admin/AdminDashboard.tsx (1578 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-a4fca3451b046ba4", "name": "Very large file: src/screens/salesperson/MyOrg.tsx (1231 lines)", "shortDescription": {"text": "Very large file: src/screens/salesperson/MyOrg.tsx (1231 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-70e8e0b030f26232", "name": "Very large file: src/screens/salesperson/Companies.tsx (1335 lines)", "shortDescription": {"text": "Very large file: src/screens/salesperson/Companies.tsx (1335 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-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 457 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 323 placeholder/mock markers across 53 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-11825279136b53a3", "name": "CI is configured but no tests are detected", "shortDescription": {"text": "CI is configured but no tests are detected"}, "fullDescription": {"text": "A CI pipeline exists, but the scan found no test files to gate. Opus labeled this generated-code pattern as config theater: release machinery exists, but it has little behavioral signal."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, tests, 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": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license, tests, 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-b3eac2f88ba923f2", "name": "Agent instruction/config may expose a secret: .claude/skills/verify-backend-change.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: .claude/skills/verify-backend-change.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2b0ac61649e08e84", "name": "Commented-code block (5 lines) in tailwind.config.ts:21", "shortDescription": {"text": "Commented-code block (5 lines) in tailwind.config.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-a3103bd12f8c3e61", "name": "Commented-code block (5 lines) in scripts/seed-mock-hierarchy.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/seed-mock-hierarchy.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-c500adb421f09335", "name": "Commented-code block (5 lines) in scripts/test-deal-collab.mjs:10", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/test-deal-collab.mjs: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-27bdebf0c4b31eee", "name": "Commented-code block (6 lines) in scripts/test-hierarchy-schema.mjs:1", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/test-hierarchy-schema.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-5810ab4a1afca414", "name": "Commented-code block (6 lines) in scripts/news-trigger.mjs:1", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/news-trigger.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-80ecc440021ec6c1", "name": "Commented-code block (7 lines) in scripts/test-mock-hierarchy.mjs:1", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/test-mock-hierarchy.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-844477f619c486f0", "name": "Commented-code block (5 lines) in scripts/test-users-insert.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/test-users-insert.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-05bc1db6f89ad352", "name": "Commented-code block (8 lines) in scripts/test-dev-suggestions.mjs:9", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/test-dev-suggestions.mjs: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-662de45b2b3190ce", "name": "Commented-code block (8 lines) in scripts/test-hierarchy-rls.mjs:8", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/test-hierarchy-rls.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-acf5eccae2af0ecc", "name": "Commented-code block (5 lines) in scripts/build-pitch-deck.mjs:8", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/build-pitch-deck.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-8aa78d5275ecab93", "name": "Commented-code block (5 lines) in scripts/test-ecosystem-view.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/test-ecosystem-view.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-96808a8cd24dea83", "name": "Commented-code block (6 lines) in scripts/test-sub-industry-consistency.mjs:1", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/test-sub-industry-consistency.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-98600266a8b9ca66", "name": "Commented-code block (6 lines) in scripts/test-admin-invite-flow.mjs:1", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/test-admin-invite-flow.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-7b5cc51423c563f2", "name": "Legacy-named symbol `companyByLegacy` in scripts/import-supabase.mjs:216", "shortDescription": {"text": "Legacy-named symbol `companyByLegacy` in scripts/import-supabase.mjs:216"}, "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-b603990a7f2e0101", "name": "Commented-code block (6 lines) in scripts/import-supabase.mjs:1", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/import-supabase.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-91005d503340b140", "name": "Commented-code block (5 lines) in scripts/test-dev-dashboard-migration.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/test-dev-dashboard-migration.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-b2192ab830678e1b", "name": "Commented-code block (5 lines) in scripts/create-demo-user.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/create-demo-user.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-dbd30e253c74671a", "name": "Commented-code block (10 lines) in scripts/test-github-webhook.mjs:6", "shortDescription": {"text": "Commented-code block (10 lines) in scripts/test-github-webhook.mjs: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-2ecd7f2f9f1eac8a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-github-webhook.mjs:86", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-github-webhook.mjs:86"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-daaddf477dd4ba34", "name": "Commented-code block (5 lines) in scripts/test-asset-name-hint.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/test-asset-name-hint.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-291c96bcbaad9457", "name": "Commented-code block (7 lines) in scripts/test-calendar-events.mjs:9", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/test-calendar-events.mjs: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-8ab0d7ca364e715b", "name": "Commented-code block (6 lines) in scripts/test-industry-asset-fields.mjs:1", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/test-industry-asset-fields.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-f13c68d799ab339c", "name": "Commented-code block (6 lines) in scripts/test-news-relevance.mjs:1", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/test-news-relevance.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-a5e3bfe54c92fbc2", "name": "Commented-code block (7 lines) in scripts/test-parent-company-match.mjs:1", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/test-parent-company-match.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-555a43c6ac3c6123", "name": "Commented-code block (5 lines) in scripts/test-contact-change-requests.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/test-contact-change-requests.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-adabd618b90e06cc", "name": "Commented-code block (5 lines) in scripts/test-industry-asset-types.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/test-industry-asset-types.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-bec37bebecf62dcc", "name": "Commented-code block (7 lines) in scripts/test-vercel-webhook.mjs:6", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/test-vercel-webhook.mjs: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-cb147510382126b3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-vercel-webhook.mjs:77", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-vercel-webhook.mjs:77"}, "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-de295109a577d4c9", "name": "Commented-code block (6 lines) in scripts/reclassify-pln-pltd-kendari.mjs:1", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/reclassify-pln-pltd-kendari.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-a54a1357f2ae1787", "name": "Commented-code block (7 lines) in scripts/test-search-consistency.mjs:1", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/test-search-consistency.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-7ead707e7fab2922", "name": "Commented-code block (6 lines) in scripts/test-rss-pipeline.mjs:1", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/test-rss-pipeline.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-ad843b6d9db2311f", "name": "Commented-code block (8 lines) in scripts/test-subsidiary-cascade.mjs:1", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/test-subsidiary-cascade.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-6c132f24db921342", "name": "Commented-code block (6 lines) in scripts/test-industry-news.mjs:1", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/test-industry-news.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-804bb204b52b84f2", "name": "Commented-code block (5 lines) in scripts/prepare-excel.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/prepare-excel.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-45541e7979dea66e", "name": "Commented-code block (6 lines) in scripts/apply-migration.mjs:1", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/apply-migration.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-400232286dd41d2e", "name": "Commented-code block (10 lines) in scripts/test-dev-logs.mjs:6", "shortDescription": {"text": "Commented-code block (10 lines) in scripts/test-dev-logs.mjs: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-9d51e97166c74e79", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-dev-logs.mjs:57", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-dev-logs.mjs:57"}, "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-4a0354711320a5c4", "name": "Commented-code block (6 lines) in scripts/test-040-org-management.mjs:1", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/test-040-org-management.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-20df6b5a1c805743", "name": "Commented-code block (5 lines) in scripts/test-admin-invite-email-confirm.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/test-admin-invite-email-confirm.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-85f6d0dd9542b706", "name": "Commented-code block (5 lines) in scripts/create-sales-owners.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/create-sales-owners.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-7e567558351ad318", "name": "Commented-code block (5 lines) in scripts/seed-mock-team.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/seed-mock-team.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-d94ad91e69166070", "name": "Commented-code block (5 lines) in scripts/capture-landing-shots.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/capture-landing-shots.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-152c4f1d42eca756", "name": "Commented-code block (5 lines) in supabase/functions/claude-proxy/index.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in supabase/functions/claude-proxy/index.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-950e10310b6d00d0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/claude-proxy/index.ts:486", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/claude-proxy/index.ts:486"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-28a96a516b8303ee", "name": "Commented-code block (7 lines) in supabase/functions/news-classifier/index.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in supabase/functions/news-classifier/index.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-de90ec0a479d9d3f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/news-classifier/index.ts:6", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/news-classifier/index.ts:6"}, "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-8519b9a3731cc711", "name": "Commented-code block (8 lines) in supabase/functions/dev-logs/index.ts:18", "shortDescription": {"text": "Commented-code block (8 lines) in supabase/functions/dev-logs/index.ts:18"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dcf765a42179d00d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/dev-logs/index.ts:134", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/dev-logs/index.ts:134"}, "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-b98e30f8927eb2e5", "name": "Commented-code block (7 lines) in supabase/functions/news-fetch/index.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in supabase/functions/news-fetch/index.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-38ed5fc20a468cf3", "name": "Commented-code block (7 lines) in supabase/functions/news-rss-poller/index.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in supabase/functions/news-rss-poller/index.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-bcf72d4d424492f3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/news-rss-poller/index.ts:20", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/news-rss-poller/index.ts:20"}, "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-e0a28d05552aa305", "name": "Commented-code block (6 lines) in supabase/functions/github-webhook/index.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in supabase/functions/github-webhook/index.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-efa4c75992c5fff0", "name": "Commented-code block (6 lines) in supabase/functions/vercel-webhook/index.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in supabase/functions/vercel-webhook/index.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-e89c9bb1f49f49ec", "name": "Commented-code block (6 lines) in src/types/index.ts:13", "shortDescription": {"text": "Commented-code block (6 lines) in src/types/index.ts:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-279cd91fed59511a", "name": "Commented-code block (8 lines) in src/screens/Landing.tsx:25", "shortDescription": {"text": "Commented-code block (8 lines) in src/screens/Landing.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-00bc2d0a1013b68f", "name": "Commented-code block (5 lines) in src/screens/Settings.tsx:23", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/Settings.tsx:23"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-39c3f953622d36f8", "name": "Commented-code block (8 lines) in src/screens/admin/OrgAndUsers.tsx:16", "shortDescription": {"text": "Commented-code block (8 lines) in src/screens/admin/OrgAndUsers.tsx: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-bb05b4312a8633fd", "name": "Commented-code block (7 lines) in src/screens/admin/DataIntelligence.tsx:9", "shortDescription": {"text": "Commented-code block (7 lines) in src/screens/admin/DataIntelligence.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-25c4a3476676b8b0", "name": "Commented-code block (11 lines) in src/screens/admin/AdminInviteAccept.tsx:8", "shortDescription": {"text": "Commented-code block (11 lines) in src/screens/admin/AdminInviteAccept.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-25fd7b7af6bb2b75", "name": "Commented-code block (5 lines) in src/screens/admin/OrganizationManager.tsx:20", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/admin/OrganizationManager.tsx:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cc498121e0ad8150", "name": "Commented-code block (11 lines) in src/screens/admin/CompanyManager.tsx:22", "shortDescription": {"text": "Commented-code block (11 lines) in src/screens/admin/CompanyManager.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-4a5d26111801f84d", "name": "Commented-code block (9 lines) in src/screens/admin/AdminDashboard.tsx:56", "shortDescription": {"text": "Commented-code block (9 lines) in src/screens/admin/AdminDashboard.tsx:56"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dad2975b87e9e84f", "name": "Commented-code block (6 lines) in src/screens/admin/IndustryManager.tsx:10", "shortDescription": {"text": "Commented-code block (6 lines) in src/screens/admin/IndustryManager.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-0f2b92eb7b1261be", "name": "Commented-code block (5 lines) in src/screens/admin/UserManager.tsx:18", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/admin/UserManager.tsx:18"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a5109baaaa38730e", "name": "Commented-code block (7 lines) in src/screens/admin/DeveloperDashboard.tsx:14", "shortDescription": {"text": "Commented-code block (7 lines) in src/screens/admin/DeveloperDashboard.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-8dc4fb2f6dd66f6a", "name": "Commented-code block (5 lines) in src/screens/admin/ContactManager.tsx:13", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/admin/ContactManager.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-855768f2e9540171", "name": "Commented-code block (6 lines) in src/screens/admin/GodMode.tsx:10", "shortDescription": {"text": "Commented-code block (6 lines) in src/screens/admin/GodMode.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-1c2ee345c6a328fa", "name": "Commented-code block (6 lines) in src/screens/principal/PrincipalDashboard.tsx:11", "shortDescription": {"text": "Commented-code block (6 lines) in src/screens/principal/PrincipalDashboard.tsx: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-d3991bdea964b5f3", "name": "Commented-code block (5 lines) in src/screens/salesperson/ProspectDetail.tsx:380", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/salesperson/ProspectDetail.tsx:380"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d4de0de39edf7152", "name": "Commented-code block (9 lines) in src/screens/salesperson/MyOrg.tsx:21", "shortDescription": {"text": "Commented-code block (9 lines) in src/screens/salesperson/MyOrg.tsx:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6ed6f58a63e832ba", "name": "Commented-code block (8 lines) in src/screens/salesperson/Calendar.tsx:16", "shortDescription": {"text": "Commented-code block (8 lines) in src/screens/salesperson/Calendar.tsx: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-8c95c6de63886dec", "name": "Commented-code block (5 lines) in src/screens/salesperson/Dashboard.tsx:19", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/salesperson/Dashboard.tsx:19"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-51c006843837d962", "name": "Commented-code block (5 lines) in src/screens/salesperson/Forecast.tsx:12", "shortDescription": {"text": "Commented-code block (5 lines) in src/screens/salesperson/Forecast.tsx:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-874c2641f413fbbf", "name": "Commented-code block (6 lines) in src/screens/salesperson/Companies.tsx:1118", "shortDescription": {"text": "Commented-code block (6 lines) in src/screens/salesperson/Companies.tsx:1118"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5ab485b3c2b94d91", "name": "Commented-code block (7 lines) in src/components/ConfirmDialog.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/ConfirmDialog.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-879578822e810b41", "name": "Commented-code block (5 lines) in src/components/AddDealModal.tsx:17", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/AddDealModal.tsx: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-dfb2cdc4929239fc", "name": "Commented-code block (11 lines) in src/components/Segmented.tsx:17", "shortDescription": {"text": "Commented-code block (11 lines) in src/components/Segmented.tsx: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-c278facd7f716f6e", "name": "Commented-code block (8 lines) in src/components/AppSidebar.tsx:11", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/AppSidebar.tsx: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-eee2da3e6caec43f", "name": "Commented-code block (8 lines) in src/components/ContactDetailModal.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/ContactDetailModal.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-64b0584713d2d2cc", "name": "Commented-code block (5 lines) in src/components/Dropdown.tsx:13", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/Dropdown.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-f2ca6f1621d5def3", "name": "Commented-code block (9 lines) in src/components/AIChat.tsx:24", "shortDescription": {"text": "Commented-code block (9 lines) in src/components/AIChat.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-e62dc88ecab228a2", "name": "Commented-code block (9 lines) in src/components/SettingsSection.tsx:22", "shortDescription": {"text": "Commented-code block (9 lines) in src/components/SettingsSection.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-b041cc9e018a1f3c", "name": "Commented-code block (6 lines) in src/components/ImpersonationBanner.tsx:15", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/ImpersonationBanner.tsx:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-66f1fed5b689fae5", "name": "Commented-code block (6 lines) in src/components/ErrorBoundary.tsx:13", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/ErrorBoundary.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-76caf90905577d46", "name": "Commented-code block (6 lines) in src/components/PasswordInput.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/PasswordInput.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-92c99076be8fb042", "name": "Commented-code block (6 lines) in src/components/DealPreviewModal.tsx:19", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/DealPreviewModal.tsx:19"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c4096df0266ad11a", "name": "Commented-code block (6 lines) in src/components/AppTopBar.tsx:8", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/AppTopBar.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-c3ebfa44560753a1", "name": "Commented-code block (7 lines) in src/components/Starfield.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/Starfield.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-782732b41ddc8809", "name": "Commented-code block (5 lines) in src/components/LoginPanel.tsx:29", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/LoginPanel.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-8355e948a63ca22c", "name": "Commented-code block (8 lines) in src/components/UserMenu.tsx:13", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/UserMenu.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-80771078dfbc2fd6", "name": "Commented-code block (8 lines) in src/components/DataViewShell.tsx:10", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/DataViewShell.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-ac1db3217b36e461", "name": "Commented-code block (6 lines) in src/components/FilterPopover.tsx:8", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/FilterPopover.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-7fcd56411c27fcbc", "name": "Commented-code block (8 lines) in src/components/SalesLayout.tsx:19", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/SalesLayout.tsx:19"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f397fc14f52d3215", "name": "Commented-code block (6 lines) in src/components/ThemeToggle.tsx:16", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/ThemeToggle.tsx: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-c8988b5524e5a003", "name": "Commented-code block (6 lines) in src/components/BrowserFrame.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/BrowserFrame.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-39e59110293e0e33", "name": "Commented-code block (5 lines) in src/components/EcosystemChart.tsx:54", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/EcosystemChart.tsx: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-758b2d4caf5eab9a", "name": "Commented-code block (5 lines) in src/components/AdminLayout.tsx:15", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/AdminLayout.tsx:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ce2bb244df0dc8b7", "name": "Commented-code block (5 lines) in src/contexts/PageActionContext.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/contexts/PageActionContext.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7cbab041d965dd5e", "name": "Commented-code block (5 lines) in src/lib/oilProjection.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/oilProjection.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-dad8d2839db1848f", "name": "Commented-code block (7 lines) in src/lib/masterExport.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/masterExport.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-12f09030d8e2feac", "name": "Commented-code block (6 lines) in src/lib/godMode.ts:6", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/godMode.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-ef76f1efa951e19f", "name": "Commented-code block (5 lines) in src/lib/PitchDeckDocument.tsx:12", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/PitchDeckDocument.tsx:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b37dbece5ee1994b", "name": "Commented-code block (6 lines) in src/lib/supabase.ts:6", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/supabase.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-2ed918251b130a7f", "name": "Commented-code block (6 lines) in src/lib/avatar.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/avatar.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-63de031f01e8ca4e", "name": "Commented-code block (5 lines) in src/lib/roleBadges.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/roleBadges.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-76ae371bf0438855", "name": "Commented-code block (6 lines) in src/lib/csvExport.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/csvExport.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-24882b86f3547e2b", "name": "Commented-code block (8 lines) in src/lib/errorReporting.ts:12", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/errorReporting.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-ca0e9ef0bc30646f", "name": "Commented-code block (13 lines) in src/hooks/useSlidingIndicator.ts:8", "shortDescription": {"text": "Commented-code block (13 lines) in src/hooks/useSlidingIndicator.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-2b99153610bc695d", "name": "Frontend route `/login` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/login` has no Link/navigate to it \u2014 src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-205921d930874b8b", "name": "Frontend route `/about` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/about` has no Link/navigate to it \u2014 src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b27b48ee8911409b", "name": "Frontend route `/features` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/features` has no Link/navigate to it \u2014 src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c3c38adaa6cd56ab", "name": "Frontend route `/pricing` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/pricing` has no Link/navigate to it \u2014 src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-406143d8507bf4c6", "name": "Frontend route `/faq` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/faq` has no Link/navigate to it \u2014 src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c48da15bde0d1343", "name": "Frontend route `/admin-invite/:token` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/admin-invite/:token` has no Link/navigate to it \u2014 src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-33f551c0215d05f4", "name": "Frontend route `/prospect/:id` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/prospect/:id` has no Link/navigate to it \u2014 src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7548234990f6cc6c", "name": "Frontend route `/deal/:id` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/deal/:id` has no Link/navigate to it \u2014 src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-725d0c8483684f94", "name": "Frontend route `/admin/org-users/ecosystem` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/admin/org-users/ecosystem` has no Link/navigate to it \u2014 src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1438d444670d3163", "name": "Frontend route `/admin/industries` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/admin/industries` has no Link/navigate to it \u2014 src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c1e8381b4571af48", "name": "Frontend route `/admin/companies` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/admin/companies` has no Link/navigate to it \u2014 src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f0c587060f3cd16b", "name": "Frontend route `/admin/contacts` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/admin/contacts` has no Link/navigate to it \u2014 src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2676d9b8c6b2063c", "name": "Frontend route `/admin/users` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/admin/users` has no Link/navigate to it \u2014 src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-871cf7a71243a12c", "name": "Frontend route `/admin/organizations` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/admin/organizations` has no Link/navigate to it \u2014 src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/18934"}, "properties": {"repository": "sapths/Navigate.io", "repoUrl": "https://github.com/sapths/Navigate.io", "branch": "main"}, "results": [{"ruleId": "scanner-f13595f56b125817", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/screens/Settings.tsx:567"}, "properties": {"repobilityId": "95e23566a6552907", "scanner": "scanner-primary", "fingerprint": "f13595f56b125817", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-856eb9ac2bde96a3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/screens/admin/OrgAndUsers.tsx:325"}, "properties": {"repobilityId": "5599f8dbbf5bf0c1", "scanner": "scanner-primary", "fingerprint": "856eb9ac2bde96a3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7cfb8eac76fd1f59", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/screens/admin/OrganizationManager.tsx:430"}, "properties": {"repobilityId": "be46168ea0d3ce6f", "scanner": "scanner-primary", "fingerprint": "7cfb8eac76fd1f59", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bb667f9260efbcdc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/screens/admin/CompanyManager.tsx:1249"}, "properties": {"repobilityId": "2904c0bb2b59751e", "scanner": "scanner-primary", "fingerprint": "bb667f9260efbcdc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c248de16a5998861", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/screens/admin/AdminDashboard.tsx:518"}, "properties": {"repobilityId": "97d4e5c4eadffc34", "scanner": "scanner-primary", "fingerprint": "c248de16a5998861", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3b3436a07ebebce2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/screens/admin/AIReviewQueue.tsx:209"}, "properties": {"repobilityId": "deaf792bc24164e6", "scanner": "scanner-primary", "fingerprint": "3b3436a07ebebce2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2214301e9e95cc54", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/screens/admin/DeveloperDashboard.tsx:416"}, "properties": {"repobilityId": "b3d2e3ccbc8db9c4", "scanner": "scanner-primary", "fingerprint": "2214301e9e95cc54", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-333e776903a2c919", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/screens/admin/ContactManager.tsx:520"}, "properties": {"repobilityId": "18c6fa252930cd8a", "scanner": "scanner-primary", "fingerprint": "333e776903a2c919", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f69e1d7faea54db8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/screens/principal/PrincipalDashboard.tsx:105"}, "properties": {"repobilityId": "5bf9d0ce208d3bde", "scanner": "scanner-primary", "fingerprint": "f69e1d7faea54db8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f29e8c40d844f854", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/screens/salesperson/ProspectDetail.tsx:403"}, "properties": {"repobilityId": "10c0c41e96f4c309", "scanner": "scanner-primary", "fingerprint": "f29e8c40d844f854", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-44694d28f7400f91", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/screens/salesperson/MyOrg.tsx:499"}, "properties": {"repobilityId": "1644af506c8996b1", "scanner": "scanner-primary", "fingerprint": "44694d28f7400f91", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-162d01b4ddeade17", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/screens/salesperson/Dashboard.tsx:506"}, "properties": {"repobilityId": "7e3c03a7ae4c4b4f", "scanner": "scanner-primary", "fingerprint": "162d01b4ddeade17", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-85a5f6cd612df63d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/screens/salesperson/Companies.tsx:712"}, "properties": {"repobilityId": "cc57039b6d776a5b", "scanner": "scanner-primary", "fingerprint": "85a5f6cd612df63d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8c1a03f85a87277d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/screens/salesperson/Pipeline.tsx:495"}, "properties": {"repobilityId": "2c8a86bc1332ba73", "scanner": "scanner-primary", "fingerprint": "8c1a03f85a87277d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-23b463489242daac", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/GlobalSearch.tsx:181"}, "properties": {"repobilityId": "203bea9ee078cce8", "scanner": "scanner-primary", "fingerprint": "23b463489242daac", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-326accc316d11412", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/Dropdown.tsx:275"}, "properties": {"repobilityId": "7bfd4bb304674e46", "scanner": "scanner-primary", "fingerprint": "326accc316d11412", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ee1e729199d0d0bd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/DealPreviewModal.tsx:279"}, "properties": {"repobilityId": "e89286126ffbd69a", "scanner": "scanner-primary", "fingerprint": "ee1e729199d0d0bd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-75556b30a394021b", "level": "note", "message": {"text": "\"active\" state uses light bg in a dark theme \u2014 src/components/LoginPanel.tsx:411"}, "properties": {"repobilityId": "99ffbe889991ad65", "scanner": "scanner-primary", "fingerprint": "75556b30a394021b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.active-light-bg"]}}, {"ruleId": "scanner-3adaa792543f4fd8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/UserMenu.tsx:145"}, "properties": {"repobilityId": "ee5fcccb756665f2", "scanner": "scanner-primary", "fingerprint": "3adaa792543f4fd8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5ee011a03db3214b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/DataViewShell.tsx:86"}, "properties": {"repobilityId": "6e3b1666dadb52d8", "scanner": "scanner-primary", "fingerprint": "5ee011a03db3214b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d8bc63d563fc6db0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/BrowserFrame.tsx:33"}, "properties": {"repobilityId": "11d6e3b3adf68fad", "scanner": "scanner-primary", "fingerprint": "d8bc63d563fc6db0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-518bdebf0a7102fe", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/EcosystemChart.tsx:388"}, "properties": {"repobilityId": "8ed52c64c77aaf6b", "scanner": "scanner-primary", "fingerprint": "518bdebf0a7102fe", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-048d29fd1c04e65f", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in happnnow_prototype.html:1530"}, "properties": {"repobilityId": "65684eeb60bc8616", "scanner": "scanner-primary", "fingerprint": "048d29fd1c04e65f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "happnnow_prototype.html"}, "region": {"startLine": 1530}}}]}, {"ruleId": "scanner-edcc7ad496b3cbef", "level": "error", "message": {"text": "Possible secret in scripts/seed-mock-hierarchy.mjs"}, "properties": {"repobilityId": "6adfdb22ce2a3834", "scanner": "scanner-primary", "fingerprint": "edcc7ad496b3cbef", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/seed-mock-hierarchy.mjs"}, "region": {"startLine": 70}}}]}, {"ruleId": "scanner-8f0d58a7056d23d0", "level": "error", "message": {"text": "Possible secret in scripts/test-deal-collab.mjs"}, "properties": {"repobilityId": "6107160e29231266", "scanner": "scanner-primary", "fingerprint": "8f0d58a7056d23d0", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/test-deal-collab.mjs"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-7425938b1c2c3414", "level": "error", "message": {"text": "Possible secret in scripts/test-signup-diagnostic.mjs"}, "properties": {"repobilityId": "9bb4c942156fce43", "scanner": "scanner-primary", "fingerprint": "7425938b1c2c3414", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/test-signup-diagnostic.mjs"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-7425938b1c2c3414", "level": "error", "message": {"text": "Possible secret in scripts/test-signup-diagnostic.mjs"}, "properties": {"repobilityId": "9bb4c942156fce43", "scanner": "scanner-primary", "fingerprint": "7425938b1c2c3414", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/test-signup-diagnostic.mjs"}, "region": {"startLine": 65}}}]}, {"ruleId": "scanner-6a6ec8123eb141d9", "level": "error", "message": {"text": "Possible secret in scripts/test-hierarchy-schema.mjs"}, "properties": {"repobilityId": "202685841e17233f", "scanner": "scanner-primary", "fingerprint": "6a6ec8123eb141d9", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/test-hierarchy-schema.mjs"}, "region": {"startLine": 65}}}]}, {"ruleId": "scanner-6a6ec8123eb141d9", "level": "error", "message": {"text": "Possible secret in scripts/test-hierarchy-schema.mjs"}, "properties": {"repobilityId": "202685841e17233f", "scanner": "scanner-primary", "fingerprint": "6a6ec8123eb141d9", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/test-hierarchy-schema.mjs"}, "region": {"startLine": 83}}}]}, {"ruleId": "scanner-4557eb11993c4915", "level": "error", "message": {"text": "Possible secret in scripts/test-users-insert.mjs"}, "properties": {"repobilityId": "b8b1174e713138bb", "scanner": "scanner-primary", "fingerprint": "4557eb11993c4915", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/test-users-insert.mjs"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-44201289ee5e6692", "level": "error", "message": {"text": "Possible secret in scripts/test-dev-suggestions.mjs"}, "properties": {"repobilityId": "8a45d44c142825fc", "scanner": "scanner-primary", "fingerprint": "44201289ee5e6692", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/test-dev-suggestions.mjs"}, "region": {"startLine": 130}}}]}, {"ruleId": "scanner-c40e311ec83155e1", "level": "error", "message": {"text": "Possible secret in scripts/test-hierarchy-rls.mjs"}, "properties": {"repobilityId": "8188b1061c679d4a", "scanner": "scanner-primary", "fingerprint": "c40e311ec83155e1", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/test-hierarchy-rls.mjs"}, "region": {"startLine": 55}}}]}, {"ruleId": "scanner-9486e2f735623e64", "level": "error", "message": {"text": "Possible secret in scripts/test-ecosystem-view.mjs"}, "properties": {"repobilityId": "d078696f8b6a0230", "scanner": "scanner-primary", "fingerprint": "9486e2f735623e64", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/test-ecosystem-view.mjs"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-ed40f1bff0356581", "level": "error", "message": {"text": "Possible secret in scripts/test-admin-invite-flow.mjs"}, "properties": {"repobilityId": "0c830150cf0fef27", "scanner": "scanner-primary", "fingerprint": "ed40f1bff0356581", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/test-admin-invite-flow.mjs"}, "region": {"startLine": 53}}}]}, {"ruleId": "scanner-f2398999d21c6488", "level": "error", "message": {"text": "Possible secret in scripts/test-dev-dashboard-migration.mjs"}, "properties": {"repobilityId": "f0f16f1c218d2f19", "scanner": "scanner-primary", "fingerprint": "f2398999d21c6488", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/test-dev-dashboard-migration.mjs"}, "region": {"startLine": 130}}}]}, {"ruleId": "scanner-d43bb6052a2071bf", "level": "error", "message": {"text": "Possible secret in scripts/create-demo-user.mjs"}, "properties": {"repobilityId": "3d5061bb19e0b36d", "scanner": "scanner-primary", "fingerprint": "d43bb6052a2071bf", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/create-demo-user.mjs"}, "region": {"startLine": 68}}}]}, {"ruleId": "scanner-60907ce6d9deb9c2", "level": "error", "message": {"text": "Possible secret in scripts/test-calendar-events.mjs"}, "properties": {"repobilityId": "a1aab3982a8c8e39", "scanner": "scanner-primary", "fingerprint": "60907ce6d9deb9c2", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/test-calendar-events.mjs"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-99fd9edfabfa4a5e", "level": "error", "message": {"text": "Possible secret in scripts/test-contact-change-requests.mjs"}, "properties": {"repobilityId": "6432df1e8fcf1d84", "scanner": "scanner-primary", "fingerprint": "99fd9edfabfa4a5e", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/test-contact-change-requests.mjs"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-a1fba6c1aec51e25", "level": "error", "message": {"text": "Possible secret in scripts/test-search-consistency.mjs"}, "properties": {"repobilityId": "0179678cfe515d9f", "scanner": "scanner-primary", "fingerprint": "a1fba6c1aec51e25", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/test-search-consistency.mjs"}, "region": {"startLine": 51}}}]}, {"ruleId": "scanner-75404c5ef8961c1f", "level": "error", "message": {"text": "Possible secret in scripts/test-dev-logs.mjs"}, "properties": {"repobilityId": "72aba37dba7015e0", "scanner": "scanner-primary", "fingerprint": "75404c5ef8961c1f", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/test-dev-logs.mjs"}, "region": {"startLine": 71}}}]}, {"ruleId": "scanner-389ac4a993f27841", "level": "error", "message": {"text": "Possible secret in scripts/test-040-org-management.mjs"}, "properties": {"repobilityId": "9e83bbdec6e8bfda", "scanner": "scanner-primary", "fingerprint": "389ac4a993f27841", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/test-040-org-management.mjs"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-60c7c6c3b1cea96e", "level": "error", "message": {"text": "Possible secret in scripts/capture-pitch-screenshots.mjs"}, "properties": {"repobilityId": "52a0cd0751cd223b", "scanner": "scanner-primary", "fingerprint": "60c7c6c3b1cea96e", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/capture-pitch-screenshots.mjs"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-917799d4d91e5038", "level": "error", "message": {"text": "Possible secret in scripts/create-sales-owners.mjs"}, "properties": {"repobilityId": "c8d5f456a5c7bb13", "scanner": "scanner-primary", "fingerprint": "917799d4d91e5038", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/create-sales-owners.mjs"}, "region": {"startLine": 139}}}]}, {"ruleId": "scanner-8ebd96c41a4892a2", "level": "error", "message": {"text": "Possible secret in scripts/seed-mock-team.mjs"}, "properties": {"repobilityId": "6aeacaf3d8fe946f", "scanner": "scanner-primary", "fingerprint": "8ebd96c41a4892a2", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/seed-mock-team.mjs"}, "region": {"startLine": 93}}}]}, {"ruleId": "scanner-69bca7c5fd4c56c4", "level": "error", "message": {"text": "Possible secret in scripts/trigger-and-read-debug.mjs"}, "properties": {"repobilityId": "4d8c679243c703c0", "scanner": "scanner-primary", "fingerprint": "69bca7c5fd4c56c4", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/trigger-and-read-debug.mjs"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-d7e3b4512148acc7", "level": "error", "message": {"text": "Possible secret in scripts/capture-landing-shots.mjs"}, "properties": {"repobilityId": "39adb4665649e205", "scanner": "scanner-primary", "fingerprint": "d7e3b4512148acc7", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/capture-landing-shots.mjs"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-c930e626d8a63f4b", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/claude-proxy/index.ts:617"}, "properties": {"repobilityId": "07acf3a17dae0121", "scanner": "scanner-primary", "fingerprint": "c930e626d8a63f4b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/claude-proxy/index.ts"}, "region": {"startLine": 617}}}]}, {"ruleId": "scanner-6876016364c4dff3", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/news-classifier/index.ts:332"}, "properties": {"repobilityId": "d93b2a93ed99926d", "scanner": "scanner-primary", "fingerprint": "6876016364c4dff3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/news-classifier/index.ts"}, "region": {"startLine": 332}}}]}, {"ruleId": "scanner-69975f9dd8011cb2", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/dev-logs/index.ts:48"}, "properties": {"repobilityId": "fa3f894b78776c3e", "scanner": "scanner-primary", "fingerprint": "69975f9dd8011cb2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/dev-logs/index.ts"}, "region": {"startLine": 48}}}]}, {"ruleId": "scanner-5e46b4b6a6484256", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/news-fetch/index.ts:210"}, "properties": {"repobilityId": "48601e1c97fa0eaf", "scanner": "scanner-primary", "fingerprint": "5e46b4b6a6484256", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/news-fetch/index.ts"}, "region": {"startLine": 210}}}]}, {"ruleId": "scanner-b6f1fee4f3543ded", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/news-rss-poller/index.ts:356"}, "properties": {"repobilityId": "41f167ba64a8d94a", "scanner": "scanner-primary", "fingerprint": "b6f1fee4f3543ded", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/news-rss-poller/index.ts"}, "region": {"startLine": 356}}}]}, {"ruleId": "scanner-74c1bc6149e4adb5", "level": "error", "message": {"text": "Possible secret in src/lib/godMode.ts"}, "properties": {"repobilityId": "b4341cf9b31fc953", "scanner": "scanner-primary", "fingerprint": "74c1bc6149e4adb5", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/godMode.ts"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ae16880318b99912", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "989a74409a402368", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-a95677413f0d8df0", "level": "note", "message": {"text": "Very large file: src/screens/Settings.tsx (1385 lines)"}, "properties": {"repobilityId": "8bd244260dbe3f0d", "scanner": "scanner-primary", "fingerprint": "a95677413f0d8df0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f9e8195080852861", "level": "note", "message": {"text": "Very large file: src/screens/admin/CompanyManager.tsx (2782 lines)"}, "properties": {"repobilityId": "4bedda31b2c518e7", "scanner": "scanner-primary", "fingerprint": "f9e8195080852861", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3714b45aaac1effb", "level": "note", "message": {"text": "Very large file: src/screens/admin/AdminDashboard.tsx (1578 lines)"}, "properties": {"repobilityId": "74502687e62734e2", "scanner": "scanner-primary", "fingerprint": "3714b45aaac1effb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a4fca3451b046ba4", "level": "note", "message": {"text": "Very large file: src/screens/salesperson/MyOrg.tsx (1231 lines)"}, "properties": {"repobilityId": "5d289cfb410452b7", "scanner": "scanner-primary", "fingerprint": "a4fca3451b046ba4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-70e8e0b030f26232", "level": "note", "message": {"text": "Very large file: src/screens/salesperson/Companies.tsx (1335 lines)"}, "properties": {"repobilityId": "9583fa21e0a7f765", "scanner": "scanner-primary", "fingerprint": "70e8e0b030f26232", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "6b442f5d46d2c197", "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": "0fe28d0173150053", "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": "9120784e168e24b4", "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": "42d7323c2fc67851", "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": "3cf0671058bbc6e6", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-11825279136b53a3", "level": "warning", "message": {"text": "CI is configured but no tests are detected"}, "properties": {"repobilityId": "adbd02665c7d7de0", "scanner": "scanner-primary", "fingerprint": "11825279136b53a3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "ci", "config-theater", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "warning", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "2745a6d4166dac01", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "medium", "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": "404993341500d1f7", "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": "6d941cfdf56ef1b2", "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": "16c94d5cdbf4ed69", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-b3eac2f88ba923f2", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: .claude/skills/verify-backend-change.md"}, "properties": {"repobilityId": "5f33ac7fdbefca0e", "scanner": "scanner-primary", "fingerprint": "b3eac2f88ba923f2", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/skills/verify-backend-change.md"}, "region": {"startLine": 76}}}]}, {"ruleId": "scanner-2b0ac61649e08e84", "level": "none", "message": {"text": "Commented-code block (5 lines) in tailwind.config.ts:21"}, "properties": {"repobilityId": "b44d7388e4aea8ec", "scanner": "scanner-primary", "fingerprint": "2b0ac61649e08e84", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a3103bd12f8c3e61", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/seed-mock-hierarchy.mjs:1"}, "properties": {"repobilityId": "f7022325b3a7bfa7", "scanner": "scanner-primary", "fingerprint": "a3103bd12f8c3e61", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c500adb421f09335", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/test-deal-collab.mjs:10"}, "properties": {"repobilityId": "8147803d0f2ced9b", "scanner": "scanner-primary", "fingerprint": "c500adb421f09335", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-27bdebf0c4b31eee", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/test-hierarchy-schema.mjs:1"}, "properties": {"repobilityId": "fa75ad9bb8359e0a", "scanner": "scanner-primary", "fingerprint": "27bdebf0c4b31eee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5810ab4a1afca414", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/news-trigger.mjs:1"}, "properties": {"repobilityId": "838fe1ad25e12e8d", "scanner": "scanner-primary", "fingerprint": "5810ab4a1afca414", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-80ecc440021ec6c1", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/test-mock-hierarchy.mjs:1"}, "properties": {"repobilityId": "275cac4a7c1a89e5", "scanner": "scanner-primary", "fingerprint": "80ecc440021ec6c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-844477f619c486f0", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/test-users-insert.mjs:1"}, "properties": {"repobilityId": "2c191a28b8b197c3", "scanner": "scanner-primary", "fingerprint": "844477f619c486f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-05bc1db6f89ad352", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/test-dev-suggestions.mjs:9"}, "properties": {"repobilityId": "e85e76676ac86c8d", "scanner": "scanner-primary", "fingerprint": "05bc1db6f89ad352", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-662de45b2b3190ce", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/test-hierarchy-rls.mjs:8"}, "properties": {"repobilityId": "60615475470a708e", "scanner": "scanner-primary", "fingerprint": "662de45b2b3190ce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-acf5eccae2af0ecc", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/build-pitch-deck.mjs:8"}, "properties": {"repobilityId": "18f6a0761326b0fe", "scanner": "scanner-primary", "fingerprint": "acf5eccae2af0ecc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8aa78d5275ecab93", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/test-ecosystem-view.mjs:1"}, "properties": {"repobilityId": "ce70c3b987088513", "scanner": "scanner-primary", "fingerprint": "8aa78d5275ecab93", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96808a8cd24dea83", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/test-sub-industry-consistency.mjs:1"}, "properties": {"repobilityId": "917c498475ec359f", "scanner": "scanner-primary", "fingerprint": "96808a8cd24dea83", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-98600266a8b9ca66", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/test-admin-invite-flow.mjs:1"}, "properties": {"repobilityId": "93ca1373c1de8115", "scanner": "scanner-primary", "fingerprint": "98600266a8b9ca66", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b5cc51423c563f2", "level": "note", "message": {"text": "Legacy-named symbol `companyByLegacy` in scripts/import-supabase.mjs:216"}, "properties": {"repobilityId": "916a921ee4a63a8a", "scanner": "scanner-primary", "fingerprint": "7b5cc51423c563f2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b603990a7f2e0101", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/import-supabase.mjs:1"}, "properties": {"repobilityId": "01b3116cb2e7ef20", "scanner": "scanner-primary", "fingerprint": "b603990a7f2e0101", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-91005d503340b140", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/test-dev-dashboard-migration.mjs:1"}, "properties": {"repobilityId": "61c73c69d69e34b1", "scanner": "scanner-primary", "fingerprint": "91005d503340b140", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b2192ab830678e1b", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/create-demo-user.mjs:1"}, "properties": {"repobilityId": "86696d326b640382", "scanner": "scanner-primary", "fingerprint": "b2192ab830678e1b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dbd30e253c74671a", "level": "none", "message": {"text": "Commented-code block (10 lines) in scripts/test-github-webhook.mjs:6"}, "properties": {"repobilityId": "512335c8aa9425e7", "scanner": "scanner-primary", "fingerprint": "dbd30e253c74671a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2ecd7f2f9f1eac8a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-github-webhook.mjs:86"}, "properties": {"repobilityId": "fb54ce620c1436cc", "scanner": "scanner-primary", "fingerprint": "2ecd7f2f9f1eac8a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-daaddf477dd4ba34", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/test-asset-name-hint.mjs:1"}, "properties": {"repobilityId": "7fe31d689fd1f97c", "scanner": "scanner-primary", "fingerprint": "daaddf477dd4ba34", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-291c96bcbaad9457", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/test-calendar-events.mjs:9"}, "properties": {"repobilityId": "92589bf9fa4e98cd", "scanner": "scanner-primary", "fingerprint": "291c96bcbaad9457", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ab0d7ca364e715b", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/test-industry-asset-fields.mjs:1"}, "properties": {"repobilityId": "6315c455212a81ce", "scanner": "scanner-primary", "fingerprint": "8ab0d7ca364e715b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f13c68d799ab339c", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/test-news-relevance.mjs:1"}, "properties": {"repobilityId": "3d2aba28629542a6", "scanner": "scanner-primary", "fingerprint": "f13c68d799ab339c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a5e3bfe54c92fbc2", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/test-parent-company-match.mjs:1"}, "properties": {"repobilityId": "e2274826cd0558e2", "scanner": "scanner-primary", "fingerprint": "a5e3bfe54c92fbc2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-555a43c6ac3c6123", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/test-contact-change-requests.mjs:1"}, "properties": {"repobilityId": "0a80814e39574edf", "scanner": "scanner-primary", "fingerprint": "555a43c6ac3c6123", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-adabd618b90e06cc", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/test-industry-asset-types.mjs:1"}, "properties": {"repobilityId": "c935888b6e07cbb8", "scanner": "scanner-primary", "fingerprint": "adabd618b90e06cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bec37bebecf62dcc", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/test-vercel-webhook.mjs:6"}, "properties": {"repobilityId": "4d1be3eb1cf0c71d", "scanner": "scanner-primary", "fingerprint": "bec37bebecf62dcc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb147510382126b3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-vercel-webhook.mjs:77"}, "properties": {"repobilityId": "dd8c46725e4c482b", "scanner": "scanner-primary", "fingerprint": "cb147510382126b3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-de295109a577d4c9", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/reclassify-pln-pltd-kendari.mjs:1"}, "properties": {"repobilityId": "cac09cdbe4f3c24f", "scanner": "scanner-primary", "fingerprint": "de295109a577d4c9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a54a1357f2ae1787", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/test-search-consistency.mjs:1"}, "properties": {"repobilityId": "174db0c11ab5cc30", "scanner": "scanner-primary", "fingerprint": "a54a1357f2ae1787", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7ead707e7fab2922", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/test-rss-pipeline.mjs:1"}, "properties": {"repobilityId": "83ffe23ab46fcc5b", "scanner": "scanner-primary", "fingerprint": "7ead707e7fab2922", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad843b6d9db2311f", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/test-subsidiary-cascade.mjs:1"}, "properties": {"repobilityId": "c45088137e3907b2", "scanner": "scanner-primary", "fingerprint": "ad843b6d9db2311f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6c132f24db921342", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/test-industry-news.mjs:1"}, "properties": {"repobilityId": "f2328c8637f9b0e2", "scanner": "scanner-primary", "fingerprint": "6c132f24db921342", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-804bb204b52b84f2", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/prepare-excel.mjs:1"}, "properties": {"repobilityId": "8162f12d7e2ae7f2", "scanner": "scanner-primary", "fingerprint": "804bb204b52b84f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-45541e7979dea66e", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/apply-migration.mjs:1"}, "properties": {"repobilityId": "d91832aa1b1e549a", "scanner": "scanner-primary", "fingerprint": "45541e7979dea66e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-400232286dd41d2e", "level": "none", "message": {"text": "Commented-code block (10 lines) in scripts/test-dev-logs.mjs:6"}, "properties": {"repobilityId": "a1598c1b907b5c34", "scanner": "scanner-primary", "fingerprint": "400232286dd41d2e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9d51e97166c74e79", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-dev-logs.mjs:57"}, "properties": {"repobilityId": "87506f7fddcc73fe", "scanner": "scanner-primary", "fingerprint": "9d51e97166c74e79", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4a0354711320a5c4", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/test-040-org-management.mjs:1"}, "properties": {"repobilityId": "0cc3a961329a29d4", "scanner": "scanner-primary", "fingerprint": "4a0354711320a5c4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-20df6b5a1c805743", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/test-admin-invite-email-confirm.mjs:1"}, "properties": {"repobilityId": "af312c9931eed8b3", "scanner": "scanner-primary", "fingerprint": "20df6b5a1c805743", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-85f6d0dd9542b706", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/create-sales-owners.mjs:1"}, "properties": {"repobilityId": "06e6921c24cf3bcc", "scanner": "scanner-primary", "fingerprint": "85f6d0dd9542b706", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7e567558351ad318", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/seed-mock-team.mjs:1"}, "properties": {"repobilityId": "768a24667993f927", "scanner": "scanner-primary", "fingerprint": "7e567558351ad318", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d94ad91e69166070", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/capture-landing-shots.mjs:1"}, "properties": {"repobilityId": "472a4886b08cf53a", "scanner": "scanner-primary", "fingerprint": "d94ad91e69166070", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-152c4f1d42eca756", "level": "none", "message": {"text": "Commented-code block (5 lines) in supabase/functions/claude-proxy/index.ts:1"}, "properties": {"repobilityId": "25f519245064823c", "scanner": "scanner-primary", "fingerprint": "152c4f1d42eca756", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-950e10310b6d00d0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/claude-proxy/index.ts:486"}, "properties": {"repobilityId": "e0cbaa3be90fd15d", "scanner": "scanner-primary", "fingerprint": "950e10310b6d00d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-28a96a516b8303ee", "level": "none", "message": {"text": "Commented-code block (7 lines) in supabase/functions/news-classifier/index.ts:1"}, "properties": {"repobilityId": "4ddfa8aa4b786bff", "scanner": "scanner-primary", "fingerprint": "28a96a516b8303ee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de90ec0a479d9d3f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/news-classifier/index.ts:6"}, "properties": {"repobilityId": "4c14bad10950b7be", "scanner": "scanner-primary", "fingerprint": "de90ec0a479d9d3f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8519b9a3731cc711", "level": "none", "message": {"text": "Commented-code block (8 lines) in supabase/functions/dev-logs/index.ts:18"}, "properties": {"repobilityId": "721d4d1ced906fbf", "scanner": "scanner-primary", "fingerprint": "8519b9a3731cc711", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dcf765a42179d00d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/dev-logs/index.ts:134"}, "properties": {"repobilityId": "86a4d0dde3e94c11", "scanner": "scanner-primary", "fingerprint": "dcf765a42179d00d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b98e30f8927eb2e5", "level": "none", "message": {"text": "Commented-code block (7 lines) in supabase/functions/news-fetch/index.ts:1"}, "properties": {"repobilityId": "946f4ac727ced3a3", "scanner": "scanner-primary", "fingerprint": "b98e30f8927eb2e5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-38ed5fc20a468cf3", "level": "none", "message": {"text": "Commented-code block (7 lines) in supabase/functions/news-rss-poller/index.ts:1"}, "properties": {"repobilityId": "73808b6b45bf2c63", "scanner": "scanner-primary", "fingerprint": "38ed5fc20a468cf3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bcf72d4d424492f3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/news-rss-poller/index.ts:20"}, "properties": {"repobilityId": "3b7da6db2011ace8", "scanner": "scanner-primary", "fingerprint": "bcf72d4d424492f3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e0a28d05552aa305", "level": "none", "message": {"text": "Commented-code block (6 lines) in supabase/functions/github-webhook/index.ts:1"}, "properties": {"repobilityId": "9892344fde29beb1", "scanner": "scanner-primary", "fingerprint": "e0a28d05552aa305", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-efa4c75992c5fff0", "level": "none", "message": {"text": "Commented-code block (6 lines) in supabase/functions/vercel-webhook/index.ts:1"}, "properties": {"repobilityId": "96728a25e16a0ea5", "scanner": "scanner-primary", "fingerprint": "efa4c75992c5fff0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e89c9bb1f49f49ec", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/types/index.ts:13"}, "properties": {"repobilityId": "b9fe9070b453ff39", "scanner": "scanner-primary", "fingerprint": "e89c9bb1f49f49ec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-279cd91fed59511a", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/screens/Landing.tsx:25"}, "properties": {"repobilityId": "8dc1f683d1439872", "scanner": "scanner-primary", "fingerprint": "279cd91fed59511a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-00bc2d0a1013b68f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/Settings.tsx:23"}, "properties": {"repobilityId": "6af52ef09921cf65", "scanner": "scanner-primary", "fingerprint": "00bc2d0a1013b68f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-39c3f953622d36f8", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/screens/admin/OrgAndUsers.tsx:16"}, "properties": {"repobilityId": "1b244b70d7888780", "scanner": "scanner-primary", "fingerprint": "39c3f953622d36f8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bb05b4312a8633fd", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/screens/admin/DataIntelligence.tsx:9"}, "properties": {"repobilityId": "2c0ef87b496b4d63", "scanner": "scanner-primary", "fingerprint": "bb05b4312a8633fd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-25c4a3476676b8b0", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/screens/admin/AdminInviteAccept.tsx:8"}, "properties": {"repobilityId": "0596e7460d92f967", "scanner": "scanner-primary", "fingerprint": "25c4a3476676b8b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-25fd7b7af6bb2b75", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/admin/OrganizationManager.tsx:20"}, "properties": {"repobilityId": "aae63a5327d4a00c", "scanner": "scanner-primary", "fingerprint": "25fd7b7af6bb2b75", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc498121e0ad8150", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/screens/admin/CompanyManager.tsx:22"}, "properties": {"repobilityId": "e717e116f354e986", "scanner": "scanner-primary", "fingerprint": "cc498121e0ad8150", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4a5d26111801f84d", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/screens/admin/AdminDashboard.tsx:56"}, "properties": {"repobilityId": "fb23d47005f39771", "scanner": "scanner-primary", "fingerprint": "4a5d26111801f84d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dad2975b87e9e84f", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/screens/admin/IndustryManager.tsx:10"}, "properties": {"repobilityId": "ea5f64e620bd3470", "scanner": "scanner-primary", "fingerprint": "dad2975b87e9e84f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f2b92eb7b1261be", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/admin/UserManager.tsx:18"}, "properties": {"repobilityId": "c3f400311a800335", "scanner": "scanner-primary", "fingerprint": "0f2b92eb7b1261be", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a5109baaaa38730e", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/screens/admin/DeveloperDashboard.tsx:14"}, "properties": {"repobilityId": "f728ead3633ae4b9", "scanner": "scanner-primary", "fingerprint": "a5109baaaa38730e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8dc4fb2f6dd66f6a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/admin/ContactManager.tsx:13"}, "properties": {"repobilityId": "07f3ed53b9287b16", "scanner": "scanner-primary", "fingerprint": "8dc4fb2f6dd66f6a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-855768f2e9540171", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/screens/admin/GodMode.tsx:10"}, "properties": {"repobilityId": "7b2c9f0f997367a0", "scanner": "scanner-primary", "fingerprint": "855768f2e9540171", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1c2ee345c6a328fa", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/screens/principal/PrincipalDashboard.tsx:11"}, "properties": {"repobilityId": "6e4cc052cb5b2d99", "scanner": "scanner-primary", "fingerprint": "1c2ee345c6a328fa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3991bdea964b5f3", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/salesperson/ProspectDetail.tsx:380"}, "properties": {"repobilityId": "321481ac3b8d019b", "scanner": "scanner-primary", "fingerprint": "d3991bdea964b5f3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d4de0de39edf7152", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/screens/salesperson/MyOrg.tsx:21"}, "properties": {"repobilityId": "50a7de1425e25685", "scanner": "scanner-primary", "fingerprint": "d4de0de39edf7152", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6ed6f58a63e832ba", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/screens/salesperson/Calendar.tsx:16"}, "properties": {"repobilityId": "d00ad0709c42b83d", "scanner": "scanner-primary", "fingerprint": "6ed6f58a63e832ba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8c95c6de63886dec", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/salesperson/Dashboard.tsx:19"}, "properties": {"repobilityId": "942b3ad478b33103", "scanner": "scanner-primary", "fingerprint": "8c95c6de63886dec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-51c006843837d962", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/screens/salesperson/Forecast.tsx:12"}, "properties": {"repobilityId": "f799811121051dd3", "scanner": "scanner-primary", "fingerprint": "51c006843837d962", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-874c2641f413fbbf", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/screens/salesperson/Companies.tsx:1118"}, "properties": {"repobilityId": "bdaf3d4db761954e", "scanner": "scanner-primary", "fingerprint": "874c2641f413fbbf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5ab485b3c2b94d91", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/ConfirmDialog.tsx:3"}, "properties": {"repobilityId": "06f739cfd79d9dcf", "scanner": "scanner-primary", "fingerprint": "5ab485b3c2b94d91", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-879578822e810b41", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/AddDealModal.tsx:17"}, "properties": {"repobilityId": "5b76d6cd86c869bb", "scanner": "scanner-primary", "fingerprint": "879578822e810b41", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dfb2cdc4929239fc", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/components/Segmented.tsx:17"}, "properties": {"repobilityId": "64a439d8f279f9e4", "scanner": "scanner-primary", "fingerprint": "dfb2cdc4929239fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c278facd7f716f6e", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/AppSidebar.tsx:11"}, "properties": {"repobilityId": "af94e1384216fddd", "scanner": "scanner-primary", "fingerprint": "c278facd7f716f6e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eee2da3e6caec43f", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/ContactDetailModal.tsx:1"}, "properties": {"repobilityId": "5fe168d38c0ed058", "scanner": "scanner-primary", "fingerprint": "eee2da3e6caec43f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-64b0584713d2d2cc", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/Dropdown.tsx:13"}, "properties": {"repobilityId": "49a00235326b800c", "scanner": "scanner-primary", "fingerprint": "64b0584713d2d2cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f2ca6f1621d5def3", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/components/AIChat.tsx:24"}, "properties": {"repobilityId": "ca26adc1dee2e0d6", "scanner": "scanner-primary", "fingerprint": "f2ca6f1621d5def3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e62dc88ecab228a2", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/components/SettingsSection.tsx:22"}, "properties": {"repobilityId": "a118ab93cb4309c0", "scanner": "scanner-primary", "fingerprint": "e62dc88ecab228a2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b041cc9e018a1f3c", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/ImpersonationBanner.tsx:15"}, "properties": {"repobilityId": "d1ed9de21ae6652a", "scanner": "scanner-primary", "fingerprint": "b041cc9e018a1f3c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-66f1fed5b689fae5", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/ErrorBoundary.tsx:13"}, "properties": {"repobilityId": "37743a48e566aa8f", "scanner": "scanner-primary", "fingerprint": "66f1fed5b689fae5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-76caf90905577d46", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/PasswordInput.tsx:4"}, "properties": {"repobilityId": "83e77e0f2246dfde", "scanner": "scanner-primary", "fingerprint": "76caf90905577d46", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-92c99076be8fb042", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/DealPreviewModal.tsx:19"}, "properties": {"repobilityId": "47270c415653486c", "scanner": "scanner-primary", "fingerprint": "92c99076be8fb042", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c4096df0266ad11a", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/AppTopBar.tsx:8"}, "properties": {"repobilityId": "0c8ff67a1a14ba01", "scanner": "scanner-primary", "fingerprint": "c4096df0266ad11a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c3ebfa44560753a1", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/Starfield.tsx:1"}, "properties": {"repobilityId": "f500ec6bca93e54a", "scanner": "scanner-primary", "fingerprint": "c3ebfa44560753a1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-782732b41ddc8809", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/LoginPanel.tsx:29"}, "properties": {"repobilityId": "36fd9c5992b4cc8d", "scanner": "scanner-primary", "fingerprint": "782732b41ddc8809", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8355e948a63ca22c", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/UserMenu.tsx:13"}, "properties": {"repobilityId": "e0f4c9771fc18308", "scanner": "scanner-primary", "fingerprint": "8355e948a63ca22c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-80771078dfbc2fd6", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/DataViewShell.tsx:10"}, "properties": {"repobilityId": "a030f5b6915ed1b1", "scanner": "scanner-primary", "fingerprint": "80771078dfbc2fd6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ac1db3217b36e461", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/FilterPopover.tsx:8"}, "properties": {"repobilityId": "f8629e05ed326a9f", "scanner": "scanner-primary", "fingerprint": "ac1db3217b36e461", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7fcd56411c27fcbc", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/SalesLayout.tsx:19"}, "properties": {"repobilityId": "a3e849900100d0cc", "scanner": "scanner-primary", "fingerprint": "7fcd56411c27fcbc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f397fc14f52d3215", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/ThemeToggle.tsx:16"}, "properties": {"repobilityId": "239b6ec532dd9b06", "scanner": "scanner-primary", "fingerprint": "f397fc14f52d3215", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c8988b5524e5a003", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/BrowserFrame.tsx:4"}, "properties": {"repobilityId": "e5b638f0e7b0f6d7", "scanner": "scanner-primary", "fingerprint": "c8988b5524e5a003", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-39e59110293e0e33", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/EcosystemChart.tsx:54"}, "properties": {"repobilityId": "ff6f1d5cd3bd9da3", "scanner": "scanner-primary", "fingerprint": "39e59110293e0e33", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-758b2d4caf5eab9a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/AdminLayout.tsx:15"}, "properties": {"repobilityId": "40c203dd8a5f89f1", "scanner": "scanner-primary", "fingerprint": "758b2d4caf5eab9a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ce2bb244df0dc8b7", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/contexts/PageActionContext.tsx:4"}, "properties": {"repobilityId": "4ca223eab5e96f9b", "scanner": "scanner-primary", "fingerprint": "ce2bb244df0dc8b7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7cbab041d965dd5e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/oilProjection.ts:6"}, "properties": {"repobilityId": "43b0af0504876f62", "scanner": "scanner-primary", "fingerprint": "7cbab041d965dd5e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dad8d2839db1848f", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/masterExport.ts:1"}, "properties": {"repobilityId": "e2fc0bc94960a6df", "scanner": "scanner-primary", "fingerprint": "dad8d2839db1848f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-12f09030d8e2feac", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/godMode.ts:6"}, "properties": {"repobilityId": "b5496d19565fa836", "scanner": "scanner-primary", "fingerprint": "12f09030d8e2feac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ef76f1efa951e19f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/PitchDeckDocument.tsx:12"}, "properties": {"repobilityId": "55cebf4a446ac8a4", "scanner": "scanner-primary", "fingerprint": "ef76f1efa951e19f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b37dbece5ee1994b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/supabase.ts:6"}, "properties": {"repobilityId": "555f7d4ea5f347f7", "scanner": "scanner-primary", "fingerprint": "b37dbece5ee1994b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2ed918251b130a7f", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/avatar.ts:4"}, "properties": {"repobilityId": "5f87b0e6d01108af", "scanner": "scanner-primary", "fingerprint": "2ed918251b130a7f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-63de031f01e8ca4e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/roleBadges.ts:3"}, "properties": {"repobilityId": "6be1f38d3c843533", "scanner": "scanner-primary", "fingerprint": "63de031f01e8ca4e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-76ae371bf0438855", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/csvExport.ts:1"}, "properties": {"repobilityId": "4750a790230b7a99", "scanner": "scanner-primary", "fingerprint": "76ae371bf0438855", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-24882b86f3547e2b", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/errorReporting.ts:12"}, "properties": {"repobilityId": "05727822fe9f8e9f", "scanner": "scanner-primary", "fingerprint": "24882b86f3547e2b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca0e9ef0bc30646f", "level": "none", "message": {"text": "Commented-code block (13 lines) in src/hooks/useSlidingIndicator.ts:8"}, "properties": {"repobilityId": "940486f7bc222216", "scanner": "scanner-primary", "fingerprint": "ca0e9ef0bc30646f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2b99153610bc695d", "level": "warning", "message": {"text": "Frontend route `/login` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "52e20181ba19cb6c", "scanner": "scanner-primary", "fingerprint": "2b99153610bc695d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-205921d930874b8b", "level": "warning", "message": {"text": "Frontend route `/about` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "4d6dc8c0f30d5cc5", "scanner": "scanner-primary", "fingerprint": "205921d930874b8b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-b27b48ee8911409b", "level": "warning", "message": {"text": "Frontend route `/features` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "8733f385d3f0eb31", "scanner": "scanner-primary", "fingerprint": "b27b48ee8911409b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-c3c38adaa6cd56ab", "level": "warning", "message": {"text": "Frontend route `/pricing` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "e6ab761e2ce305e1", "scanner": "scanner-primary", "fingerprint": "c3c38adaa6cd56ab", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-406143d8507bf4c6", "level": "warning", "message": {"text": "Frontend route `/faq` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "f2042d8cc30de5bc", "scanner": "scanner-primary", "fingerprint": "406143d8507bf4c6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-c48da15bde0d1343", "level": "warning", "message": {"text": "Frontend route `/admin-invite/:token` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "313bd4468ba98394", "scanner": "scanner-primary", "fingerprint": "c48da15bde0d1343", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-33f551c0215d05f4", "level": "warning", "message": {"text": "Frontend route `/prospect/:id` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "5be615822512c7a1", "scanner": "scanner-primary", "fingerprint": "33f551c0215d05f4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-7548234990f6cc6c", "level": "warning", "message": {"text": "Frontend route `/deal/:id` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "8971fa90efb9dbf6", "scanner": "scanner-primary", "fingerprint": "7548234990f6cc6c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-725d0c8483684f94", "level": "warning", "message": {"text": "Frontend route `/admin/org-users/ecosystem` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "accccf515880d0d9", "scanner": "scanner-primary", "fingerprint": "725d0c8483684f94", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-1438d444670d3163", "level": "warning", "message": {"text": "Frontend route `/admin/industries` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "de5f3400effdce92", "scanner": "scanner-primary", "fingerprint": "1438d444670d3163", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-c1e8381b4571af48", "level": "warning", "message": {"text": "Frontend route `/admin/companies` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "5d3c8ab06b3aed59", "scanner": "scanner-primary", "fingerprint": "c1e8381b4571af48", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-f0c587060f3cd16b", "level": "warning", "message": {"text": "Frontend route `/admin/contacts` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "508a1f6054b73904", "scanner": "scanner-primary", "fingerprint": "f0c587060f3cd16b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-2676d9b8c6b2063c", "level": "warning", "message": {"text": "Frontend route `/admin/users` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "03877f5189eca57b", "scanner": "scanner-primary", "fingerprint": "2676d9b8c6b2063c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-871cf7a71243a12c", "level": "warning", "message": {"text": "Frontend route `/admin/organizations` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "298acbd8d7b2f6c2", "scanner": "scanner-primary", "fingerprint": "871cf7a71243a12c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}]}]}