{"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-90f5bd8988b341fb", "name": "Stray `console.log` in TS/JS \u2014 optimize-svgs.js:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 optimize-svgs.js:20"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d258d7251a15da03", "name": "Stray `console.log` in TS/JS \u2014 test-survey-notification.js:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test-survey-notification.js:33"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0ab49de8ae01a515", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-proposals-with-shares.js:36", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-proposals-with-shares.js:36"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2ac1fc6b9a52920c", "name": "Stray `console.log` in TS/JS \u2014 scripts/update-mindfulness-pricing.js:35", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/update-mindfulness-pricing.js:35"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9c0a6826bb257fe6", "name": "Stray `console.log` in TS/JS \u2014 scripts/optimize-images.js:6", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/optimize-images.js:6"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2a22c0af9f542181", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-davis-polk-proposal.js:36", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-davis-polk-proposal.js:36"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1ae7e1d200c2471a", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-mindfulness-services.js:28", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-mindfulness-services.js:28"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4b45a6ae6bfa7855", "name": "Stray `console.log` in TS/JS \u2014 scripts/generate-proposals.js:24", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-proposals.js:24"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0beed0de73948a82", "name": "Stray `console.log` in TS/JS \u2014 scripts/generate-lower-pyne-excel.ts:993", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-lower-pyne-excel.ts:993"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d08ff455ef4be8e9", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-shared-proposals.js:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-shared-proposals.js:29"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-671ba844a9e51bbb", "name": "Stray `console.log` in TS/JS \u2014 supabase/functions/smartlead-webhook/index.ts:389", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/smartlead-webhook/index.ts:389"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d32fd843a1d3c89a", "name": "Stray `console.log` in TS/JS \u2014 supabase/functions/list-users/index.ts:71", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/list-users/index.ts:71"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9c35c2dc43ce7658", "name": "Stray `console.log` in TS/JS \u2014 supabase/functions/lead-notifications/index.ts:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/lead-notifications/index.ts:23"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1fc94f79f1b4905c", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 Create Reusable Component/src/app/components/ui/chart.tsx:83", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 Create Reusable Component/src/app/components/ui/chart.tsx:83"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9006b56c95d43e2c", "name": "Stray `console.log` in TS/JS \u2014 netlify/functions/gmail-watch-renew.js:44", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 netlify/functions/gmail-watch-renew.js:44"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-315f2038c8bc752d", "name": "Stray `console.log` in TS/JS \u2014 netlify/functions/workhuman-booking.js:323", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 netlify/functions/workhuman-booking.js:323"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-572a8e44ff5785e1", "name": "TODO/FIXME marker in shipping code \u2014 netlify/functions/record-outreach-send.js:31", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 netlify/functions/record-outreach-send.js:31"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5716050b4e62060c", "name": "Stray `console.log` in TS/JS \u2014 netlify/functions/fetch-coordinator-events.js:102", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 netlify/functions/fetch-coordinator-events.js:102"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1fd1276eb6c92376", "name": "Stray `console.log` in TS/JS \u2014 netlify/functions/proposal-event-notification.js:58", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 netlify/functions/proposal-event-notification.js:58"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9b868748d92e726c", "name": "Stray `console.log` in TS/JS \u2014 netlify/functions/slack-assistant.js:169", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 netlify/functions/slack-assistant.js:169"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d9c935b2f99d358b", "name": "Stray `console.log` in TS/JS \u2014 netlify/functions/docuseal-webhook.js:61", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 netlify/functions/docuseal-webhook.js:61"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-79ed5334e0371cf0", "name": "Stray `console.log` in TS/JS \u2014 netlify/functions/create-event.js:59", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 netlify/functions/create-event.js:59"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5d38b03bca3f7c7f", "name": "Stray `console.log` in TS/JS \u2014 netlify/functions/apollo-phone-webhook.js:104", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 netlify/functions/apollo-phone-webhook.js:104"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e9c69d664ddc2124", "name": "TODO/FIXME marker in shipping code \u2014 netlify/functions/lib/slack-event-ping.js:21", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 netlify/functions/lib/slack-event-ping.js:21"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-96779f821b7bec6e", "name": "Stray `console.log` in TS/JS \u2014 netlify/functions/lib/slack-ai.js:857", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 netlify/functions/lib/slack-ai.js:857"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-41981bc1cc0cf8dd", "name": "Stray `console.log` in TS/JS \u2014 netlify/plugins/image-optimizer/index.js:10", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 netlify/plugins/image-optimizer/index.js:10"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6f647190a7443d1d", "name": "Stray `console.log` in TS/JS \u2014 src/config/index.ts:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/config/index.ts:33"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5040c85f45779cc9", "name": "Stray `console.log` in TS/JS \u2014 src/api/webhooks/leadNotifications.ts:30", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/api/webhooks/leadNotifications.ts:30"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-48f62330ca77a550", "name": "Stray `console.log` in TS/JS \u2014 src/utils/proposalGenerator.ts:457", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/utils/proposalGenerator.ts:457"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b6bf76aa2ef51e28", "name": "Stray `console.log` in TS/JS \u2014 src/utils/trackingUtils.ts:287", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/utils/trackingUtils.ts:287"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-86d16e0db9e1d5ef", "name": "Stray `console.log` in TS/JS \u2014 src/components/MindfulnessProposalViewer.tsx:147", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/MindfulnessProposalViewer.tsx:147"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-28df7699a662d1b4", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/WorkhumanOutreachQueue.tsx:295", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/WorkhumanOutreachQueue.tsx:295"}, "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-423c7f5c9570dfdf", "name": "Stray `console.log` in TS/JS \u2014 src/components/DocumentUploader.tsx:57", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/DocumentUploader.tsx:57"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f7f66d53fee24ba8", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/DraftKingsReport.tsx:350", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/DraftKingsReport.tsx:350"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7f78e32c71ff021f", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/StandaloneMindfulnessProposalViewer.tsx:649", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/StandaloneMindfulnessProposalViewer.tsx:649"}, "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-f7e50262e389d18c", "name": "Stray `console.log` in TS/JS \u2014 src/components/StandaloneMindfulnessProposalViewer.tsx:97", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/StandaloneMindfulnessProposalViewer.tsx:97"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e80f97298f05a84f", "name": "Stray `console.log` in TS/JS \u2014 src/components/ProposalSurveyForm.tsx:96", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/ProposalSurveyForm.tsx:96"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1d19dbc88f618bb2", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/PhotoUploader.tsx:673", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/PhotoUploader.tsx:673"}, "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-10cef6cf0b010335", "name": "Stray `console.log` in TS/JS \u2014 src/components/PhotoUploader.tsx:62", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/PhotoUploader.tsx:62"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4fa5ae87d928f0aa", "name": "Stray `console.log` in TS/JS \u2014 src/components/HolidayProposal.tsx:329", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/HolidayProposal.tsx:329"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2278642c8c6d1d92", "name": "Stray `console.log` in TS/JS \u2014 src/components/MindfulnessProgramModal.tsx:133", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/MindfulnessProgramModal.tsx:133"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2561c9c15be6e485", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/ProAgreementManager.tsx:404", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/ProAgreementManager.tsx:404"}, "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-e614f236f5e2cb1d", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/BrochureList.tsx:196", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/BrochureList.tsx:196"}, "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-dcf5c678188f0a55", "name": "Stray `console.log` in TS/JS \u2014 src/components/ProposalCustomUrlExample.tsx:38", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/ProposalCustomUrlExample.tsx:38"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-06d13a4f2e86a392", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/ParticipantFolderView.tsx:245", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/ParticipantFolderView.tsx:245"}, "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-80c3bdaa4f24b4a1", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/Navigation.tsx:221", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/Navigation.tsx:221"}, "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-1e86c4c03b9d6383", "name": "Stray `console.log` in TS/JS \u2014 src/components/PrivateRoute.tsx:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/PrivateRoute.tsx:14"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-50778b882866f2eb", "name": "Icon-only button without accessible name \u2014 src/components/HolidayPageCreator.tsx:297", "shortDescription": {"text": "Icon-only button without accessible name \u2014 src/components/HolidayPageCreator.tsx:297"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3e8cd19bc45a3d59", "name": "Stray `console.log` in TS/JS \u2014 src/components/HolidayPageCreator.tsx:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/HolidayPageCreator.tsx:18"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cea7f7becfbefda1", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/History.tsx:783", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/History.tsx:783"}, "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-ed33966465b88895", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/StandaloneProposalViewer.tsx:1683", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/StandaloneProposalViewer.tsx:1683"}, "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-373beb51418a5417", "name": "Stray `console.log` in TS/JS \u2014 src/components/StandaloneProposalViewer.tsx:343", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/StandaloneProposalViewer.tsx:343"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4a21a74defcd79a8", "name": "Stray `console.log` in TS/JS \u2014 src/components/HolidayPageManager.tsx:118", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/HolidayPageManager.tsx:118"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f3cca10bab01a517", "name": "Stray `console.log` in TS/JS \u2014 src/components/HeadshotEventManager.tsx:127", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/HeadshotEventManager.tsx:127"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8bbcee6634c72c1b", "name": "Icon-only button without accessible name \u2014 src/components/SurveyCreator.tsx:309", "shortDescription": {"text": "Icon-only button without accessible name \u2014 src/components/SurveyCreator.tsx:309"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9291ccd85d468b1e", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/SalesIntelligence.tsx:796", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/SalesIntelligence.tsx:796"}, "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-9c2e41b1377975d3", "name": "TODO/FIXME marker in shipping code \u2014 src/components/ParticipantFolderManager.tsx:150", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/components/ParticipantFolderManager.tsx:150"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-913ad0db8beba4a5", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/UpcomingEvents.tsx:420", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/UpcomingEvents.tsx:420"}, "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-5e2864e4b584d852", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/InvoiceManager.tsx:432", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/InvoiceManager.tsx:432"}, "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-c386dd937f5c4082", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/SurveyManager.tsx:213", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/SurveyManager.tsx:213"}, "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-d686af5ef9242658", "name": "Icon-only button without accessible name \u2014 src/components/DevTaskDetail.tsx:66", "shortDescription": {"text": "Icon-only button without accessible name \u2014 src/components/DevTaskDetail.tsx:66"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-95c1658812d1aec5", "name": "Icon-only button without accessible name \u2014 src/components/QRCodeSignCreator.tsx:441", "shortDescription": {"text": "Icon-only button without accessible name \u2014 src/components/QRCodeSignCreator.tsx:441"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-40ba64b481edf241", "name": "Icon-only button without accessible name \u2014 src/components/GenericLandingPageCreator.tsx:335", "shortDescription": {"text": "Icon-only button without accessible name \u2014 src/components/GenericLandingPageCreator.tsx:335"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-af41fc0ccd7967fc", "name": "Stray `console.log` in TS/JS \u2014 src/components/GenericLandingPageCreator.tsx:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/GenericLandingPageCreator.tsx:23"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b1b81b728f556168", "name": "Stray `console.log` in TS/JS \u2014 src/components/UsersManagement.tsx:74", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/UsersManagement.tsx:74"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2e424ae823d06c45", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/SignUpLinkManager.tsx:227", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/SignUpLinkManager.tsx:227"}, "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-5c5a1698c2809d9b", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/WorkhumanBooth.tsx:922", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/WorkhumanBooth.tsx:922"}, "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-a84c99d1df370f33", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/WorkhumanBooth.tsx:1513", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/WorkhumanBooth.tsx:1513"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-22c76c401b538404", "name": "TODO/FIXME marker in shipping code \u2014 src/components/MindfulnessProgramManager.tsx:544", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/components/MindfulnessProgramManager.tsx:544"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2de1796afde5ba8b", "name": "Stray `console.log` in TS/JS \u2014 src/components/MindfulnessProgramManager.tsx:91", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/MindfulnessProgramManager.tsx:91"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e665605f1d9ac22f", "name": "Stray `console.log` in TS/JS \u2014 src/components/QRCodeSignManager.tsx:32", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/QRCodeSignManager.tsx:32"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-12563524a0354cfa", "name": "Stray `console.log` in TS/JS \u2014 src/components/ProposalViewer.tsx:539", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/ProposalViewer.tsx:539"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-038e9ee934f4dc0d", "name": "Icon-only button without accessible name \u2014 src/components/ClientProposalBuilder.tsx:1429", "shortDescription": {"text": "Icon-only button without accessible name \u2014 src/components/ClientProposalBuilder.tsx:1429"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0896a2351937a4a9", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/ClientProposalBuilder.tsx:1604", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/ClientProposalBuilder.tsx:1604"}, "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-2b0a45c4a1bc6371", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/SignUpLinkCreator.tsx:163", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/SignUpLinkCreator.tsx:163"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1ade7a7c240ac2c5", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/WorkhumanLeads.tsx:1443", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/WorkhumanLeads.tsx:1443"}, "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-0008e1f8d1874c14", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/ClientEmailManager.tsx:139", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/ClientEmailManager.tsx:139"}, "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-2c95595d9553f43a", "name": "Icon-only button without accessible name \u2014 src/components/DevTaskCreator.tsx:125", "shortDescription": {"text": "Icon-only button without accessible name \u2014 src/components/DevTaskCreator.tsx:125"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7d985a9cea4db2bf", "name": "Stray `console.log` in TS/JS \u2014 src/components/SocialMediaProposal.tsx:136", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/SocialMediaProposal.tsx:136"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d96850c9853562a3", "name": "Stray `console.log` in TS/JS \u2014 src/components/ProposalOptionsModal.tsx:90", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/ProposalOptionsModal.tsx:90"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-28e9451fff375529", "name": "Stray `console.log` in TS/JS \u2014 src/components/GenericLandingPage.tsx:161", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/GenericLandingPage.tsx:161"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-33862c078a3e17e5", "name": "Stray `console.log` in TS/JS \u2014 src/components/GenericLandingPageManager.tsx:118", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/GenericLandingPageManager.tsx:118"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c2a4ddf52d110672", "name": "Stray `console.log` in TS/JS \u2014 src/contexts/AuthContext.tsx:45", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/contexts/AuthContext.tsx:45"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-854595783a9b2957", "name": "Stray `console.log` in TS/JS \u2014 src/contexts/ProposalContext.tsx:240", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/contexts/ProposalContext.tsx:240"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-de41e838c173441b", "name": "Stray `console.log` in TS/JS \u2014 src/contexts/GenericLandingPageContext.tsx:66", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/contexts/GenericLandingPageContext.tsx:66"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-facc548af6733d64", "name": "Stray `console.log` in TS/JS \u2014 src/contexts/SocialMediaPageContext.tsx:31", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/contexts/SocialMediaPageContext.tsx:31"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-619421bb8967870b", "name": "Stray `console.log` in TS/JS \u2014 src/contexts/HolidayPageContext.tsx:52", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/contexts/HolidayPageContext.tsx:52"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-15a22c58e979eb6e", "name": "Stray `console.log` in TS/JS \u2014 src/services/SMSService.ts:31", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/services/SMSService.ts:31"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e9178024a23de9fa", "name": "Stray `console.log` in TS/JS \u2014 src/services/NotificationService.ts:50", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/services/NotificationService.ts:50"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8672e4400c9de3cb", "name": "Stray `console.log` in TS/JS \u2014 src/services/CalendarService.ts:141", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/services/CalendarService.ts:141"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-152d2fe4b967109f", "name": "Stray `console.log` in TS/JS \u2014 src/services/MindfulnessProgramService.ts:141", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/services/MindfulnessProgramService.ts:141"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d8cc088647c8cd0f", "name": "Stray `console.log` in TS/JS \u2014 src/services/HeadshotService.ts:155", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/services/HeadshotService.ts:155"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6c9993ce487a7966", "name": "Insecure pattern 'cors_wildcard' in vite.config.ts:56", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in vite.config.ts:56"}, "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-746f3e196b923a2e", "name": "Insecure pattern 'document_write' in proposals.getshortcut.co-20251020T161445.html:20", "shortDescription": {"text": "Insecure pattern 'document_write' in proposals.getshortcut.co-20251020T161445.html:20"}, "fullDescription": {"text": "Found a known-risky pattern (document_write). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bd5fc8518f6921ee", "name": "Insecure pattern 'direct_innerhtml_assignment' in calculator-reference.html:1474", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in calculator-reference.html:1474"}, "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-cfc6165ab5ed7467", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/delete-user/index.ts:5", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/delete-user/index.ts:5"}, "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-58c1f690f8e76627", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/reset-user-password/index.ts:5", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/reset-user-password/index.ts:5"}, "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-72640c65c72af001", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/invite-user/index.ts:5", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/invite-user/index.ts:5"}, "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-7da6fcceed9a1eab", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/send-email/index.ts:5", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/send-email/index.ts:5"}, "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-91d80ca396ea7484", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/proposal-proxy/index.ts:5", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/proposal-proxy/index.ts:5"}, "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-835c8f4dd58ed3c7", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/smartlead-webhook/index.ts:17", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/smartlead-webhook/index.ts:17"}, "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-5f557ce8eac8e2c3", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/proposal-approval/index.ts:8", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/proposal-approval/index.ts:8"}, "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-dbe4c7066bde828f", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/send-sms/index.ts:21", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/send-sms/index.ts:21"}, "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-c996d0f749992bcd", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/proposal-share/index.ts:5", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/proposal-share/index.ts:5"}, "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-cf5b9f4b8b06ad97", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/list-users/index.ts:5", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/list-users/index.ts:5"}, "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-6b94f80af71b9683", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/lead-notifications/index.ts:5", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/lead-notifications/index.ts:5"}, "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-ae5dfa15e893b728", "name": "Insecure pattern 'cors_wildcard' in supabase/supabase/functions/proposal-approval/index.ts:8", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/supabase/functions/proposal-approval/index.ts:8"}, "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-48c9c03d05c471b7", "name": "Insecure pattern 'dangerous_innerhtml' in Create Reusable Component/src/app/components/ui/chart.tsx:83", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in Create Reusable Component/src/app/components/ui/chart.tsx:83"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f1cf66cbcb31be27", "name": "Insecure pattern 'cors_wildcard' in netlify/functions/workhuman-signups-import.js:22", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/workhuman-signups-import.js:22"}, "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-8635bd33a3ac1acd", "name": "Insecure pattern 'cors_wildcard' in netlify/functions/gmail-sync-toggle.js:13", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/gmail-sync-toggle.js:13"}, "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-67e51d9bf627b90f", "name": "Insecure pattern 'cors_wildcard' in netlify/functions/draft-outreach.js:31", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/draft-outreach.js:31"}, "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-5ff32efe0d6b4f37", "name": "Insecure pattern 'cors_wildcard' in netlify/functions/slack-notification.js:7", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/slack-notification.js:7"}, "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-a2f55e1375ef4bcb", "name": "Insecure pattern 'cors_wildcard' in netlify/functions/generate-personal-caveat.js:396", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/generate-personal-caveat.js:396"}, "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-a91069e5c4fc9c50", "name": "Insecure pattern 'cors_wildcard' in netlify/functions/gmail-oauth-disconnect.js:17", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/gmail-oauth-disconnect.js:17"}, "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-ca39f657ac60efa0", "name": "Insecure pattern 'cors_wildcard' in netlify/functions/workhuman-booking.js:15", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/workhuman-booking.js:15"}, "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-1f3e2e8c8f740c4e", "name": "Insecure pattern 'cors_wildcard' in netlify/functions/record-outreach-send.js:24", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/record-outreach-send.js:24"}, "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-6f578f3061ae9240", "name": "Insecure pattern 'cors_wildcard' in netlify/functions/gmail-thread.js:22", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/gmail-thread.js:22"}, "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-84f970ad764abf71", "name": "Insecure pattern 'cors_wildcard' in netlify/functions/fetch-coordinator-events.js:201", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/fetch-coordinator-events.js:201"}, "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-bf1c2f73643b9195", "name": "Insecure pattern 'cors_wildcard' in netlify/functions/followups.js:26", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/followups.js:26"}, "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-edf3ce70df062f87", "name": "Insecure pattern 'cors_wildcard' in netlify/functions/gmail-status.js:12", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/gmail-status.js:12"}, "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-c1553452d503708d", "name": "Insecure pattern 'cors_wildcard' in netlify/functions/brokers.js:19", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/brokers.js:19"}, "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-ab4689c0b3682505", "name": "Insecure pattern 'cors_wildcard' in netlify/functions/contact-card.js:18", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/contact-card.js:18"}, "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-e953b433b032feea", "name": "Insecure pattern 'cors_wildcard' in netlify/functions/proposal-event-notification.js:9", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/proposal-event-notification.js:9"}, "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-77884aacfa313ef2", "name": "Insecure pattern 'cors_wildcard' in netlify/functions/create-stripe-invoice.js:17", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/create-stripe-invoice.js:17"}, "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-981f5323ddd0397e", "name": "Insecure pattern 'cors_wildcard' in netlify/functions/lead-actions.js:25", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/lead-actions.js:25"}, "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-1fb1a43ac0868b28", "name": "Insecure pattern 'cors_wildcard' in netlify/functions/workhuman-booth-send.js:19", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/workhuman-booth-send.js:19"}, "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-e0e716e91d1009e9", "name": "Insecure pattern 'cors_wildcard' in netlify/functions/send-as-rep.js:20", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/send-as-rep.js:20"}, "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-6d88f12d15e8f060", "name": "Insecure pattern 'cors_wildcard' in netlify/functions/generate-proposal.js:46", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/generate-proposal.js:46"}, "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-51b59b9a371e4815", "name": "Insecure pattern 'cors_wildcard' in netlify/functions/create-event.js:151", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/create-event.js:151"}, "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-bdb31641a968722b", "name": "Insecure pattern 'cors_wildcard' in netlify/functions/gmail-oauth-start.js:15", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/gmail-oauth-start.js:15"}, "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-6bf9d185e8146362", "name": "Insecure pattern 'cors_wildcard' in netlify/functions/create-workhuman-landing-page.js:241", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/create-workhuman-landing-page.js:241"}, "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-006abdbf3fec7e76", "name": "Insecure pattern 'cors_wildcard' in netlify/functions/send-pro-agreement.js:16", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/send-pro-agreement.js:16"}, "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-b341348444b613f8", "name": "Insecure pattern 'cors_wildcard' in netlify/functions/lp-view-ping.js:21", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/lp-view-ping.js:21"}, "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-3d2f7c26466160da", "name": "Insecure pattern 'cors_wildcard' in netlify/functions/apollo-phone-webhook.js:35", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/apollo-phone-webhook.js:35"}, "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-d683c159188f932d", "name": "Possible secret in public/env-config.js", "shortDescription": {"text": "Possible secret in public/env-config.js"}, "fullDescription": {"text": "Detected pattern matching generic_api_key. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-e966027e1f281c60", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/main.tsx:24", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/main.tsx:24"}, "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-8d326fc3cfeac03a", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/utils/clipboardHtml.ts:19", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/utils/clipboardHtml.ts:19"}, "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-5cf7cd201e731270", "name": "Insecure pattern 'local_storage_auth_token' in src/utils/trackingUtils.ts:368", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in src/utils/trackingUtils.ts:368"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-19923bebb189edc5", "name": "Insecure pattern 'local_storage_auth_token' in src/components/DraftKingsReport.tsx:375", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in src/components/DraftKingsReport.tsx:375"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-16d1c192189e5f4a", "name": "Insecure pattern 'local_storage_auth_token' in src/components/NassauBudgetReview.tsx:138", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in src/components/NassauBudgetReview.tsx:138"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-98d22271df181a95", "name": "Insecure pattern 'local_storage_auth_token' in src/components/LowerPyneDashboard.tsx:268", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in src/components/LowerPyneDashboard.tsx:268"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-be3876e2706f33ee", "name": "Insecure pattern 'local_storage_auth_token' in src/components/SalesCompModel.tsx:203", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in src/components/SalesCompModel.tsx:203"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1989d21461966c03", "name": "Insecure pattern 'dangerous_innerhtml' in src/components/WorkhumanBooth.tsx:1513", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/components/WorkhumanBooth.tsx:1513"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-41bc5190322f78e3", "name": "Insecure pattern 'local_storage_auth_token' in src/components/DraftKingsLVReport.tsx:236", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in src/components/DraftKingsLVReport.tsx:236"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9db9f5813acb2d37", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/components/ClientProposalBuilder.tsx:1017", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/components/ClientProposalBuilder.tsx:1017"}, "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-c6a7ee25fefa785d", "name": "Insecure pattern 'direct_innerhtml_assignment' in src/components/SocialMediaProposal.tsx:321", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/components/SocialMediaProposal.tsx:321"}, "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-4601e3ad3bb28677", "name": "No CI/CD pipelines detected", "shortDescription": {"text": "No CI/CD pipelines detected"}, "fullDescription": {"text": "No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b8cf561f98b742dc", "name": "Very large file: netlify/functions/slack-draft-async-background.js (913 lines)", "shortDescription": {"text": "Very large file: netlify/functions/slack-draft-async-background.js (913 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-138a306ab62c0eee", "name": "Very large file: netlify/functions/lib/slack-tools.js (1814 lines)", "shortDescription": {"text": "Very large file: netlify/functions/lib/slack-tools.js (1814 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-be25366549bde475", "name": "Very large file: netlify/functions/lib/slack-ai.js (966 lines)", "shortDescription": {"text": "Very large file: netlify/functions/lib/slack-ai.js (966 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-f38fc73d137843f5", "name": "Very large file: src/components/MindfulnessProposalViewer.tsx (2166 lines)", "shortDescription": {"text": "Very large file: src/components/MindfulnessProposalViewer.tsx (2166 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-f71058aca3aea86e", "name": "Very large file: src/components/DraftKingsReport.tsx (1491 lines)", "shortDescription": {"text": "Very large file: src/components/DraftKingsReport.tsx (1491 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-e6b61e6ca9fa437d", "name": "Very large file: src/components/StandaloneMindfulnessProposalViewer.tsx (1436 lines)", "shortDescription": {"text": "Very large file: src/components/StandaloneMindfulnessProposalViewer.tsx (1436 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f67824440bc39770", "name": "Very large file: src/components/NassauBudgetReview.tsx (1250 lines)", "shortDescription": {"text": "Very large file: src/components/NassauBudgetReview.tsx (1250 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-ae5d761842bbd35f", "name": "Very large file: src/components/HolidayProposal.tsx (2563 lines)", "shortDescription": {"text": "Very large file: src/components/HolidayProposal.tsx (2563 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-e2f1805241977c90", "name": "Very large file: src/components/Plan2026ML.tsx (2899 lines)", "shortDescription": {"text": "Very large file: src/components/Plan2026ML.tsx (2899 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-1a7ad2aefa8241e9", "name": "Very large file: src/components/LowerPyneDashboard.tsx (4116 lines)", "shortDescription": {"text": "Very large file: src/components/LowerPyneDashboard.tsx (4116 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-6ce5e237c632c7d7", "name": "Very large file: src/components/ProgramSessionManager.tsx (1191 lines)", "shortDescription": {"text": "Very large file: src/components/ProgramSessionManager.tsx (1191 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-9006263f1108ca00", "name": "Very large file: src/components/ProposalViewerV2.tsx (7155 lines)", "shortDescription": {"text": "Very large file: src/components/ProposalViewerV2.tsx (7155 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-68cb319008379d64", "name": "Very large file: src/components/BookACallLanding.tsx (2284 lines)", "shortDescription": {"text": "Very large file: src/components/BookACallLanding.tsx (2284 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-b16ec069ca87e840", "name": "Very large file: src/components/StandaloneProposalViewer.tsx (2997 lines)", "shortDescription": {"text": "Very large file: src/components/StandaloneProposalViewer.tsx (2997 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-65288af71a98ef5e", "name": "Very large file: src/components/SalesIntelligence.tsx (3370 lines)", "shortDescription": {"text": "Very large file: src/components/SalesIntelligence.tsx (3370 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-a85ea5b54981519a", "name": "Very large file: src/components/BrokerPlan.tsx (1302 lines)", "shortDescription": {"text": "Very large file: src/components/BrokerPlan.tsx (1302 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-89d8a061af12cb8a", "name": "Very large file: src/components/WorkhumanTVLoop.tsx (1739 lines)", "shortDescription": {"text": "Very large file: src/components/WorkhumanTVLoop.tsx (1739 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-d2f24db061e77750", "name": "Very large file: src/components/Home.tsx (2186 lines)", "shortDescription": {"text": "Very large file: src/components/Home.tsx (2186 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-9812ac64abb116f0", "name": "Very large file: src/components/WorkhumanBooth.tsx (1643 lines)", "shortDescription": {"text": "Very large file: src/components/WorkhumanBooth.tsx (1643 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-84e8c6aac1ceaa73", "name": "Very large file: src/components/WorkhumanBoothDesigns.tsx (1176 lines)", "shortDescription": {"text": "Very large file: src/components/WorkhumanBoothDesigns.tsx (1176 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-8e99cb5c39e10b44", "name": "Very large file: src/components/StandaloneProposalViewerV2.tsx (2652 lines)", "shortDescription": {"text": "Very large file: src/components/StandaloneProposalViewerV2.tsx (2652 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-346a6e923585eff4", "name": "Very large file: src/components/ProposalViewer.tsx (4834 lines)", "shortDescription": {"text": "Very large file: src/components/ProposalViewer.tsx (4834 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-79c680bb199ba2b8", "name": "Very large file: src/components/DraftKingsLVReport.tsx (1177 lines)", "shortDescription": {"text": "Very large file: src/components/DraftKingsLVReport.tsx (1177 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-059def6dcf778ee9", "name": "Very large file: src/components/ClientProposalBuilder.tsx (1997 lines)", "shortDescription": {"text": "Very large file: src/components/ClientProposalBuilder.tsx (1997 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-97a8108a18ef1fb5", "name": "Very large file: src/components/Plan2026.tsx (3558 lines)", "shortDescription": {"text": "Very large file: src/components/Plan2026.tsx (3558 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-dd7bfd65e2a75f3b", "name": "Very large file: src/components/WorkhumanLeads.tsx (1815 lines)", "shortDescription": {"text": "Very large file: src/components/WorkhumanLeads.tsx (1815 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-883b44431c3396a4", "name": "Very large file: src/components/SocialMediaProposal.tsx (2877 lines)", "shortDescription": {"text": "Very large file: src/components/SocialMediaProposal.tsx (2877 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-3397770904d03efb", "name": "Very large file: src/components/GenericLandingPage.tsx (3543 lines)", "shortDescription": {"text": "Very large file: src/components/GenericLandingPage.tsx (3543 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "6 test file(s) for 473 source file(s) (ratio 0.01). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "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-c7965ab54b66824e", "name": "Node manifest has dependencies but no lockfile: Create Reusable Component/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: Create Reusable Component/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "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 756 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 363 placeholder/mock markers across 101 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9d79c4077342a7d0", "name": "Runtime service client appears to use placeholder configuration", "shortDescription": {"text": "Runtime service client appears to use placeholder configuration"}, "fullDescription": {"text": "A runtime source file appears to wire Supabase/Firebase/AI/payment-style clients to placeholder URLs, keys, or fallback values. In the Fable corpus this often means the UI/API shape is present while the backend service is not actually configured."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, ci, tests, lockfile. 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, ci, tests, lockfile. 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-a01b49e125e5661b", "name": "Commented-code block (6 lines) in scripts/gmail-historical-sweep.mjs:145", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/gmail-historical-sweep.mjs:145"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3e4aa3810ad8f2b6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/gmail-historical-sweep.mjs:72", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/gmail-historical-sweep.mjs:72"}, "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-c42fc14670e0e77e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/resolve-entities.mjs:76", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/resolve-entities.mjs:76"}, "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-4b683bf054b42fd1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/broker-gtm/send-starter-dms.mjs:14", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/broker-gtm/send-starter-dms.mjs:14"}, "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-d8d72469d69c9533", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/broker-gtm/discover-broker-contacts.mjs:81", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/broker-gtm/discover-broker-contacts.mjs:81"}, "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-e372842061c96919", "name": "Commented-code block (6 lines) in scripts/debug/larcy-trace3.mjs:1", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/debug/larcy-trace3.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-5d26a339ff035432", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/check-will-signature.mjs:19", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/check-will-signature.mjs:19"}, "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-80b3968ae8d63f72", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/test-warm-draft-prod.mjs:13", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/test-warm-draft-prod.mjs:13"}, "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-fe72a6f725e06af2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/dm-reconnect-nudge.mjs:11", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/dm-reconnect-nudge.mjs:11"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dbb10b213874d101", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/check-reconnect-dms.mjs:10", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/check-reconnect-dms.mjs:10"}, "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-71436788d3717430", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/larcy-trace2.mjs:62", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/larcy-trace2.mjs:62"}, "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-9cbbebffc88745ed", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/find-jsmith-via-caren.mjs:28", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/find-jsmith-via-caren.mjs:28"}, "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-435aeab268c7046a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/check-beverly-recent.mjs:49", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/check-beverly-recent.mjs:49"}, "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-e8286f2ee8add9d3", "name": "Commented-code block (6 lines) in scripts/debug/heal-gmail-deep.mjs:1", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/debug/heal-gmail-deep.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-6bfe55cb4908de00", "name": "Commented-code block (5 lines) in scripts/debug/backfill-outreach-sends-from-log.mjs:3", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/debug/backfill-outreach-sends-from-log.mjs:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0fa765ba91203171", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/dm-courtney-reconnect.mjs:11", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/dm-courtney-reconnect.mjs:11"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c6870e29d033b2eb", "name": "Commented-code block (5 lines) in scripts/debug/heal-gmail-crawl.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/debug/heal-gmail-crawl.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-de4d343f22a0ff8c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/test-gmail-draft.mjs:23", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/test-gmail-draft.mjs:23"}, "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-e5da5414d61282f7", "name": "Commented-code block (6 lines) in scripts/debug/verify-pmkmsw-suppressed.mjs:1", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/debug/verify-pmkmsw-suppressed.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-b19b25b9008e3a91", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/verify-pmkmsw-suppressed.mjs:53", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/verify-pmkmsw-suppressed.mjs:53"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-06eb7dc3f79c4e4b", "name": "Commented-code block (8 lines) in scripts/debug/quarantine-corrupt-wh-rows.mjs:1", "shortDescription": {"text": "Commented-code block (8 lines) in scripts/debug/quarantine-corrupt-wh-rows.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-f8c3916b5ecce6cd", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/dm-reps-reconnect.mjs:16", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/dm-reps-reconnect.mjs:16"}, "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-0d019661785d1fca", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/populate-slack-user-ids.mjs:22", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/populate-slack-user-ids.mjs:22"}, "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-6289e1800cf77958", "name": "Commented-code block (7 lines) in scripts/debug/suppress-pmkmsw.mjs:1", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/debug/suppress-pmkmsw.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-2aed7e5c90253064", "name": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/send-email/index.ts:64", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/send-email/index.ts:64"}, "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-942f313039de333f", "name": "Commented-code block (5 lines) in supabase/functions/smartlead-webhook/index.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in supabase/functions/smartlead-webhook/index.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-a11d248ea61e4645", "name": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/smartlead-webhook/index.ts:153", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/smartlead-webhook/index.ts:153"}, "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-ce4f754dfca031f5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/proposal-approval/index.ts:83", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/proposal-approval/index.ts:83"}, "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-85bb460e1b0c9de8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/send-sms/index.ts:84", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/send-sms/index.ts:84"}, "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-1121415956f7ac63", "name": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/proposal-share/index.ts:148", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/proposal-share/index.ts:148"}, "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-61bbece2d952299c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/lead-notifications/index.ts:120", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/lead-notifications/index.ts:120"}, "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-afa2691fb086d8ec", "name": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/supabase/functions/proposal-approval/index.ts:83", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/supabase/functions/proposal-approval/index.ts:83"}, "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-3d90f531188bbb87", "name": "Commented-code block (11 lines) in netlify/functions/draft-outreach.js:254", "shortDescription": {"text": "Commented-code block (11 lines) in netlify/functions/draft-outreach.js:254"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b348563bf27c572c", "name": "Commented-code block (9 lines) in netlify/functions/gmail-pubsub-reply.js:73", "shortDescription": {"text": "Commented-code block (9 lines) in netlify/functions/gmail-pubsub-reply.js:73"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0835367a2990fcaa", "name": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/slack-notification.js:78", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/slack-notification.js:78"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c5dab10342ff9cbe", "name": "Commented-code block (6 lines) in netlify/functions/gmail-sent-crawl.js:56", "shortDescription": {"text": "Commented-code block (6 lines) in netlify/functions/gmail-sent-crawl.js: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-79e6730d3f1c8723", "name": "Commented-code block (5 lines) in netlify/functions/gmail-oauth-disconnect.js:54", "shortDescription": {"text": "Commented-code block (5 lines) in netlify/functions/gmail-oauth-disconnect.js: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-78e2a66dd7a2ad78", "name": "Commented-code block (5 lines) in netlify/functions/workhuman-booking.js:259", "shortDescription": {"text": "Commented-code block (5 lines) in netlify/functions/workhuman-booking.js:259"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-89ace61babec814b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/workhuman-booking.js:105", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/workhuman-booking.js:105"}, "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-56f384e3528ed673", "name": "Commented-code block (5 lines) in netlify/functions/followups.js:53", "shortDescription": {"text": "Commented-code block (5 lines) in netlify/functions/followups.js:53"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-71bd08157307dcd7", "name": "Commented-code block (5 lines) in netlify/functions/proposal-event-notification.js:46", "shortDescription": {"text": "Commented-code block (5 lines) in netlify/functions/proposal-event-notification.js:46"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8a7977edb9ea3ed8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/proposal-event-notification.js:287", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/proposal-event-notification.js:287"}, "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-8d9a40556e01d1fb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/slack-assistant.js:64", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/slack-assistant.js:64"}, "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-3c413b359c38ef2c", "name": "Commented-code block (5 lines) in netlify/functions/slack-draft-async-background.js:275", "shortDescription": {"text": "Commented-code block (5 lines) in netlify/functions/slack-draft-async-background.js:275"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3332ec294cd0d77e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/slack-draft-async-background.js:205", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/slack-draft-async-background.js:205"}, "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-a2d41e2a64ed121e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/workhuman-booth-send.js:113", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/workhuman-booth-send.js:113"}, "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-d9744472ecfe0266", "name": "Commented-code block (6 lines) in netlify/functions/send-as-rep.js:97", "shortDescription": {"text": "Commented-code block (6 lines) in netlify/functions/send-as-rep.js:97"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ba5851de63a990a0", "name": "Commented-code block (5 lines) in netlify/functions/slack-rep-digest.js:47", "shortDescription": {"text": "Commented-code block (5 lines) in netlify/functions/slack-rep-digest.js:47"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ac97a1db4f40a0f0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/slack-rep-digest.js:80", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/slack-rep-digest.js:80"}, "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-eabec949079564b0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/create-event.js:61", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/create-event.js:61"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-599894140e4a31d4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/send-pro-agreement.js:138", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/send-pro-agreement.js:138"}, "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-5a4402af84a28d94", "name": "Commented-code block (7 lines) in netlify/functions/slack-interactivity.js:123", "shortDescription": {"text": "Commented-code block (7 lines) in netlify/functions/slack-interactivity.js:123"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-22a274525b51dfc1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/slack-interactivity.js:551", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/slack-interactivity.js:551"}, "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-8247698e7ea89db2", "name": "Commented-code block (6 lines) in netlify/functions/lib/slack-tools.js:79", "shortDescription": {"text": "Commented-code block (6 lines) in netlify/functions/lib/slack-tools.js:79"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-08cdc588ce4c4295", "name": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/lib/slack-tools.js:180", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/lib/slack-tools.js:180"}, "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-2410a23d98c7ea15", "name": "Commented-code block (5 lines) in netlify/functions/lib/slack-blocks.js:63", "shortDescription": {"text": "Commented-code block (5 lines) in netlify/functions/lib/slack-blocks.js:63"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-768fd221fa58753d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/lib/slack-event-ping.js:32", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/lib/slack-event-ping.js:32"}, "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-1c49ca011c1dbf12", "name": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/lib/logo-fetcher.js:228", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/lib/logo-fetcher.js:228"}, "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-3cd0e2242b820527", "name": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/lib/slack-notifier.js:169", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/lib/slack-notifier.js:169"}, "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-0c307aa0460c7579", "name": "Commented-code block (6 lines) in netlify/functions/lib/lead-picture.js:182", "shortDescription": {"text": "Commented-code block (6 lines) in netlify/functions/lib/lead-picture.js:182"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e8d9ea333ec86c3a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/lib/gmail.js:50", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/lib/gmail.js:50"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cff8be7751afe6e9", "name": "Commented-code block (6 lines) in netlify/functions/lib/proposal-editor.js:305", "shortDescription": {"text": "Commented-code block (6 lines) in netlify/functions/lib/proposal-editor.js:305"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a1f37f2a0fcc849e", "name": "Commented-code block (5 lines) in public/workhuman-tv-v4/slides_1.jsx:505", "shortDescription": {"text": "Commented-code block (5 lines) in public/workhuman-tv-v4/slides_1.jsx:505"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-92ef8e85efd0b682", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/workhuman-tv-v4/us_map.js:71", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/workhuman-tv-v4/us_map.js:71"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b071a2a6492d51ba", "name": "Commented-code block (7 lines) in public/workhuman-tv-v4/primitives.jsx:183", "shortDescription": {"text": "Commented-code block (7 lines) in public/workhuman-tv-v4/primitives.jsx:183"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-39b91031e7f334d2", "name": "Commented-code block (6 lines) in src/types/proposal.ts:6", "shortDescription": {"text": "Commented-code block (6 lines) in src/types/proposal.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-8d2db998f8808af2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/api/webhooks/leadNotifications.ts:114", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/api/webhooks/leadNotifications.ts:114"}, "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-e5406b9093138be6", "name": "Commented-code block (5 lines) in src/utils/yogaCatalog.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/utils/yogaCatalog.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-e2dc381f37edec58", "name": "Commented-code block (6 lines) in src/utils/soundBathCatalog.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/utils/soundBathCatalog.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-c48a9f55e45d5bd6", "name": "Commented-code block (7 lines) in src/utils/mindfulnessCatalog.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/utils/mindfulnessCatalog.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-dfa1a7a251bbc8bc", "name": "Commented-code block (7 lines) in src/utils/workhumanOutreachTemplates.ts:261", "shortDescription": {"text": "Commented-code block (7 lines) in src/utils/workhumanOutreachTemplates.ts:261"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-251c07f7253ba51e", "name": "Commented-code block (8 lines) in src/utils/proposalGenerator.ts:507", "shortDescription": {"text": "Commented-code block (8 lines) in src/utils/proposalGenerator.ts:507"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-78dada706985a8bc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/MindfulnessProposalViewer.tsx:1038", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/MindfulnessProposalViewer.tsx:1038"}, "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-65548773fe98df98", "name": "Commented-code block (5 lines) in src/components/WorkhumanOutreachQueue.tsx:37", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/WorkhumanOutreachQueue.tsx:37"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e3b38159e7ebbfa0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/StripeInvoiceButton.tsx:225", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/StripeInvoiceButton.tsx:225"}, "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-c3787697d0c6bb08", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/StandaloneMindfulnessProposalViewer.tsx:158", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/StandaloneMindfulnessProposalViewer.tsx:158"}, "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-f45862ca3d950a15", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/ProposalSurveyForm.tsx:352", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/ProposalSurveyForm.tsx:352"}, "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-8a419c60b4c47a32", "name": "Commented-code block (5 lines) in src/components/PartnershipModelsSection.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/PartnershipModelsSection.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-340db2c1140c227a", "name": "Commented-code block (7 lines) in src/components/ProposalGalleryAdmin.tsx:29", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/ProposalGalleryAdmin.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-e42346e8abe3c11d", "name": "Commented-code block (5 lines) in src/components/ProposalViewerV2.tsx:92", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/ProposalViewerV2.tsx:92"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6edea8479344735e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/ProposalViewerV2.tsx:1650", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/ProposalViewerV2.tsx:1650"}, "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-59f8dde73cc7cbe3", "name": "Commented-code block (6 lines) in src/components/BookACallLanding.tsx:25", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/BookACallLanding.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-bf463158f34f3af4", "name": "Commented-code block (6 lines) in src/components/WorkhumanPersonalNoteQueue.tsx:42", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/WorkhumanPersonalNoteQueue.tsx:42"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-478e172c5fc330c6", "name": "Commented-code block (5 lines) in src/components/ProposalTypeRouter.tsx:25", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/ProposalTypeRouter.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-d308efd16c308b91", "name": "Commented-code block (6 lines) in src/components/SalesIntelligence.tsx:397", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/SalesIntelligence.tsx:397"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ba5397e5c6e35a0e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/SalesIntelligence.tsx:318", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/SalesIntelligence.tsx:318"}, "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-905b5da4f50c7a4e", "name": "Commented-code block (5 lines) in src/components/UnifiedProposalSections.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/UnifiedProposalSections.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-19798e67202bb2ff", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/UpcomingEvents.tsx:180", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/UpcomingEvents.tsx:180"}, "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-cbd9fdef75470b4f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/PhotographerEventManager.tsx:289", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/PhotographerEventManager.tsx:289"}, "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-05e3c755cba4a45b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/InvoiceManager.tsx:191", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/InvoiceManager.tsx:191"}, "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-93c84eb96280dbc1", "name": "Commented-code block (5 lines) in src/components/SalesCompModel.tsx:96", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/SalesCompModel.tsx:96"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c3b007b15d560676", "name": "Commented-code block (5 lines) in src/components/WorkhumanTVLoop.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/WorkhumanTVLoop.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-0488a35f8145deca", "name": "Commented-code block (6 lines) in src/components/WorkhumanBooth.tsx:479", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/WorkhumanBooth.tsx:479"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-69a3dcb4ba6949b2", "name": "Commented-code block (5 lines) in src/components/WorkhumanBoothDesigns.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/WorkhumanBoothDesigns.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-fbb80159758e4192", "name": "Commented-code block (7 lines) in src/components/StandaloneProposalViewerV2.tsx:50", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/StandaloneProposalViewerV2.tsx:50"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a7fcb9e0949f76ac", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/EmployeeManager.tsx:235", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/EmployeeManager.tsx:235"}, "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-fc18e3c9e63e2de3", "name": "Commented-code block (5 lines) in src/components/ProposalViewer.tsx:1218", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/ProposalViewer.tsx:1218"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-feaf6ae9575104cc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/ProposalViewer.tsx:2093", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/ProposalViewer.tsx:2093"}, "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-0200d4b8d7179d52", "name": "Commented-code block (7 lines) in src/components/WorkhumanLeads.tsx:137", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/WorkhumanLeads.tsx:137"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-688e259cdcec735b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/ProposalOptionsModal.tsx:391", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/ProposalOptionsModal.tsx:391"}, "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-ea929933c6c6008a", "name": "Commented-code block (5 lines) in src/components/PersonalNoteFollowUpPanel.tsx:105", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/PersonalNoteFollowUpPanel.tsx:105"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3cc572b31ba9c3db", "name": "Commented-code block (5 lines) in src/components/proposal/PricingOptionsSelector.tsx:184", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/proposal/PricingOptionsSelector.tsx:184"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c06109a70a50657c", "name": "Commented-code block (6 lines) in src/components/proposal/RequestChangesModal.tsx:5", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/proposal/RequestChangesModal.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b8975e03bd842505", "name": "Commented-code block (6 lines) in src/components/proposal/ServiceAgreementCard.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/proposal/ServiceAgreementCard.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e57fcc1a4479f618", "name": "Commented-code block (6 lines) in src/components/proposal/OptionsTabs.tsx:7", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/proposal/OptionsTabs.tsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a91ea676e86b354f", "name": "Commented-code block (7 lines) in src/components/proposal/ServiceCard.tsx:38", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/proposal/ServiceCard.tsx:38"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dd444148587cd055", "name": "Commented-code block (6 lines) in src/components/proposal/data.ts:165", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/proposal/data.ts:165"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-50f15a14859390bf", "name": "Commented-code block (5 lines) in src/components/proposal/useProposalGallery.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/proposal/useProposalGallery.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-7050f0c423f20a97", "name": "Commented-code block (6 lines) in src/components/proposal/useServiceSelections.ts:48", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/proposal/useServiceSelections.ts:48"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-085124c96a7464ce", "name": "Commented-code block (6 lines) in src/components/proposal/shared/primitives.tsx:12", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/proposal/shared/primitives.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-5999507bf828eac5", "name": "Commented-code block (5 lines) in src/components/proposal/shared/useIsMobile.ts:8", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/proposal/shared/useIsMobile.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-02f5d0b3ffb5e39a", "name": "Commented-code block (7 lines) in src/components/proposal/sections/WhyShortcutSection.tsx:11", "shortDescription": {"text": "Commented-code block (7 lines) in src/components/proposal/sections/WhyShortcutSection.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-4e075a8147b48c05", "name": "Commented-code block (6 lines) in src/components/proposal/sections/serviceContent.ts:53", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/proposal/sections/serviceContent.ts:53"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1c7c5e5d868f3f9e", "name": "Commented-code block (5 lines) in src/components/proposal/sidebar/GalleryCard.tsx:8", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/proposal/sidebar/GalleryCard.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-6769ffa1d3aa91e2", "name": "Commented-code block (9 lines) in src/components/proposal/sidebar/SignupLinkCard.tsx:5", "shortDescription": {"text": "Commented-code block (9 lines) in src/components/proposal/sidebar/SignupLinkCard.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-11ae8fda381000eb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/contexts/ProAgreementContext.tsx:152", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/contexts/ProAgreementContext.tsx:152"}, "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-6cf2a21c2cbb7aff", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/services/generateProposalApi.ts:176", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/services/generateProposalApi.ts:176"}, "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-31a7f4e25b749aac", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/services/NotificationService.ts:187", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/services/NotificationService.ts:187"}, "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-0aae169a7a72b928", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/services/CalendarService.ts:122", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/services/CalendarService.ts:122"}, "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-1b862f23415c70c1", "name": "Frontend route `/proposal/:id` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/proposal/: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-33b8bdeb15f0a585", "name": "Frontend route `/p/:slug` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/p/:slug` 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-f7edb64804a55883", "name": "Frontend route `/r/:slug` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/r/:slug` 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-8198dc67b4ad9c85", "name": "Frontend route `/shared/:id` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/shared/: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-13a573e08b707d7c", "name": "Frontend route `/gallery/:token` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/gallery/: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-ab3c0ba83a42b976", "name": "Frontend route `/manager/:token` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/manager/: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-9529ed0fba401cca", "name": "Frontend route `/photographer/:token` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/photographer/: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-5540c6f3c95b039c", "name": "Frontend route `/photographer/:token/event/:eventId` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/photographer/:token/event/:eventId` 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-f4de0c64836c890c", "name": "Frontend route `/holiday-proposal` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/holiday-proposal` 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-5f463133ca011608", "name": "Frontend route `/holiday-generic` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/holiday-generic` 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-ef96770f0b45bb9c", "name": "Frontend route `/holiday2025` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/holiday2025` 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-56782f210aa91654", "name": "Frontend route `/holiday-page/:id` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/holiday-page/: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-89a3d1bf02199de4", "name": "Frontend route `/social-media/linkedin` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/social-media/linkedin` 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-49b335e058eb8657", "name": "Frontend route `/social-media/meta` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/social-media/meta` 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-efad513afbcc2567", "name": "Frontend route `/social-media-pages/linkedin` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/social-media-pages/linkedin` 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-ed045d89f883dbde", "name": "Frontend route `/social-media-pages/meta` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/social-media-pages/meta` 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-6b5c68967d4ca82a", "name": "Frontend route `/workhuman-leads/outreach` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/workhuman-leads/outreach` 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-6bc6105aa5ece496", "name": "Frontend route `/book-a-call` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/book-a-call` 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-53e1e288f21e5f49", "name": "Frontend route `/book-a-call/:id` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/book-a-call/: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-b7609ae3865c6987", "name": "Frontend route `/info` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/info` 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-f6fe61af0ffd96e5", "name": "Frontend route `/info/:id` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/info/: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-0a52bb945c5682e3", "name": "Frontend route `/workhuman/recharge` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/workhuman/recharge` 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-0650ce01918766ad", "name": "Frontend route `/workhuman/recharge/:id` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/workhuman/recharge/: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-26a67e157675bbd3", "name": "Frontend route `/sign/:slug` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/sign/:slug` 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-ec558121dba79e67", "name": "Frontend route `/qr-code-sign/:id` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/qr-code-sign/: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-35231f95c7692d96", "name": "Frontend route `/survey/:id` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/survey/: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-88232160037ca7b8", "name": "Frontend route `/survey-results/:token` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/survey-results/: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-bd7f5d9dc58984e7", "name": "Frontend route `/brochures/:name` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/brochures/:name` 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-a5f412d8295bf8c3", "name": "Frontend route `/corporatepartnerships` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/corporatepartnerships` 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-35720e416af2b0ab", "name": "Frontend route `/195-nassau` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/195-nassau` 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-59db07ff1da4518a", "name": "Frontend route `/lower-pyne` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/lower-pyne` 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-af1eb2af094afc52", "name": "Frontend route `/draftkings` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/draftkings` 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-c955dc1297e0eea2", "name": "Frontend route `/draftkings-report` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/draftkings-report` 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-d2b3a23ff3a96b15", "name": "Frontend route `/draftkings-lv` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/draftkings-lv` 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-5287ee58e68172d0", "name": "Frontend route `/draftkings/lv` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/draftkings/lv` 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-5779eef33b781bb9", "name": "Frontend route `/redesign-preview` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/redesign-preview` 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-815a482d3dff03d8", "name": "Frontend route `/generic-landing-page/:id` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/generic-landing-page/: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-07ec93d545c8dc3c", "name": "Frontend route `/:client/:type/:slug` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/:client/:type/:slug` 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/19542"}, "properties": {"repository": "shortcutllc/calculator6", "repoUrl": "https://github.com/shortcutllc/calculator6", "branch": "main"}, "results": [{"ruleId": "scanner-90f5bd8988b341fb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 optimize-svgs.js:20"}, "properties": {"repobilityId": "e3a0000a1946a97b", "scanner": "scanner-primary", "fingerprint": "90f5bd8988b341fb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d258d7251a15da03", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test-survey-notification.js:33"}, "properties": {"repobilityId": "f2a8d11217512339", "scanner": "scanner-primary", "fingerprint": "d258d7251a15da03", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0ab49de8ae01a515", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-proposals-with-shares.js:36"}, "properties": {"repobilityId": "1146299c438a2d4c", "scanner": "scanner-primary", "fingerprint": "0ab49de8ae01a515", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2ac1fc6b9a52920c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/update-mindfulness-pricing.js:35"}, "properties": {"repobilityId": "f5e9fa5aa28652dd", "scanner": "scanner-primary", "fingerprint": "2ac1fc6b9a52920c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9c0a6826bb257fe6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/optimize-images.js:6"}, "properties": {"repobilityId": "acba6244899770e2", "scanner": "scanner-primary", "fingerprint": "9c0a6826bb257fe6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2a22c0af9f542181", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-davis-polk-proposal.js:36"}, "properties": {"repobilityId": "47392516201a6470", "scanner": "scanner-primary", "fingerprint": "2a22c0af9f542181", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1ae7e1d200c2471a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-mindfulness-services.js:28"}, "properties": {"repobilityId": "456db3b3cdd4b760", "scanner": "scanner-primary", "fingerprint": "1ae7e1d200c2471a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4b45a6ae6bfa7855", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-proposals.js:24"}, "properties": {"repobilityId": "f47fc57331511479", "scanner": "scanner-primary", "fingerprint": "4b45a6ae6bfa7855", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0beed0de73948a82", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generate-lower-pyne-excel.ts:993"}, "properties": {"repobilityId": "ec1dcf937a7885d4", "scanner": "scanner-primary", "fingerprint": "0beed0de73948a82", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d08ff455ef4be8e9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-shared-proposals.js:29"}, "properties": {"repobilityId": "9cce04c668e39abd", "scanner": "scanner-primary", "fingerprint": "d08ff455ef4be8e9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-671ba844a9e51bbb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/smartlead-webhook/index.ts:389"}, "properties": {"repobilityId": "0683185e824ec923", "scanner": "scanner-primary", "fingerprint": "671ba844a9e51bbb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d32fd843a1d3c89a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/list-users/index.ts:71"}, "properties": {"repobilityId": "06da29c58dc8e3bc", "scanner": "scanner-primary", "fingerprint": "d32fd843a1d3c89a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9c35c2dc43ce7658", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 supabase/functions/lead-notifications/index.ts:23"}, "properties": {"repobilityId": "be5bfdad2b375f71", "scanner": "scanner-primary", "fingerprint": "9c35c2dc43ce7658", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1fc94f79f1b4905c", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 Create Reusable Component/src/app/components/ui/chart.tsx:83"}, "properties": {"repobilityId": "3dc35ed676fbd890", "scanner": "scanner-primary", "fingerprint": "1fc94f79f1b4905c", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-9006b56c95d43e2c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 netlify/functions/gmail-watch-renew.js:44"}, "properties": {"repobilityId": "75e23ef6e40a5ff0", "scanner": "scanner-primary", "fingerprint": "9006b56c95d43e2c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-315f2038c8bc752d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 netlify/functions/workhuman-booking.js:323"}, "properties": {"repobilityId": "1dae08898f8d6366", "scanner": "scanner-primary", "fingerprint": "315f2038c8bc752d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-572a8e44ff5785e1", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 netlify/functions/record-outreach-send.js:31"}, "properties": {"repobilityId": "4fdd96eaa64de0dc", "scanner": "scanner-primary", "fingerprint": "572a8e44ff5785e1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-5716050b4e62060c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 netlify/functions/fetch-coordinator-events.js:102"}, "properties": {"repobilityId": "b3e600b53a299166", "scanner": "scanner-primary", "fingerprint": "5716050b4e62060c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1fd1276eb6c92376", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 netlify/functions/proposal-event-notification.js:58"}, "properties": {"repobilityId": "4c195596cee50735", "scanner": "scanner-primary", "fingerprint": "1fd1276eb6c92376", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9b868748d92e726c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 netlify/functions/slack-assistant.js:169"}, "properties": {"repobilityId": "e39bbd423a65f485", "scanner": "scanner-primary", "fingerprint": "9b868748d92e726c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d9c935b2f99d358b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 netlify/functions/docuseal-webhook.js:61"}, "properties": {"repobilityId": "f5c3a4952312ca7b", "scanner": "scanner-primary", "fingerprint": "d9c935b2f99d358b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-79ed5334e0371cf0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 netlify/functions/create-event.js:59"}, "properties": {"repobilityId": "d70226f950737fc7", "scanner": "scanner-primary", "fingerprint": "79ed5334e0371cf0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5d38b03bca3f7c7f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 netlify/functions/apollo-phone-webhook.js:104"}, "properties": {"repobilityId": "a3848dba553f1550", "scanner": "scanner-primary", "fingerprint": "5d38b03bca3f7c7f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e9c69d664ddc2124", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 netlify/functions/lib/slack-event-ping.js:21"}, "properties": {"repobilityId": "cd28d78ed0354270", "scanner": "scanner-primary", "fingerprint": "e9c69d664ddc2124", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-96779f821b7bec6e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 netlify/functions/lib/slack-ai.js:857"}, "properties": {"repobilityId": "726d68b8931eb29a", "scanner": "scanner-primary", "fingerprint": "96779f821b7bec6e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-41981bc1cc0cf8dd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 netlify/plugins/image-optimizer/index.js:10"}, "properties": {"repobilityId": "23f26e82e4d9646a", "scanner": "scanner-primary", "fingerprint": "41981bc1cc0cf8dd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6f647190a7443d1d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/config/index.ts:33"}, "properties": {"repobilityId": "034e40a6ff9443bc", "scanner": "scanner-primary", "fingerprint": "6f647190a7443d1d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5040c85f45779cc9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/api/webhooks/leadNotifications.ts:30"}, "properties": {"repobilityId": "3a74127634fbb5fe", "scanner": "scanner-primary", "fingerprint": "5040c85f45779cc9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-48f62330ca77a550", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/utils/proposalGenerator.ts:457"}, "properties": {"repobilityId": "7e27e724c953412f", "scanner": "scanner-primary", "fingerprint": "48f62330ca77a550", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b6bf76aa2ef51e28", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/utils/trackingUtils.ts:287"}, "properties": {"repobilityId": "4ee7f3b98822a39b", "scanner": "scanner-primary", "fingerprint": "b6bf76aa2ef51e28", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-86d16e0db9e1d5ef", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/MindfulnessProposalViewer.tsx:147"}, "properties": {"repobilityId": "db75518a17ba5d61", "scanner": "scanner-primary", "fingerprint": "86d16e0db9e1d5ef", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-28df7699a662d1b4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/WorkhumanOutreachQueue.tsx:295"}, "properties": {"repobilityId": "087da831340bc380", "scanner": "scanner-primary", "fingerprint": "28df7699a662d1b4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-423c7f5c9570dfdf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/DocumentUploader.tsx:57"}, "properties": {"repobilityId": "ee11e9d89c022dde", "scanner": "scanner-primary", "fingerprint": "423c7f5c9570dfdf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f7f66d53fee24ba8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/DraftKingsReport.tsx:350"}, "properties": {"repobilityId": "3fbdb8f95b077646", "scanner": "scanner-primary", "fingerprint": "f7f66d53fee24ba8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7f78e32c71ff021f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/StandaloneMindfulnessProposalViewer.tsx:649"}, "properties": {"repobilityId": "17e5cec3a9bde7e1", "scanner": "scanner-primary", "fingerprint": "7f78e32c71ff021f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f7e50262e389d18c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/StandaloneMindfulnessProposalViewer.tsx:97"}, "properties": {"repobilityId": "ba0f97b5b1d915c2", "scanner": "scanner-primary", "fingerprint": "f7e50262e389d18c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e80f97298f05a84f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/ProposalSurveyForm.tsx:96"}, "properties": {"repobilityId": "27ff2c627e839d8a", "scanner": "scanner-primary", "fingerprint": "e80f97298f05a84f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1d19dbc88f618bb2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/PhotoUploader.tsx:673"}, "properties": {"repobilityId": "399fe0a61da43e1f", "scanner": "scanner-primary", "fingerprint": "1d19dbc88f618bb2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-10cef6cf0b010335", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/PhotoUploader.tsx:62"}, "properties": {"repobilityId": "b6025f069a1e2b99", "scanner": "scanner-primary", "fingerprint": "10cef6cf0b010335", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4fa5ae87d928f0aa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/HolidayProposal.tsx:329"}, "properties": {"repobilityId": "df5316c85b728528", "scanner": "scanner-primary", "fingerprint": "4fa5ae87d928f0aa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2278642c8c6d1d92", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/MindfulnessProgramModal.tsx:133"}, "properties": {"repobilityId": "9e2ee7cbc6bd5f3e", "scanner": "scanner-primary", "fingerprint": "2278642c8c6d1d92", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2561c9c15be6e485", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/ProAgreementManager.tsx:404"}, "properties": {"repobilityId": "d626401641961a57", "scanner": "scanner-primary", "fingerprint": "2561c9c15be6e485", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e614f236f5e2cb1d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/BrochureList.tsx:196"}, "properties": {"repobilityId": "969b47c96d1ab5ee", "scanner": "scanner-primary", "fingerprint": "e614f236f5e2cb1d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-dcf5c678188f0a55", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/ProposalCustomUrlExample.tsx:38"}, "properties": {"repobilityId": "15b06ac504646d20", "scanner": "scanner-primary", "fingerprint": "dcf5c678188f0a55", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-06d13a4f2e86a392", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/ParticipantFolderView.tsx:245"}, "properties": {"repobilityId": "4bffef38334b3208", "scanner": "scanner-primary", "fingerprint": "06d13a4f2e86a392", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-80c3bdaa4f24b4a1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/Navigation.tsx:221"}, "properties": {"repobilityId": "cf3457edb8ddffe9", "scanner": "scanner-primary", "fingerprint": "80c3bdaa4f24b4a1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1e86c4c03b9d6383", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/PrivateRoute.tsx:14"}, "properties": {"repobilityId": "2dd742064616899e", "scanner": "scanner-primary", "fingerprint": "1e86c4c03b9d6383", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-50778b882866f2eb", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 src/components/HolidayPageCreator.tsx:297"}, "properties": {"repobilityId": "8eef4e3237bd9ade", "scanner": "scanner-primary", "fingerprint": "50778b882866f2eb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-3e8cd19bc45a3d59", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/HolidayPageCreator.tsx:18"}, "properties": {"repobilityId": "ce0b2bd528a3af2b", "scanner": "scanner-primary", "fingerprint": "3e8cd19bc45a3d59", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cea7f7becfbefda1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/History.tsx:783"}, "properties": {"repobilityId": "a4e4e9485459d1dc", "scanner": "scanner-primary", "fingerprint": "cea7f7becfbefda1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ed33966465b88895", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/StandaloneProposalViewer.tsx:1683"}, "properties": {"repobilityId": "b79c6067c0fb73e3", "scanner": "scanner-primary", "fingerprint": "ed33966465b88895", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-373beb51418a5417", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/StandaloneProposalViewer.tsx:343"}, "properties": {"repobilityId": "4d83f4fe002966a4", "scanner": "scanner-primary", "fingerprint": "373beb51418a5417", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4a21a74defcd79a8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/HolidayPageManager.tsx:118"}, "properties": {"repobilityId": "c65492f2a21a0cf2", "scanner": "scanner-primary", "fingerprint": "4a21a74defcd79a8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f3cca10bab01a517", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/HeadshotEventManager.tsx:127"}, "properties": {"repobilityId": "1ea15dabfe62adb0", "scanner": "scanner-primary", "fingerprint": "f3cca10bab01a517", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8bbcee6634c72c1b", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 src/components/SurveyCreator.tsx:309"}, "properties": {"repobilityId": "97d5ed05d4897a11", "scanner": "scanner-primary", "fingerprint": "8bbcee6634c72c1b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-9291ccd85d468b1e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/SalesIntelligence.tsx:796"}, "properties": {"repobilityId": "10451a18a4945a95", "scanner": "scanner-primary", "fingerprint": "9291ccd85d468b1e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9c2e41b1377975d3", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/components/ParticipantFolderManager.tsx:150"}, "properties": {"repobilityId": "543dec2d3dafbf4f", "scanner": "scanner-primary", "fingerprint": "9c2e41b1377975d3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-913ad0db8beba4a5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/UpcomingEvents.tsx:420"}, "properties": {"repobilityId": "f3eb1a91827cf68e", "scanner": "scanner-primary", "fingerprint": "913ad0db8beba4a5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5e2864e4b584d852", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/InvoiceManager.tsx:432"}, "properties": {"repobilityId": "9b462cf835764a9a", "scanner": "scanner-primary", "fingerprint": "5e2864e4b584d852", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c386dd937f5c4082", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/SurveyManager.tsx:213"}, "properties": {"repobilityId": "c4c27816261afc0c", "scanner": "scanner-primary", "fingerprint": "c386dd937f5c4082", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d686af5ef9242658", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 src/components/DevTaskDetail.tsx:66"}, "properties": {"repobilityId": "e0acd288381fb1ed", "scanner": "scanner-primary", "fingerprint": "d686af5ef9242658", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-95c1658812d1aec5", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 src/components/QRCodeSignCreator.tsx:441"}, "properties": {"repobilityId": "d53489d892886cdc", "scanner": "scanner-primary", "fingerprint": "95c1658812d1aec5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-40ba64b481edf241", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 src/components/GenericLandingPageCreator.tsx:335"}, "properties": {"repobilityId": "5d1831374eeec91a", "scanner": "scanner-primary", "fingerprint": "40ba64b481edf241", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-af41fc0ccd7967fc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/GenericLandingPageCreator.tsx:23"}, "properties": {"repobilityId": "a58c34d44a0b2c61", "scanner": "scanner-primary", "fingerprint": "af41fc0ccd7967fc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b1b81b728f556168", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/UsersManagement.tsx:74"}, "properties": {"repobilityId": "22dd88df3d711d36", "scanner": "scanner-primary", "fingerprint": "b1b81b728f556168", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2e424ae823d06c45", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/SignUpLinkManager.tsx:227"}, "properties": {"repobilityId": "ae1321fec1431d12", "scanner": "scanner-primary", "fingerprint": "2e424ae823d06c45", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5c5a1698c2809d9b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/WorkhumanBooth.tsx:922"}, "properties": {"repobilityId": "2f50a860c5627975", "scanner": "scanner-primary", "fingerprint": "5c5a1698c2809d9b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a84c99d1df370f33", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/WorkhumanBooth.tsx:1513"}, "properties": {"repobilityId": "80e28d836e3503f9", "scanner": "scanner-primary", "fingerprint": "a84c99d1df370f33", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-22c76c401b538404", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/components/MindfulnessProgramManager.tsx:544"}, "properties": {"repobilityId": "9b1d9872c2c82732", "scanner": "scanner-primary", "fingerprint": "22c76c401b538404", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-2de1796afde5ba8b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/MindfulnessProgramManager.tsx:91"}, "properties": {"repobilityId": "da16dea21dee5d57", "scanner": "scanner-primary", "fingerprint": "2de1796afde5ba8b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e665605f1d9ac22f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/QRCodeSignManager.tsx:32"}, "properties": {"repobilityId": "806548cf4e286a5c", "scanner": "scanner-primary", "fingerprint": "e665605f1d9ac22f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-12563524a0354cfa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/ProposalViewer.tsx:539"}, "properties": {"repobilityId": "7f55e0b401d99403", "scanner": "scanner-primary", "fingerprint": "12563524a0354cfa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-038e9ee934f4dc0d", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 src/components/ClientProposalBuilder.tsx:1429"}, "properties": {"repobilityId": "5913c257c7488533", "scanner": "scanner-primary", "fingerprint": "038e9ee934f4dc0d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-0896a2351937a4a9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/ClientProposalBuilder.tsx:1604"}, "properties": {"repobilityId": "a86528fd501fddbf", "scanner": "scanner-primary", "fingerprint": "0896a2351937a4a9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2b0a45c4a1bc6371", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/SignUpLinkCreator.tsx:163"}, "properties": {"repobilityId": "a40c46fcfa901461", "scanner": "scanner-primary", "fingerprint": "2b0a45c4a1bc6371", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1ade7a7c240ac2c5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/WorkhumanLeads.tsx:1443"}, "properties": {"repobilityId": "da4a5a3df57e99b1", "scanner": "scanner-primary", "fingerprint": "1ade7a7c240ac2c5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0008e1f8d1874c14", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/ClientEmailManager.tsx:139"}, "properties": {"repobilityId": "4bd87b11262ecd75", "scanner": "scanner-primary", "fingerprint": "0008e1f8d1874c14", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2c95595d9553f43a", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 src/components/DevTaskCreator.tsx:125"}, "properties": {"repobilityId": "39cfde98de5dc0b1", "scanner": "scanner-primary", "fingerprint": "2c95595d9553f43a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-7d985a9cea4db2bf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/SocialMediaProposal.tsx:136"}, "properties": {"repobilityId": "8468a474ff322eec", "scanner": "scanner-primary", "fingerprint": "7d985a9cea4db2bf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d96850c9853562a3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/ProposalOptionsModal.tsx:90"}, "properties": {"repobilityId": "abceee948b5e8ecf", "scanner": "scanner-primary", "fingerprint": "d96850c9853562a3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-28e9451fff375529", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/GenericLandingPage.tsx:161"}, "properties": {"repobilityId": "865f70b758cdc513", "scanner": "scanner-primary", "fingerprint": "28e9451fff375529", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-33862c078a3e17e5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/GenericLandingPageManager.tsx:118"}, "properties": {"repobilityId": "14a255a8c848732a", "scanner": "scanner-primary", "fingerprint": "33862c078a3e17e5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c2a4ddf52d110672", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/contexts/AuthContext.tsx:45"}, "properties": {"repobilityId": "b0560e613f912695", "scanner": "scanner-primary", "fingerprint": "c2a4ddf52d110672", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-854595783a9b2957", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/contexts/ProposalContext.tsx:240"}, "properties": {"repobilityId": "3e6577a7ca68b005", "scanner": "scanner-primary", "fingerprint": "854595783a9b2957", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-de41e838c173441b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/contexts/GenericLandingPageContext.tsx:66"}, "properties": {"repobilityId": "00d3d2d82c234861", "scanner": "scanner-primary", "fingerprint": "de41e838c173441b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-facc548af6733d64", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/contexts/SocialMediaPageContext.tsx:31"}, "properties": {"repobilityId": "b82a80a3b81b10a1", "scanner": "scanner-primary", "fingerprint": "facc548af6733d64", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-619421bb8967870b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/contexts/HolidayPageContext.tsx:52"}, "properties": {"repobilityId": "1efa66ed218bf59d", "scanner": "scanner-primary", "fingerprint": "619421bb8967870b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-15a22c58e979eb6e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/services/SMSService.ts:31"}, "properties": {"repobilityId": "b2788ec4c62b95bc", "scanner": "scanner-primary", "fingerprint": "15a22c58e979eb6e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e9178024a23de9fa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/services/NotificationService.ts:50"}, "properties": {"repobilityId": "f94cb2cd2d25cd61", "scanner": "scanner-primary", "fingerprint": "e9178024a23de9fa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8672e4400c9de3cb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/services/CalendarService.ts:141"}, "properties": {"repobilityId": "4514139acd853b6d", "scanner": "scanner-primary", "fingerprint": "8672e4400c9de3cb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-152d2fe4b967109f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/services/MindfulnessProgramService.ts:141"}, "properties": {"repobilityId": "574670a6b6298920", "scanner": "scanner-primary", "fingerprint": "152d2fe4b967109f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d8cc088647c8cd0f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/services/HeadshotService.ts:155"}, "properties": {"repobilityId": "d02f0cb50668cdb6", "scanner": "scanner-primary", "fingerprint": "d8cc088647c8cd0f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6c9993ce487a7966", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in vite.config.ts:56"}, "properties": {"repobilityId": "aa73adf493d38401", "scanner": "scanner-primary", "fingerprint": "6c9993ce487a7966", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "vite.config.ts"}, "region": {"startLine": 56}}}]}, {"ruleId": "scanner-746f3e196b923a2e", "level": "note", "message": {"text": "Insecure pattern 'document_write' in proposals.getshortcut.co-20251020T161445.html:20"}, "properties": {"repobilityId": "5701c7c03bb53a1b", "scanner": "scanner-primary", "fingerprint": "746f3e196b923a2e", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "proposals.getshortcut.co-20251020T161445.html"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-bd5fc8518f6921ee", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in calculator-reference.html:1474"}, "properties": {"repobilityId": "01403da285bf6790", "scanner": "scanner-primary", "fingerprint": "bd5fc8518f6921ee", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "calculator-reference.html"}, "region": {"startLine": 1474}}}]}, {"ruleId": "scanner-cfc6165ab5ed7467", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/delete-user/index.ts:5"}, "properties": {"repobilityId": "c784695c877499b9", "scanner": "scanner-primary", "fingerprint": "cfc6165ab5ed7467", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/delete-user/index.ts"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-58c1f690f8e76627", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/reset-user-password/index.ts:5"}, "properties": {"repobilityId": "f99dc62056b6dd3b", "scanner": "scanner-primary", "fingerprint": "58c1f690f8e76627", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/reset-user-password/index.ts"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-72640c65c72af001", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/invite-user/index.ts:5"}, "properties": {"repobilityId": "f1b1a21e6d6efd72", "scanner": "scanner-primary", "fingerprint": "72640c65c72af001", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/invite-user/index.ts"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-7da6fcceed9a1eab", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/send-email/index.ts:5"}, "properties": {"repobilityId": "deaf722fb6438a69", "scanner": "scanner-primary", "fingerprint": "7da6fcceed9a1eab", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/send-email/index.ts"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-91d80ca396ea7484", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/proposal-proxy/index.ts:5"}, "properties": {"repobilityId": "35de3e360158ce8a", "scanner": "scanner-primary", "fingerprint": "91d80ca396ea7484", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/proposal-proxy/index.ts"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-835c8f4dd58ed3c7", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/smartlead-webhook/index.ts:17"}, "properties": {"repobilityId": "1a2a35a9c6155a12", "scanner": "scanner-primary", "fingerprint": "835c8f4dd58ed3c7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/smartlead-webhook/index.ts"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-5f557ce8eac8e2c3", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/proposal-approval/index.ts:8"}, "properties": {"repobilityId": "d0cb7fe51fc4bc79", "scanner": "scanner-primary", "fingerprint": "5f557ce8eac8e2c3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/proposal-approval/index.ts"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-dbe4c7066bde828f", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/send-sms/index.ts:21"}, "properties": {"repobilityId": "178f92d0ca5f403c", "scanner": "scanner-primary", "fingerprint": "dbe4c7066bde828f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/send-sms/index.ts"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-c996d0f749992bcd", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/proposal-share/index.ts:5"}, "properties": {"repobilityId": "712366b7c8f0b08d", "scanner": "scanner-primary", "fingerprint": "c996d0f749992bcd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/proposal-share/index.ts"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-cf5b9f4b8b06ad97", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/list-users/index.ts:5"}, "properties": {"repobilityId": "62b8975be815f5ec", "scanner": "scanner-primary", "fingerprint": "cf5b9f4b8b06ad97", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/list-users/index.ts"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-6b94f80af71b9683", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/lead-notifications/index.ts:5"}, "properties": {"repobilityId": "141c645240c59566", "scanner": "scanner-primary", "fingerprint": "6b94f80af71b9683", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/lead-notifications/index.ts"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-ae5dfa15e893b728", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/supabase/functions/proposal-approval/index.ts:8"}, "properties": {"repobilityId": "8c3f310146600449", "scanner": "scanner-primary", "fingerprint": "ae5dfa15e893b728", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/supabase/functions/proposal-approval/index.ts"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-48c9c03d05c471b7", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in Create Reusable Component/src/app/components/ui/chart.tsx:83"}, "properties": {"repobilityId": "b19379d715420c9b", "scanner": "scanner-primary", "fingerprint": "48c9c03d05c471b7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Create Reusable Component/src/app/components/ui/chart.tsx"}, "region": {"startLine": 83}}}]}, {"ruleId": "scanner-f1cf66cbcb31be27", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/workhuman-signups-import.js:22"}, "properties": {"repobilityId": "3b0ce1198d710f4a", "scanner": "scanner-primary", "fingerprint": "f1cf66cbcb31be27", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/functions/workhuman-signups-import.js"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-8635bd33a3ac1acd", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/gmail-sync-toggle.js:13"}, "properties": {"repobilityId": "7e6a974a8ac0c271", "scanner": "scanner-primary", "fingerprint": "8635bd33a3ac1acd", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/functions/gmail-sync-toggle.js"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-67e51d9bf627b90f", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/draft-outreach.js:31"}, "properties": {"repobilityId": "2a3a68faaac6a274", "scanner": "scanner-primary", "fingerprint": "67e51d9bf627b90f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/functions/draft-outreach.js"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-5ff32efe0d6b4f37", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/slack-notification.js:7"}, "properties": {"repobilityId": "0167c982f8c38b41", "scanner": "scanner-primary", "fingerprint": "5ff32efe0d6b4f37", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/functions/slack-notification.js"}, "region": {"startLine": 7}}}]}, {"ruleId": "scanner-a2f55e1375ef4bcb", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/generate-personal-caveat.js:396"}, "properties": {"repobilityId": "d4bfd493b3268c03", "scanner": "scanner-primary", "fingerprint": "a2f55e1375ef4bcb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/functions/generate-personal-caveat.js"}, "region": {"startLine": 396}}}]}, {"ruleId": "scanner-a91069e5c4fc9c50", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/gmail-oauth-disconnect.js:17"}, "properties": {"repobilityId": "b8d70e4ec4d3cd69", "scanner": "scanner-primary", "fingerprint": "a91069e5c4fc9c50", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/functions/gmail-oauth-disconnect.js"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-ca39f657ac60efa0", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/workhuman-booking.js:15"}, "properties": {"repobilityId": "b8a785165e8c1b2c", "scanner": "scanner-primary", "fingerprint": "ca39f657ac60efa0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/functions/workhuman-booking.js"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-1f3e2e8c8f740c4e", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/record-outreach-send.js:24"}, "properties": {"repobilityId": "da29f9d6c1d96c18", "scanner": "scanner-primary", "fingerprint": "1f3e2e8c8f740c4e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/functions/record-outreach-send.js"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-6f578f3061ae9240", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/gmail-thread.js:22"}, "properties": {"repobilityId": "dfbd5ec64ecfcc3c", "scanner": "scanner-primary", "fingerprint": "6f578f3061ae9240", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/functions/gmail-thread.js"}, "region": {"startLine": 22}}}]}, {"ruleId": "scanner-84f970ad764abf71", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/fetch-coordinator-events.js:201"}, "properties": {"repobilityId": "46b94146a2df04e0", "scanner": "scanner-primary", "fingerprint": "84f970ad764abf71", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/functions/fetch-coordinator-events.js"}, "region": {"startLine": 201}}}]}, {"ruleId": "scanner-bf1c2f73643b9195", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/followups.js:26"}, "properties": {"repobilityId": "94ff6b6e92649a1b", "scanner": "scanner-primary", "fingerprint": "bf1c2f73643b9195", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/functions/followups.js"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-edf3ce70df062f87", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/gmail-status.js:12"}, "properties": {"repobilityId": "431558df3166f334", "scanner": "scanner-primary", "fingerprint": "edf3ce70df062f87", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/functions/gmail-status.js"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-c1553452d503708d", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/brokers.js:19"}, "properties": {"repobilityId": "d313c15864c4d63f", "scanner": "scanner-primary", "fingerprint": "c1553452d503708d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/functions/brokers.js"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-ab4689c0b3682505", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/contact-card.js:18"}, "properties": {"repobilityId": "dd9b6e992ad6a572", "scanner": "scanner-primary", "fingerprint": "ab4689c0b3682505", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/functions/contact-card.js"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-e953b433b032feea", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/proposal-event-notification.js:9"}, "properties": {"repobilityId": "ce93f78b6f22cf1a", "scanner": "scanner-primary", "fingerprint": "e953b433b032feea", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/functions/proposal-event-notification.js"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-77884aacfa313ef2", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/create-stripe-invoice.js:17"}, "properties": {"repobilityId": "b080b8426f58e603", "scanner": "scanner-primary", "fingerprint": "77884aacfa313ef2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/functions/create-stripe-invoice.js"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-981f5323ddd0397e", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/lead-actions.js:25"}, "properties": {"repobilityId": "5d8b1db3874454c4", "scanner": "scanner-primary", "fingerprint": "981f5323ddd0397e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/functions/lead-actions.js"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-1fb1a43ac0868b28", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/workhuman-booth-send.js:19"}, "properties": {"repobilityId": "296c43b3d0a02153", "scanner": "scanner-primary", "fingerprint": "1fb1a43ac0868b28", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/functions/workhuman-booth-send.js"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-e0e716e91d1009e9", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/send-as-rep.js:20"}, "properties": {"repobilityId": "823645fe2c0a74f1", "scanner": "scanner-primary", "fingerprint": "e0e716e91d1009e9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/functions/send-as-rep.js"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-6d88f12d15e8f060", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/generate-proposal.js:46"}, "properties": {"repobilityId": "2836226f6218b27d", "scanner": "scanner-primary", "fingerprint": "6d88f12d15e8f060", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/functions/generate-proposal.js"}, "region": {"startLine": 46}}}]}, {"ruleId": "scanner-51b59b9a371e4815", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/create-event.js:151"}, "properties": {"repobilityId": "92ad7460cf5ccc60", "scanner": "scanner-primary", "fingerprint": "51b59b9a371e4815", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/functions/create-event.js"}, "region": {"startLine": 151}}}]}, {"ruleId": "scanner-bdb31641a968722b", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/gmail-oauth-start.js:15"}, "properties": {"repobilityId": "c8536b0aab0e7f65", "scanner": "scanner-primary", "fingerprint": "bdb31641a968722b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/functions/gmail-oauth-start.js"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-6bf9d185e8146362", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/create-workhuman-landing-page.js:241"}, "properties": {"repobilityId": "ef1631ed2577f70e", "scanner": "scanner-primary", "fingerprint": "6bf9d185e8146362", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/functions/create-workhuman-landing-page.js"}, "region": {"startLine": 241}}}]}, {"ruleId": "scanner-006abdbf3fec7e76", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/send-pro-agreement.js:16"}, "properties": {"repobilityId": "7df098b3eef5a0b6", "scanner": "scanner-primary", "fingerprint": "006abdbf3fec7e76", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/functions/send-pro-agreement.js"}, "region": {"startLine": 16}}}]}, {"ruleId": "scanner-b341348444b613f8", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/lp-view-ping.js:21"}, "properties": {"repobilityId": "e204a9b9e417b617", "scanner": "scanner-primary", "fingerprint": "b341348444b613f8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/functions/lp-view-ping.js"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-3d2f7c26466160da", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in netlify/functions/apollo-phone-webhook.js:35"}, "properties": {"repobilityId": "93bd9cb89c2c7a8f", "scanner": "scanner-primary", "fingerprint": "3d2f7c26466160da", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "netlify/functions/apollo-phone-webhook.js"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-d683c159188f932d", "level": "error", "message": {"text": "Possible secret in public/env-config.js"}, "properties": {"repobilityId": "9ab48687a2b0d1d6", "scanner": "scanner-primary", "fingerprint": "d683c159188f932d", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "public/env-config.js"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-e966027e1f281c60", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/main.tsx:24"}, "properties": {"repobilityId": "b309e363ef5cc0b8", "scanner": "scanner-primary", "fingerprint": "e966027e1f281c60", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/main.tsx"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-8d326fc3cfeac03a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/utils/clipboardHtml.ts:19"}, "properties": {"repobilityId": "af51d114315706bf", "scanner": "scanner-primary", "fingerprint": "8d326fc3cfeac03a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/utils/clipboardHtml.ts"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-5cf7cd201e731270", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in src/utils/trackingUtils.ts:368"}, "properties": {"repobilityId": "c866148e2f829b74", "scanner": "scanner-primary", "fingerprint": "5cf7cd201e731270", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/utils/trackingUtils.ts"}, "region": {"startLine": 368}}}]}, {"ruleId": "scanner-19923bebb189edc5", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in src/components/DraftKingsReport.tsx:375"}, "properties": {"repobilityId": "496d86ad1e8060a3", "scanner": "scanner-primary", "fingerprint": "19923bebb189edc5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/components/DraftKingsReport.tsx"}, "region": {"startLine": 375}}}]}, {"ruleId": "scanner-16d1c192189e5f4a", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in src/components/NassauBudgetReview.tsx:138"}, "properties": {"repobilityId": "f76ec0098d38d928", "scanner": "scanner-primary", "fingerprint": "16d1c192189e5f4a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/components/NassauBudgetReview.tsx"}, "region": {"startLine": 138}}}]}, {"ruleId": "scanner-98d22271df181a95", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in src/components/LowerPyneDashboard.tsx:268"}, "properties": {"repobilityId": "7d37e4b3c67e74fc", "scanner": "scanner-primary", "fingerprint": "98d22271df181a95", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/components/LowerPyneDashboard.tsx"}, "region": {"startLine": 268}}}]}, {"ruleId": "scanner-be3876e2706f33ee", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in src/components/SalesCompModel.tsx:203"}, "properties": {"repobilityId": "e38642d28095c19f", "scanner": "scanner-primary", "fingerprint": "be3876e2706f33ee", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/components/SalesCompModel.tsx"}, "region": {"startLine": 203}}}]}, {"ruleId": "scanner-1989d21461966c03", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/components/WorkhumanBooth.tsx:1513"}, "properties": {"repobilityId": "108a1c5bb3c5e5ca", "scanner": "scanner-primary", "fingerprint": "1989d21461966c03", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/components/WorkhumanBooth.tsx"}, "region": {"startLine": 1513}}}]}, {"ruleId": "scanner-41bc5190322f78e3", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in src/components/DraftKingsLVReport.tsx:236"}, "properties": {"repobilityId": "151bae7e873fc199", "scanner": "scanner-primary", "fingerprint": "41bc5190322f78e3", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/components/DraftKingsLVReport.tsx"}, "region": {"startLine": 236}}}]}, {"ruleId": "scanner-9db9f5813acb2d37", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/components/ClientProposalBuilder.tsx:1017"}, "properties": {"repobilityId": "54a999ff5e7741b1", "scanner": "scanner-primary", "fingerprint": "9db9f5813acb2d37", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/components/ClientProposalBuilder.tsx"}, "region": {"startLine": 1017}}}]}, {"ruleId": "scanner-c6a7ee25fefa785d", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in src/components/SocialMediaProposal.tsx:321"}, "properties": {"repobilityId": "205474a5d50daf45", "scanner": "scanner-primary", "fingerprint": "c6a7ee25fefa785d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/components/SocialMediaProposal.tsx"}, "region": {"startLine": 321}}}]}, {"ruleId": "scanner-4601e3ad3bb28677", "level": "warning", "message": {"text": "No CI/CD pipelines detected"}, "properties": {"repobilityId": "c3ee439bce2bc51e", "scanner": "scanner-primary", "fingerprint": "4601e3ad3bb28677", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-b8cf561f98b742dc", "level": "note", "message": {"text": "Very large file: netlify/functions/slack-draft-async-background.js (913 lines)"}, "properties": {"repobilityId": "9299840ba13aea03", "scanner": "scanner-primary", "fingerprint": "b8cf561f98b742dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-138a306ab62c0eee", "level": "note", "message": {"text": "Very large file: netlify/functions/lib/slack-tools.js (1814 lines)"}, "properties": {"repobilityId": "838bb02838a781df", "scanner": "scanner-primary", "fingerprint": "138a306ab62c0eee", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-be25366549bde475", "level": "note", "message": {"text": "Very large file: netlify/functions/lib/slack-ai.js (966 lines)"}, "properties": {"repobilityId": "feb6f683c5dac84c", "scanner": "scanner-primary", "fingerprint": "be25366549bde475", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f38fc73d137843f5", "level": "note", "message": {"text": "Very large file: src/components/MindfulnessProposalViewer.tsx (2166 lines)"}, "properties": {"repobilityId": "0ade5ea07b04cc56", "scanner": "scanner-primary", "fingerprint": "f38fc73d137843f5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f71058aca3aea86e", "level": "note", "message": {"text": "Very large file: src/components/DraftKingsReport.tsx (1491 lines)"}, "properties": {"repobilityId": "32b23e4b4ca7ca7a", "scanner": "scanner-primary", "fingerprint": "f71058aca3aea86e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e6b61e6ca9fa437d", "level": "note", "message": {"text": "Very large file: src/components/StandaloneMindfulnessProposalViewer.tsx (1436 lines)"}, "properties": {"repobilityId": "8fc6012aa9321a2d", "scanner": "scanner-primary", "fingerprint": "e6b61e6ca9fa437d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f67824440bc39770", "level": "note", "message": {"text": "Very large file: src/components/NassauBudgetReview.tsx (1250 lines)"}, "properties": {"repobilityId": "267d3e5aee86adeb", "scanner": "scanner-primary", "fingerprint": "f67824440bc39770", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ae5d761842bbd35f", "level": "note", "message": {"text": "Very large file: src/components/HolidayProposal.tsx (2563 lines)"}, "properties": {"repobilityId": "0390eae158ded9ac", "scanner": "scanner-primary", "fingerprint": "ae5d761842bbd35f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e2f1805241977c90", "level": "note", "message": {"text": "Very large file: src/components/Plan2026ML.tsx (2899 lines)"}, "properties": {"repobilityId": "e438377143316515", "scanner": "scanner-primary", "fingerprint": "e2f1805241977c90", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1a7ad2aefa8241e9", "level": "note", "message": {"text": "Very large file: src/components/LowerPyneDashboard.tsx (4116 lines)"}, "properties": {"repobilityId": "0985d7815687363d", "scanner": "scanner-primary", "fingerprint": "1a7ad2aefa8241e9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6ce5e237c632c7d7", "level": "note", "message": {"text": "Very large file: src/components/ProgramSessionManager.tsx (1191 lines)"}, "properties": {"repobilityId": "cb0783a31ade7f73", "scanner": "scanner-primary", "fingerprint": "6ce5e237c632c7d7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9006263f1108ca00", "level": "note", "message": {"text": "Very large file: src/components/ProposalViewerV2.tsx (7155 lines)"}, "properties": {"repobilityId": "cc281f7e9149f4f1", "scanner": "scanner-primary", "fingerprint": "9006263f1108ca00", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-68cb319008379d64", "level": "note", "message": {"text": "Very large file: src/components/BookACallLanding.tsx (2284 lines)"}, "properties": {"repobilityId": "cf9be368816255f2", "scanner": "scanner-primary", "fingerprint": "68cb319008379d64", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b16ec069ca87e840", "level": "note", "message": {"text": "Very large file: src/components/StandaloneProposalViewer.tsx (2997 lines)"}, "properties": {"repobilityId": "2c1607530ff8b2d0", "scanner": "scanner-primary", "fingerprint": "b16ec069ca87e840", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-65288af71a98ef5e", "level": "note", "message": {"text": "Very large file: src/components/SalesIntelligence.tsx (3370 lines)"}, "properties": {"repobilityId": "97b5c80161297068", "scanner": "scanner-primary", "fingerprint": "65288af71a98ef5e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a85ea5b54981519a", "level": "note", "message": {"text": "Very large file: src/components/BrokerPlan.tsx (1302 lines)"}, "properties": {"repobilityId": "6ac848839be583f6", "scanner": "scanner-primary", "fingerprint": "a85ea5b54981519a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-89d8a061af12cb8a", "level": "note", "message": {"text": "Very large file: src/components/WorkhumanTVLoop.tsx (1739 lines)"}, "properties": {"repobilityId": "f4f5b919ee15247b", "scanner": "scanner-primary", "fingerprint": "89d8a061af12cb8a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d2f24db061e77750", "level": "note", "message": {"text": "Very large file: src/components/Home.tsx (2186 lines)"}, "properties": {"repobilityId": "0bc042fba274d8c5", "scanner": "scanner-primary", "fingerprint": "d2f24db061e77750", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9812ac64abb116f0", "level": "note", "message": {"text": "Very large file: src/components/WorkhumanBooth.tsx (1643 lines)"}, "properties": {"repobilityId": "350fba4c3ef1abf2", "scanner": "scanner-primary", "fingerprint": "9812ac64abb116f0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-84e8c6aac1ceaa73", "level": "note", "message": {"text": "Very large file: src/components/WorkhumanBoothDesigns.tsx (1176 lines)"}, "properties": {"repobilityId": "50305fa9d69e8f14", "scanner": "scanner-primary", "fingerprint": "84e8c6aac1ceaa73", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8e99cb5c39e10b44", "level": "note", "message": {"text": "Very large file: src/components/StandaloneProposalViewerV2.tsx (2652 lines)"}, "properties": {"repobilityId": "c3b010b15e9b330f", "scanner": "scanner-primary", "fingerprint": "8e99cb5c39e10b44", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-346a6e923585eff4", "level": "note", "message": {"text": "Very large file: src/components/ProposalViewer.tsx (4834 lines)"}, "properties": {"repobilityId": "1ff6ace8d207f4ee", "scanner": "scanner-primary", "fingerprint": "346a6e923585eff4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-79c680bb199ba2b8", "level": "note", "message": {"text": "Very large file: src/components/DraftKingsLVReport.tsx (1177 lines)"}, "properties": {"repobilityId": "25be67798a30f4b2", "scanner": "scanner-primary", "fingerprint": "79c680bb199ba2b8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-059def6dcf778ee9", "level": "note", "message": {"text": "Very large file: src/components/ClientProposalBuilder.tsx (1997 lines)"}, "properties": {"repobilityId": "11d037413ef81c6a", "scanner": "scanner-primary", "fingerprint": "059def6dcf778ee9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-97a8108a18ef1fb5", "level": "note", "message": {"text": "Very large file: src/components/Plan2026.tsx (3558 lines)"}, "properties": {"repobilityId": "e557e3daa09ab530", "scanner": "scanner-primary", "fingerprint": "97a8108a18ef1fb5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-dd7bfd65e2a75f3b", "level": "note", "message": {"text": "Very large file: src/components/WorkhumanLeads.tsx (1815 lines)"}, "properties": {"repobilityId": "630fcb8b280d84e7", "scanner": "scanner-primary", "fingerprint": "dd7bfd65e2a75f3b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-883b44431c3396a4", "level": "note", "message": {"text": "Very large file: src/components/SocialMediaProposal.tsx (2877 lines)"}, "properties": {"repobilityId": "47dd4df99bca562f", "scanner": "scanner-primary", "fingerprint": "883b44431c3396a4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3397770904d03efb", "level": "note", "message": {"text": "Very large file: src/components/GenericLandingPage.tsx (3543 lines)"}, "properties": {"repobilityId": "62da94766de2a462", "scanner": "scanner-primary", "fingerprint": "3397770904d03efb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "1cb57ead0369c15c", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-c7965ab54b66824e", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: Create Reusable Component/package.json"}, "properties": {"repobilityId": "7bccac1f546aba0f", "scanner": "scanner-primary", "fingerprint": "c7965ab54b66824e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Create Reusable Component/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "b7eda91fee892e00", "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": "f75f9a9dbaf7770a", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-9d79c4077342a7d0", "level": "warning", "message": {"text": "Runtime service client appears to use placeholder configuration"}, "properties": {"repobilityId": "9f31e347a9bfb4c9", "scanner": "scanner-primary", "fingerprint": "9d79c4077342a7d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "runtime-config", "service-client", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "9ef20944a5f2dfb5", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "warning", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "fb2dc3a247673fc6", "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": "9336321cf2031117", "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": "a8c253081a6fefe0", "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": "5392f4a5b77b39e1", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-a01b49e125e5661b", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/gmail-historical-sweep.mjs:145"}, "properties": {"repobilityId": "90e6a4858ba7ac49", "scanner": "scanner-primary", "fingerprint": "a01b49e125e5661b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3e4aa3810ad8f2b6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/gmail-historical-sweep.mjs:72"}, "properties": {"repobilityId": "1d579a067c0d4c1a", "scanner": "scanner-primary", "fingerprint": "3e4aa3810ad8f2b6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c42fc14670e0e77e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/resolve-entities.mjs:76"}, "properties": {"repobilityId": "6c2144683170199f", "scanner": "scanner-primary", "fingerprint": "c42fc14670e0e77e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4b683bf054b42fd1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/broker-gtm/send-starter-dms.mjs:14"}, "properties": {"repobilityId": "f31917cccf174223", "scanner": "scanner-primary", "fingerprint": "4b683bf054b42fd1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d8d72469d69c9533", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/broker-gtm/discover-broker-contacts.mjs:81"}, "properties": {"repobilityId": "bf4fbec200f87fcb", "scanner": "scanner-primary", "fingerprint": "d8d72469d69c9533", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e372842061c96919", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/debug/larcy-trace3.mjs:1"}, "properties": {"repobilityId": "5bd2d604aad02957", "scanner": "scanner-primary", "fingerprint": "e372842061c96919", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5d26a339ff035432", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/check-will-signature.mjs:19"}, "properties": {"repobilityId": "a7bd4db6b656cd39", "scanner": "scanner-primary", "fingerprint": "5d26a339ff035432", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-80b3968ae8d63f72", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/test-warm-draft-prod.mjs:13"}, "properties": {"repobilityId": "4ddd1832365e4293", "scanner": "scanner-primary", "fingerprint": "80b3968ae8d63f72", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fe72a6f725e06af2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/dm-reconnect-nudge.mjs:11"}, "properties": {"repobilityId": "a565c1a4baf5fcb8", "scanner": "scanner-primary", "fingerprint": "fe72a6f725e06af2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-dbb10b213874d101", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/check-reconnect-dms.mjs:10"}, "properties": {"repobilityId": "c6fd3acb2cab6951", "scanner": "scanner-primary", "fingerprint": "dbb10b213874d101", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-71436788d3717430", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/larcy-trace2.mjs:62"}, "properties": {"repobilityId": "803e86e4a9608e2e", "scanner": "scanner-primary", "fingerprint": "71436788d3717430", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9cbbebffc88745ed", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/find-jsmith-via-caren.mjs:28"}, "properties": {"repobilityId": "727f1fc14503ac97", "scanner": "scanner-primary", "fingerprint": "9cbbebffc88745ed", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-435aeab268c7046a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/check-beverly-recent.mjs:49"}, "properties": {"repobilityId": "962dbf04fb14af33", "scanner": "scanner-primary", "fingerprint": "435aeab268c7046a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e8286f2ee8add9d3", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/debug/heal-gmail-deep.mjs:1"}, "properties": {"repobilityId": "e965d706205406ed", "scanner": "scanner-primary", "fingerprint": "e8286f2ee8add9d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6bfe55cb4908de00", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/debug/backfill-outreach-sends-from-log.mjs:3"}, "properties": {"repobilityId": "5266c6364a8cb419", "scanner": "scanner-primary", "fingerprint": "6bfe55cb4908de00", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0fa765ba91203171", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/dm-courtney-reconnect.mjs:11"}, "properties": {"repobilityId": "eabda7363f692b68", "scanner": "scanner-primary", "fingerprint": "0fa765ba91203171", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c6870e29d033b2eb", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/debug/heal-gmail-crawl.mjs:1"}, "properties": {"repobilityId": "a422ddb3c90a2c79", "scanner": "scanner-primary", "fingerprint": "c6870e29d033b2eb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de4d343f22a0ff8c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/test-gmail-draft.mjs:23"}, "properties": {"repobilityId": "54ec4d3982f95eb0", "scanner": "scanner-primary", "fingerprint": "de4d343f22a0ff8c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e5da5414d61282f7", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/debug/verify-pmkmsw-suppressed.mjs:1"}, "properties": {"repobilityId": "f06bce1e2d65fdab", "scanner": "scanner-primary", "fingerprint": "e5da5414d61282f7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b19b25b9008e3a91", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/verify-pmkmsw-suppressed.mjs:53"}, "properties": {"repobilityId": "4695c18024088561", "scanner": "scanner-primary", "fingerprint": "b19b25b9008e3a91", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-06eb7dc3f79c4e4b", "level": "none", "message": {"text": "Commented-code block (8 lines) in scripts/debug/quarantine-corrupt-wh-rows.mjs:1"}, "properties": {"repobilityId": "cd67dbdf4729c3e3", "scanner": "scanner-primary", "fingerprint": "06eb7dc3f79c4e4b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f8c3916b5ecce6cd", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/dm-reps-reconnect.mjs:16"}, "properties": {"repobilityId": "448a3d356823aa06", "scanner": "scanner-primary", "fingerprint": "f8c3916b5ecce6cd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0d019661785d1fca", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/debug/populate-slack-user-ids.mjs:22"}, "properties": {"repobilityId": "a77ab871d6f2a5ad", "scanner": "scanner-primary", "fingerprint": "0d019661785d1fca", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6289e1800cf77958", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/debug/suppress-pmkmsw.mjs:1"}, "properties": {"repobilityId": "a2aa4a941865b59f", "scanner": "scanner-primary", "fingerprint": "6289e1800cf77958", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2aed7e5c90253064", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/send-email/index.ts:64"}, "properties": {"repobilityId": "1c8a0c1646e25d17", "scanner": "scanner-primary", "fingerprint": "2aed7e5c90253064", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-942f313039de333f", "level": "none", "message": {"text": "Commented-code block (5 lines) in supabase/functions/smartlead-webhook/index.ts:4"}, "properties": {"repobilityId": "326b60bea9fb1d24", "scanner": "scanner-primary", "fingerprint": "942f313039de333f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a11d248ea61e4645", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/smartlead-webhook/index.ts:153"}, "properties": {"repobilityId": "675ae0f3d04fb6b5", "scanner": "scanner-primary", "fingerprint": "a11d248ea61e4645", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ce4f754dfca031f5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/proposal-approval/index.ts:83"}, "properties": {"repobilityId": "a425e1cbf1ef9e69", "scanner": "scanner-primary", "fingerprint": "ce4f754dfca031f5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-85bb460e1b0c9de8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/send-sms/index.ts:84"}, "properties": {"repobilityId": "59688d764aa5f768", "scanner": "scanner-primary", "fingerprint": "85bb460e1b0c9de8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1121415956f7ac63", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/proposal-share/index.ts:148"}, "properties": {"repobilityId": "4d1a438b99a648a7", "scanner": "scanner-primary", "fingerprint": "1121415956f7ac63", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-61bbece2d952299c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/lead-notifications/index.ts:120"}, "properties": {"repobilityId": "162d1d912c6904a2", "scanner": "scanner-primary", "fingerprint": "61bbece2d952299c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-afa2691fb086d8ec", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/supabase/functions/proposal-approval/index.ts:83"}, "properties": {"repobilityId": "d1baab103c63116c", "scanner": "scanner-primary", "fingerprint": "afa2691fb086d8ec", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3d90f531188bbb87", "level": "none", "message": {"text": "Commented-code block (11 lines) in netlify/functions/draft-outreach.js:254"}, "properties": {"repobilityId": "1103d879125cff60", "scanner": "scanner-primary", "fingerprint": "3d90f531188bbb87", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b348563bf27c572c", "level": "none", "message": {"text": "Commented-code block (9 lines) in netlify/functions/gmail-pubsub-reply.js:73"}, "properties": {"repobilityId": "e110f7439965a79d", "scanner": "scanner-primary", "fingerprint": "b348563bf27c572c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0835367a2990fcaa", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/slack-notification.js:78"}, "properties": {"repobilityId": "5f0c635c592d1b9b", "scanner": "scanner-primary", "fingerprint": "0835367a2990fcaa", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c5dab10342ff9cbe", "level": "none", "message": {"text": "Commented-code block (6 lines) in netlify/functions/gmail-sent-crawl.js:56"}, "properties": {"repobilityId": "6ef466bd120ac3a3", "scanner": "scanner-primary", "fingerprint": "c5dab10342ff9cbe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-79e6730d3f1c8723", "level": "none", "message": {"text": "Commented-code block (5 lines) in netlify/functions/gmail-oauth-disconnect.js:54"}, "properties": {"repobilityId": "a0b0a67a8c9a6758", "scanner": "scanner-primary", "fingerprint": "79e6730d3f1c8723", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-78e2a66dd7a2ad78", "level": "none", "message": {"text": "Commented-code block (5 lines) in netlify/functions/workhuman-booking.js:259"}, "properties": {"repobilityId": "4ec68cfa8e7ddbaf", "scanner": "scanner-primary", "fingerprint": "78e2a66dd7a2ad78", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-89ace61babec814b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/workhuman-booking.js:105"}, "properties": {"repobilityId": "8ac002311d7ac453", "scanner": "scanner-primary", "fingerprint": "89ace61babec814b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-56f384e3528ed673", "level": "none", "message": {"text": "Commented-code block (5 lines) in netlify/functions/followups.js:53"}, "properties": {"repobilityId": "5d39b73ffd05edf7", "scanner": "scanner-primary", "fingerprint": "56f384e3528ed673", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-71bd08157307dcd7", "level": "none", "message": {"text": "Commented-code block (5 lines) in netlify/functions/proposal-event-notification.js:46"}, "properties": {"repobilityId": "cc8244612518e492", "scanner": "scanner-primary", "fingerprint": "71bd08157307dcd7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8a7977edb9ea3ed8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/proposal-event-notification.js:287"}, "properties": {"repobilityId": "56b67d7f5af1e924", "scanner": "scanner-primary", "fingerprint": "8a7977edb9ea3ed8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8d9a40556e01d1fb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/slack-assistant.js:64"}, "properties": {"repobilityId": "547db518fb6c7305", "scanner": "scanner-primary", "fingerprint": "8d9a40556e01d1fb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3c413b359c38ef2c", "level": "none", "message": {"text": "Commented-code block (5 lines) in netlify/functions/slack-draft-async-background.js:275"}, "properties": {"repobilityId": "f77df2b4fc519bbd", "scanner": "scanner-primary", "fingerprint": "3c413b359c38ef2c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3332ec294cd0d77e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/slack-draft-async-background.js:205"}, "properties": {"repobilityId": "f42773a65a4988be", "scanner": "scanner-primary", "fingerprint": "3332ec294cd0d77e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a2d41e2a64ed121e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/workhuman-booth-send.js:113"}, "properties": {"repobilityId": "dcd39be85477b1c2", "scanner": "scanner-primary", "fingerprint": "a2d41e2a64ed121e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d9744472ecfe0266", "level": "none", "message": {"text": "Commented-code block (6 lines) in netlify/functions/send-as-rep.js:97"}, "properties": {"repobilityId": "8f163343513d9fc6", "scanner": "scanner-primary", "fingerprint": "d9744472ecfe0266", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba5851de63a990a0", "level": "none", "message": {"text": "Commented-code block (5 lines) in netlify/functions/slack-rep-digest.js:47"}, "properties": {"repobilityId": "06113a3b8e6ad270", "scanner": "scanner-primary", "fingerprint": "ba5851de63a990a0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ac97a1db4f40a0f0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/slack-rep-digest.js:80"}, "properties": {"repobilityId": "de046a52055871c2", "scanner": "scanner-primary", "fingerprint": "ac97a1db4f40a0f0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-eabec949079564b0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/create-event.js:61"}, "properties": {"repobilityId": "acaee92be9c63d01", "scanner": "scanner-primary", "fingerprint": "eabec949079564b0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-599894140e4a31d4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/send-pro-agreement.js:138"}, "properties": {"repobilityId": "89564338a1ecf20a", "scanner": "scanner-primary", "fingerprint": "599894140e4a31d4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5a4402af84a28d94", "level": "none", "message": {"text": "Commented-code block (7 lines) in netlify/functions/slack-interactivity.js:123"}, "properties": {"repobilityId": "03b57f1a1c26950a", "scanner": "scanner-primary", "fingerprint": "5a4402af84a28d94", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-22a274525b51dfc1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/slack-interactivity.js:551"}, "properties": {"repobilityId": "f0a9182f6b1f6aeb", "scanner": "scanner-primary", "fingerprint": "22a274525b51dfc1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8247698e7ea89db2", "level": "none", "message": {"text": "Commented-code block (6 lines) in netlify/functions/lib/slack-tools.js:79"}, "properties": {"repobilityId": "3502f83161665d6e", "scanner": "scanner-primary", "fingerprint": "8247698e7ea89db2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-08cdc588ce4c4295", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/lib/slack-tools.js:180"}, "properties": {"repobilityId": "a051cb594f2f348d", "scanner": "scanner-primary", "fingerprint": "08cdc588ce4c4295", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2410a23d98c7ea15", "level": "none", "message": {"text": "Commented-code block (5 lines) in netlify/functions/lib/slack-blocks.js:63"}, "properties": {"repobilityId": "443aeaff45a0bd1f", "scanner": "scanner-primary", "fingerprint": "2410a23d98c7ea15", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-768fd221fa58753d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/lib/slack-event-ping.js:32"}, "properties": {"repobilityId": "8470d0f6adcad1f1", "scanner": "scanner-primary", "fingerprint": "768fd221fa58753d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1c49ca011c1dbf12", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/lib/logo-fetcher.js:228"}, "properties": {"repobilityId": "105b6fd598a8a181", "scanner": "scanner-primary", "fingerprint": "1c49ca011c1dbf12", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3cd0e2242b820527", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/lib/slack-notifier.js:169"}, "properties": {"repobilityId": "7bd8e7a7f116da4a", "scanner": "scanner-primary", "fingerprint": "3cd0e2242b820527", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0c307aa0460c7579", "level": "none", "message": {"text": "Commented-code block (6 lines) in netlify/functions/lib/lead-picture.js:182"}, "properties": {"repobilityId": "3cb4c37cf56256cb", "scanner": "scanner-primary", "fingerprint": "0c307aa0460c7579", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e8d9ea333ec86c3a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/lib/gmail.js:50"}, "properties": {"repobilityId": "69db9f77ab1be455", "scanner": "scanner-primary", "fingerprint": "e8d9ea333ec86c3a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cff8be7751afe6e9", "level": "none", "message": {"text": "Commented-code block (6 lines) in netlify/functions/lib/proposal-editor.js:305"}, "properties": {"repobilityId": "bc592752cd656d16", "scanner": "scanner-primary", "fingerprint": "cff8be7751afe6e9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a1f37f2a0fcc849e", "level": "none", "message": {"text": "Commented-code block (5 lines) in public/workhuman-tv-v4/slides_1.jsx:505"}, "properties": {"repobilityId": "7149d8b0e589272c", "scanner": "scanner-primary", "fingerprint": "a1f37f2a0fcc849e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-92ef8e85efd0b682", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/workhuman-tv-v4/us_map.js:71"}, "properties": {"repobilityId": "b2fdf22b9cc76ad5", "scanner": "scanner-primary", "fingerprint": "92ef8e85efd0b682", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b071a2a6492d51ba", "level": "none", "message": {"text": "Commented-code block (7 lines) in public/workhuman-tv-v4/primitives.jsx:183"}, "properties": {"repobilityId": "c5a3392574e7009c", "scanner": "scanner-primary", "fingerprint": "b071a2a6492d51ba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-39b91031e7f334d2", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/types/proposal.ts:6"}, "properties": {"repobilityId": "e4349b9f42959746", "scanner": "scanner-primary", "fingerprint": "39b91031e7f334d2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8d2db998f8808af2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/api/webhooks/leadNotifications.ts:114"}, "properties": {"repobilityId": "0bf3433e35c02516", "scanner": "scanner-primary", "fingerprint": "8d2db998f8808af2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e5406b9093138be6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/utils/yogaCatalog.ts:1"}, "properties": {"repobilityId": "addc9dc3d57ea0e4", "scanner": "scanner-primary", "fingerprint": "e5406b9093138be6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e2dc381f37edec58", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/utils/soundBathCatalog.ts:1"}, "properties": {"repobilityId": "5434607643a6df09", "scanner": "scanner-primary", "fingerprint": "e2dc381f37edec58", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c48a9f55e45d5bd6", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/utils/mindfulnessCatalog.ts:1"}, "properties": {"repobilityId": "4c185628dbb08a08", "scanner": "scanner-primary", "fingerprint": "c48a9f55e45d5bd6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dfa1a7a251bbc8bc", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/utils/workhumanOutreachTemplates.ts:261"}, "properties": {"repobilityId": "910efc294ad9e981", "scanner": "scanner-primary", "fingerprint": "dfa1a7a251bbc8bc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-251c07f7253ba51e", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/utils/proposalGenerator.ts:507"}, "properties": {"repobilityId": "f0d9be73fa33b9a7", "scanner": "scanner-primary", "fingerprint": "251c07f7253ba51e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-78dada706985a8bc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/MindfulnessProposalViewer.tsx:1038"}, "properties": {"repobilityId": "893be98b5ad6f9d5", "scanner": "scanner-primary", "fingerprint": "78dada706985a8bc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-65548773fe98df98", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/WorkhumanOutreachQueue.tsx:37"}, "properties": {"repobilityId": "ddd0f62fd03258ff", "scanner": "scanner-primary", "fingerprint": "65548773fe98df98", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e3b38159e7ebbfa0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/StripeInvoiceButton.tsx:225"}, "properties": {"repobilityId": "b5640132f637b6c0", "scanner": "scanner-primary", "fingerprint": "e3b38159e7ebbfa0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c3787697d0c6bb08", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/StandaloneMindfulnessProposalViewer.tsx:158"}, "properties": {"repobilityId": "3f7364fbd8c317fd", "scanner": "scanner-primary", "fingerprint": "c3787697d0c6bb08", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f45862ca3d950a15", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/ProposalSurveyForm.tsx:352"}, "properties": {"repobilityId": "ad1771c7e87e516c", "scanner": "scanner-primary", "fingerprint": "f45862ca3d950a15", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8a419c60b4c47a32", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/PartnershipModelsSection.tsx:5"}, "properties": {"repobilityId": "f3ee5606768a3437", "scanner": "scanner-primary", "fingerprint": "8a419c60b4c47a32", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-340db2c1140c227a", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/ProposalGalleryAdmin.tsx:29"}, "properties": {"repobilityId": "1e8e16be92da09ef", "scanner": "scanner-primary", "fingerprint": "340db2c1140c227a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e42346e8abe3c11d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/ProposalViewerV2.tsx:92"}, "properties": {"repobilityId": "c94607f83169081d", "scanner": "scanner-primary", "fingerprint": "e42346e8abe3c11d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6edea8479344735e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/ProposalViewerV2.tsx:1650"}, "properties": {"repobilityId": "fdb70aebee9fdfb2", "scanner": "scanner-primary", "fingerprint": "6edea8479344735e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-59f8dde73cc7cbe3", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/BookACallLanding.tsx:25"}, "properties": {"repobilityId": "cf5397756d8c01e4", "scanner": "scanner-primary", "fingerprint": "59f8dde73cc7cbe3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf463158f34f3af4", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/WorkhumanPersonalNoteQueue.tsx:42"}, "properties": {"repobilityId": "606b0255e5bf1a87", "scanner": "scanner-primary", "fingerprint": "bf463158f34f3af4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-478e172c5fc330c6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/ProposalTypeRouter.tsx:25"}, "properties": {"repobilityId": "f8d03ff2c7969e8c", "scanner": "scanner-primary", "fingerprint": "478e172c5fc330c6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d308efd16c308b91", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/SalesIntelligence.tsx:397"}, "properties": {"repobilityId": "4a6e7aad392ed12d", "scanner": "scanner-primary", "fingerprint": "d308efd16c308b91", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba5397e5c6e35a0e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/SalesIntelligence.tsx:318"}, "properties": {"repobilityId": "acc7bd6f05b4552e", "scanner": "scanner-primary", "fingerprint": "ba5397e5c6e35a0e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-905b5da4f50c7a4e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/UnifiedProposalSections.tsx:4"}, "properties": {"repobilityId": "c644b7fd4a843cac", "scanner": "scanner-primary", "fingerprint": "905b5da4f50c7a4e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-19798e67202bb2ff", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/UpcomingEvents.tsx:180"}, "properties": {"repobilityId": "409fce86c9139407", "scanner": "scanner-primary", "fingerprint": "19798e67202bb2ff", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cbd9fdef75470b4f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/PhotographerEventManager.tsx:289"}, "properties": {"repobilityId": "9066f16a50fe1871", "scanner": "scanner-primary", "fingerprint": "cbd9fdef75470b4f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-05e3c755cba4a45b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/InvoiceManager.tsx:191"}, "properties": {"repobilityId": "25ff187c2ff40299", "scanner": "scanner-primary", "fingerprint": "05e3c755cba4a45b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-93c84eb96280dbc1", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/SalesCompModel.tsx:96"}, "properties": {"repobilityId": "3076b90d0c34fdd1", "scanner": "scanner-primary", "fingerprint": "93c84eb96280dbc1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c3b007b15d560676", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/WorkhumanTVLoop.tsx:3"}, "properties": {"repobilityId": "8fe99e7eca1716af", "scanner": "scanner-primary", "fingerprint": "c3b007b15d560676", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0488a35f8145deca", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/WorkhumanBooth.tsx:479"}, "properties": {"repobilityId": "a716a19a0c3d7695", "scanner": "scanner-primary", "fingerprint": "0488a35f8145deca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-69a3dcb4ba6949b2", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/WorkhumanBoothDesigns.tsx:3"}, "properties": {"repobilityId": "a4e3c424b8e1bb04", "scanner": "scanner-primary", "fingerprint": "69a3dcb4ba6949b2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fbb80159758e4192", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/StandaloneProposalViewerV2.tsx:50"}, "properties": {"repobilityId": "f0a2bf4e78d47c6c", "scanner": "scanner-primary", "fingerprint": "fbb80159758e4192", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7fcb9e0949f76ac", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/EmployeeManager.tsx:235"}, "properties": {"repobilityId": "45a3dab78fa821e1", "scanner": "scanner-primary", "fingerprint": "a7fcb9e0949f76ac", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fc18e3c9e63e2de3", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/ProposalViewer.tsx:1218"}, "properties": {"repobilityId": "93e9fdb388396d3e", "scanner": "scanner-primary", "fingerprint": "fc18e3c9e63e2de3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-feaf6ae9575104cc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/ProposalViewer.tsx:2093"}, "properties": {"repobilityId": "b93432549d116d7d", "scanner": "scanner-primary", "fingerprint": "feaf6ae9575104cc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0200d4b8d7179d52", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/WorkhumanLeads.tsx:137"}, "properties": {"repobilityId": "8e11c13c43e47ff4", "scanner": "scanner-primary", "fingerprint": "0200d4b8d7179d52", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-688e259cdcec735b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/ProposalOptionsModal.tsx:391"}, "properties": {"repobilityId": "9e643947c4c00a62", "scanner": "scanner-primary", "fingerprint": "688e259cdcec735b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ea929933c6c6008a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/PersonalNoteFollowUpPanel.tsx:105"}, "properties": {"repobilityId": "f3b58608d9d6e553", "scanner": "scanner-primary", "fingerprint": "ea929933c6c6008a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3cc572b31ba9c3db", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/proposal/PricingOptionsSelector.tsx:184"}, "properties": {"repobilityId": "779f3e7a58d429a8", "scanner": "scanner-primary", "fingerprint": "3cc572b31ba9c3db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c06109a70a50657c", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/proposal/RequestChangesModal.tsx:5"}, "properties": {"repobilityId": "08f4a1e5dde269fa", "scanner": "scanner-primary", "fingerprint": "c06109a70a50657c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b8975e03bd842505", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/proposal/ServiceAgreementCard.tsx:6"}, "properties": {"repobilityId": "276c033470706f5f", "scanner": "scanner-primary", "fingerprint": "b8975e03bd842505", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e57fcc1a4479f618", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/proposal/OptionsTabs.tsx:7"}, "properties": {"repobilityId": "226bf7dfecbe467e", "scanner": "scanner-primary", "fingerprint": "e57fcc1a4479f618", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a91ea676e86b354f", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/proposal/ServiceCard.tsx:38"}, "properties": {"repobilityId": "5ce6a1ba47cd2916", "scanner": "scanner-primary", "fingerprint": "a91ea676e86b354f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dd444148587cd055", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/proposal/data.ts:165"}, "properties": {"repobilityId": "3034b49fe7c60011", "scanner": "scanner-primary", "fingerprint": "dd444148587cd055", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-50f15a14859390bf", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/proposal/useProposalGallery.ts:4"}, "properties": {"repobilityId": "65989f70c2e619bb", "scanner": "scanner-primary", "fingerprint": "50f15a14859390bf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7050f0c423f20a97", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/proposal/useServiceSelections.ts:48"}, "properties": {"repobilityId": "15c3240e87593dbc", "scanner": "scanner-primary", "fingerprint": "7050f0c423f20a97", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-085124c96a7464ce", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/proposal/shared/primitives.tsx:12"}, "properties": {"repobilityId": "7c5a2a9c708699fb", "scanner": "scanner-primary", "fingerprint": "085124c96a7464ce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5999507bf828eac5", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/proposal/shared/useIsMobile.ts:8"}, "properties": {"repobilityId": "692f39ddfdb109c5", "scanner": "scanner-primary", "fingerprint": "5999507bf828eac5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-02f5d0b3ffb5e39a", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/components/proposal/sections/WhyShortcutSection.tsx:11"}, "properties": {"repobilityId": "a135f46b436b2aef", "scanner": "scanner-primary", "fingerprint": "02f5d0b3ffb5e39a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4e075a8147b48c05", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/proposal/sections/serviceContent.ts:53"}, "properties": {"repobilityId": "02dd87468eea60a1", "scanner": "scanner-primary", "fingerprint": "4e075a8147b48c05", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1c7c5e5d868f3f9e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/proposal/sidebar/GalleryCard.tsx:8"}, "properties": {"repobilityId": "e38bc310c6ab2616", "scanner": "scanner-primary", "fingerprint": "1c7c5e5d868f3f9e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6769ffa1d3aa91e2", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/components/proposal/sidebar/SignupLinkCard.tsx:5"}, "properties": {"repobilityId": "5c678052af1da950", "scanner": "scanner-primary", "fingerprint": "6769ffa1d3aa91e2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-11ae8fda381000eb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/contexts/ProAgreementContext.tsx:152"}, "properties": {"repobilityId": "4092c3c08579b572", "scanner": "scanner-primary", "fingerprint": "11ae8fda381000eb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6cf2a21c2cbb7aff", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/services/generateProposalApi.ts:176"}, "properties": {"repobilityId": "57680edc67d30904", "scanner": "scanner-primary", "fingerprint": "6cf2a21c2cbb7aff", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-31a7f4e25b749aac", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/services/NotificationService.ts:187"}, "properties": {"repobilityId": "6f5d63b47065ba10", "scanner": "scanner-primary", "fingerprint": "31a7f4e25b749aac", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0aae169a7a72b928", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/services/CalendarService.ts:122"}, "properties": {"repobilityId": "08fd42eae680035f", "scanner": "scanner-primary", "fingerprint": "0aae169a7a72b928", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1b862f23415c70c1", "level": "warning", "message": {"text": "Frontend route `/proposal/:id` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "1e0b8444b5c07c77", "scanner": "scanner-primary", "fingerprint": "1b862f23415c70c1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-33b8bdeb15f0a585", "level": "warning", "message": {"text": "Frontend route `/p/:slug` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "49a6be41a6aeca02", "scanner": "scanner-primary", "fingerprint": "33b8bdeb15f0a585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-f7edb64804a55883", "level": "warning", "message": {"text": "Frontend route `/r/:slug` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "7b1a99eb41fc634c", "scanner": "scanner-primary", "fingerprint": "f7edb64804a55883", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-8198dc67b4ad9c85", "level": "warning", "message": {"text": "Frontend route `/shared/:id` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "3a5f62af218d241e", "scanner": "scanner-primary", "fingerprint": "8198dc67b4ad9c85", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-13a573e08b707d7c", "level": "warning", "message": {"text": "Frontend route `/gallery/:token` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "c63aa1d501e6511e", "scanner": "scanner-primary", "fingerprint": "13a573e08b707d7c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-ab3c0ba83a42b976", "level": "warning", "message": {"text": "Frontend route `/manager/:token` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "90ce892ff5905e78", "scanner": "scanner-primary", "fingerprint": "ab3c0ba83a42b976", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-9529ed0fba401cca", "level": "warning", "message": {"text": "Frontend route `/photographer/:token` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "1911bc4ad25dc5cd", "scanner": "scanner-primary", "fingerprint": "9529ed0fba401cca", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-5540c6f3c95b039c", "level": "warning", "message": {"text": "Frontend route `/photographer/:token/event/:eventId` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "31bf6cfd2c1b7ec2", "scanner": "scanner-primary", "fingerprint": "5540c6f3c95b039c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-f4de0c64836c890c", "level": "warning", "message": {"text": "Frontend route `/holiday-proposal` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "d66fd46b5cb67e6e", "scanner": "scanner-primary", "fingerprint": "f4de0c64836c890c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-5f463133ca011608", "level": "warning", "message": {"text": "Frontend route `/holiday-generic` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "cc59fda432a53cd1", "scanner": "scanner-primary", "fingerprint": "5f463133ca011608", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-ef96770f0b45bb9c", "level": "warning", "message": {"text": "Frontend route `/holiday2025` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "9ee93a209faf312e", "scanner": "scanner-primary", "fingerprint": "ef96770f0b45bb9c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-56782f210aa91654", "level": "warning", "message": {"text": "Frontend route `/holiday-page/:id` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "c69a80277329c12c", "scanner": "scanner-primary", "fingerprint": "56782f210aa91654", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-89a3d1bf02199de4", "level": "warning", "message": {"text": "Frontend route `/social-media/linkedin` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "93c718249497146b", "scanner": "scanner-primary", "fingerprint": "89a3d1bf02199de4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-49b335e058eb8657", "level": "warning", "message": {"text": "Frontend route `/social-media/meta` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "607ddd3ab79d26a4", "scanner": "scanner-primary", "fingerprint": "49b335e058eb8657", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-efad513afbcc2567", "level": "warning", "message": {"text": "Frontend route `/social-media-pages/linkedin` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "1fe8a79694c1ca63", "scanner": "scanner-primary", "fingerprint": "efad513afbcc2567", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-ed045d89f883dbde", "level": "warning", "message": {"text": "Frontend route `/social-media-pages/meta` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "651913010388802a", "scanner": "scanner-primary", "fingerprint": "ed045d89f883dbde", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-6b5c68967d4ca82a", "level": "warning", "message": {"text": "Frontend route `/workhuman-leads/outreach` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "10ebf07bcad46d83", "scanner": "scanner-primary", "fingerprint": "6b5c68967d4ca82a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-6bc6105aa5ece496", "level": "warning", "message": {"text": "Frontend route `/book-a-call` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "991d7858fda23c23", "scanner": "scanner-primary", "fingerprint": "6bc6105aa5ece496", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-53e1e288f21e5f49", "level": "warning", "message": {"text": "Frontend route `/book-a-call/:id` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "4697f4359266dff1", "scanner": "scanner-primary", "fingerprint": "53e1e288f21e5f49", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-b7609ae3865c6987", "level": "warning", "message": {"text": "Frontend route `/info` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "71dadd59bb5a92b7", "scanner": "scanner-primary", "fingerprint": "b7609ae3865c6987", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-f6fe61af0ffd96e5", "level": "warning", "message": {"text": "Frontend route `/info/:id` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "d83ef2de1f6a53a3", "scanner": "scanner-primary", "fingerprint": "f6fe61af0ffd96e5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-0a52bb945c5682e3", "level": "warning", "message": {"text": "Frontend route `/workhuman/recharge` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "dfe4c3f25369aa0b", "scanner": "scanner-primary", "fingerprint": "0a52bb945c5682e3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-0650ce01918766ad", "level": "warning", "message": {"text": "Frontend route `/workhuman/recharge/:id` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "b43f5bc193921194", "scanner": "scanner-primary", "fingerprint": "0650ce01918766ad", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-26a67e157675bbd3", "level": "warning", "message": {"text": "Frontend route `/sign/:slug` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "3abc89fbe03dbd13", "scanner": "scanner-primary", "fingerprint": "26a67e157675bbd3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-ec558121dba79e67", "level": "warning", "message": {"text": "Frontend route `/qr-code-sign/:id` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "3b7a29bcc80b0d24", "scanner": "scanner-primary", "fingerprint": "ec558121dba79e67", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-35231f95c7692d96", "level": "warning", "message": {"text": "Frontend route `/survey/:id` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "f1933b4a7f4eff8d", "scanner": "scanner-primary", "fingerprint": "35231f95c7692d96", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-88232160037ca7b8", "level": "warning", "message": {"text": "Frontend route `/survey-results/:token` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "aa28133b32039f57", "scanner": "scanner-primary", "fingerprint": "88232160037ca7b8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-bd7f5d9dc58984e7", "level": "warning", "message": {"text": "Frontend route `/brochures/:name` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "3af05013cea23eaa", "scanner": "scanner-primary", "fingerprint": "bd7f5d9dc58984e7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-a5f412d8295bf8c3", "level": "warning", "message": {"text": "Frontend route `/corporatepartnerships` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "e3c354f4e626a1ba", "scanner": "scanner-primary", "fingerprint": "a5f412d8295bf8c3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-35720e416af2b0ab", "level": "warning", "message": {"text": "Frontend route `/195-nassau` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "25a9a78ab4afca82", "scanner": "scanner-primary", "fingerprint": "35720e416af2b0ab", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-59db07ff1da4518a", "level": "warning", "message": {"text": "Frontend route `/lower-pyne` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "43905e2b11c1fb3b", "scanner": "scanner-primary", "fingerprint": "59db07ff1da4518a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-af1eb2af094afc52", "level": "warning", "message": {"text": "Frontend route `/draftkings` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "584e4353f1ec2648", "scanner": "scanner-primary", "fingerprint": "af1eb2af094afc52", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-c955dc1297e0eea2", "level": "warning", "message": {"text": "Frontend route `/draftkings-report` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "6d63f27be1da8562", "scanner": "scanner-primary", "fingerprint": "c955dc1297e0eea2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-d2b3a23ff3a96b15", "level": "warning", "message": {"text": "Frontend route `/draftkings-lv` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "e96fd76c0c5ef405", "scanner": "scanner-primary", "fingerprint": "d2b3a23ff3a96b15", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-5287ee58e68172d0", "level": "warning", "message": {"text": "Frontend route `/draftkings/lv` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "6ab066d543852f89", "scanner": "scanner-primary", "fingerprint": "5287ee58e68172d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-5779eef33b781bb9", "level": "warning", "message": {"text": "Frontend route `/redesign-preview` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "460468cf589e73d7", "scanner": "scanner-primary", "fingerprint": "5779eef33b781bb9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-815a482d3dff03d8", "level": "warning", "message": {"text": "Frontend route `/generic-landing-page/:id` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "ec9e6a0d5d22c899", "scanner": "scanner-primary", "fingerprint": "815a482d3dff03d8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-07ec93d545c8dc3c", "level": "warning", "message": {"text": "Frontend route `/:client/:type/:slug` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "e0cb55424b63179e", "scanner": "scanner-primary", "fingerprint": "07ec93d545c8dc3c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}]}]}