{"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-a41e3a86317a9f0b", "name": "Possibly dead Python function: clear_cache", "shortDescription": {"text": "Possibly dead Python function: clear_cache"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3059eb03bb961984", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/FileUpload.tsx:220", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/FileUpload.tsx:220"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-986f4826a0c4b446", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/PageHeader.tsx:30", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/PageHeader.tsx:30"}, "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-4b1b34fd737a585f", "name": "Icon-only button without accessible name \u2014 frontend/apps/web/src/components/BidsDrawer.tsx:134", "shortDescription": {"text": "Icon-only button without accessible name \u2014 frontend/apps/web/src/components/BidsDrawer.tsx:134"}, "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-e9cf5ec0b5a2044c", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/AppShell.tsx:481", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/AppShell.tsx:481"}, "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-9dd1fe8edb91815e", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/MediaGallery.tsx:106", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/MediaGallery.tsx:106"}, "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-8f5f36c5dfe7d751", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/ProfileToggle.tsx:209", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/ProfileToggle.tsx:209"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bcff1c2cf14323a6", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/marketplace-browse/ListingCategory", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/marketplace-browse/ListingCategoryClusterCard.tsx:76"}, "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-481150f93a5ab52a", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/marketplace-browse/MarketplaceDisc", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/marketplace-browse/MarketplaceDiscoveryFeed.tsx:86"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6aa02459dba71300", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/AssetCard.tsx:52", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/AssetCard.tsx:52"}, "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-17ff51f6e4abc2e4", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/MailItemCard.tsx:135", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/MailItemCard.tsx:135"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9a9f2b0e40c5efcf", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/OfferCard.tsx:69", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/OfferCard.tsx:69"}, "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-8b3d1598819daed6", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/CounterBanner.tsx:29", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/CounterBanner.tsx:29"}, "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-a4a167b61b79d0a9", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/VaultFolderCard.tsx:28", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/VaultFolderCard.tsx:28"}, "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-eb7668119cc2b35e", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/MailItemDetail.tsx:198", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/MailItemDetail.tsx:198"}, "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-cde0d6c480af0450", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/apps/web/src/components/mailbox/MailItemDetail.tsx:10", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/apps/web/src/components/mailbox/MailItemDetail.tsx:10"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-260853c28db0136e", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/CounterCard.tsx:38", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/CounterCard.tsx:38"}, "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-2322472fd15f9610", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/BundleCard.tsx:65", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/BundleCard.tsx:65"}, "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-8aef7645a9c96ba7", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/StampCard.tsx:47", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/StampCard.tsx:47"}, "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-2f6128e936558530", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/CouponPipeline.tsx:220", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/CouponPipeline.tsx:220"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6db73b3e7b7a0552", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/BookletViewer.tsx:85", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/BookletViewer.tsx:85"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-87b73d39fda2f865", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/PackageUnboxing.tsx:207", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/PackageUnboxing.tsx:207"}, "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-fbac5d1b297b864b", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/MailboxNav.tsx:79", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/MailboxNav.tsx:79"}, "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-823ea5b42073c869", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/hub/HubTodayCard.tsx:128", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/hub/HubTodayCard.tsx:128"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-36ca82d3020254b6", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/hub/PersonalCard.tsx:30", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/hub/PersonalCard.tsx:30"}, "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-4ca613a0c0c31796", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/hub/ChangeLocationModal.tsx:44", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/hub/ChangeLocationModal.tsx:44"}, "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-4701c11966c13d1f", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/hub/PlaceBriefCard.tsx:212", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/hub/PlaceBriefCard.tsx:212"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7b3ca39a082c3a71", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/hub/HomeCard.tsx:35", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/hub/HomeCard.tsx:35"}, "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-8ebda8ca1c4ddbf4", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/hub/HubTopBar.tsx:48", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/hub/HubTopBar.tsx:48"}, "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-6e50e3beda2c8abb", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/hub/HubDiscovery.tsx:120", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/hub/HubDiscovery.tsx:120"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-325e54aecececcc5", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/hub/JumpBackIn.tsx:35", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/hub/JumpBackIn.tsx:35"}, "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-f38e882fcf52725a", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/hub/BusinessCard.tsx:21", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/hub/BusinessCard.tsx:21"}, "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-7522b36bb349c082", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/magic-task/UndoToast.tsx:103", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/magic-task/UndoToast.tsx:103"}, "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-83970f1f7a0ade4c", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/ai-assistant/AIAssistantView.tsx:9", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/ai-assistant/AIAssistantView.tsx:91"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0466b1c799daab68", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/place/VerifyPromptSheet.tsx:140", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/place/VerifyPromptSheet.tsx:140"}, "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-626129f946d1943d", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/place/AddressAutocomplete.tsx:186", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/place/AddressAutocomplete.tsx:186"}, "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-cc615b0cca177579", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/place/PlaceNavRail.tsx:64", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/place/PlaceNavRail.tsx:64"}, "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-e66141906b55bc25", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/place/detail/YourHomeDetail.tsx:44", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/place/detail/YourHomeDetail.tsx:44"}, "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-49b4a2289011f894", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/place/detail/CivicDetail.tsx:74", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/place/detail/CivicDetail.tsx:74"}, "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-5d5e0e644eb6ab89", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/place/detail/RiskDetail.tsx:159", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/place/detail/RiskDetail.tsx:159"}, "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-35c29197c7578cce", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/place/detail/IdentityDetail.tsx:98", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/place/detail/IdentityDetail.tsx:98"}, "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-c8de59c3d742aff3", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/place/neighbor-message/NeighborMes", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/place/neighbor-message/NeighborMessageComposeView.tsx:59"}, "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-63092ee67eef1a09", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/chat/ChatRoomView.tsx:366", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/chat/ChatRoomView.tsx:366"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dcba0bd83956c683", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/chat/ListingPickerModal.tsx:200", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/chat/ListingPickerModal.tsx:200"}, "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-70917781d418ee72", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/chat/MiniChatView.tsx:132", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/chat/MiniChatView.tsx:132"}, "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-30f20b8b2e0b16b8", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/chat/MiniConversationList.tsx:203", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/chat/MiniConversationList.tsx:203"}, "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-85e332f2c9c7bf51", "name": "Icon-only button without accessible name \u2014 frontend/apps/web/src/components/chat/QuickReactionPicker.tsx:23", "shortDescription": {"text": "Icon-only button without accessible name \u2014 frontend/apps/web/src/components/chat/QuickReactionPicker.tsx:23"}, "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-bb0c97b07a4ecb3a", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/chat/ConversationView.tsx:251", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/chat/ConversationView.tsx:251"}, "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-381fa95a39bffa9e", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/chat/ChatMessageBubble.tsx:233", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/chat/ChatMessageBubble.tsx:233"}, "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-fcd2956b03bb45d5", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/chat/GigPickerModal.tsx:157", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/chat/GigPickerModal.tsx:157"}, "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-d146307ea04e3a2e", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/wallet/WalletTransactionList.tsx:1", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/wallet/WalletTransactionList.tsx:156"}, "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-8f1d17e686915a72", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/feed/CommentThread.tsx:235", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/feed/CommentThread.tsx:235"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-100bb7da227bc605", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/feed/NearbyProvidersCard.tsx:57", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/feed/NearbyProvidersCard.tsx:57"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-afc65f61380ecb89", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/feed/PostDetailPanel.tsx:362", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/feed/PostDetailPanel.tsx:362"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b8776549d9c26930", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/feed/FeedHeader.tsx:47", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/feed/FeedHeader.tsx:47"}, "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-b4fecbb68e4e3027", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/feed/PostLocationPicker.tsx:229", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/feed/PostLocationPicker.tsx:229"}, "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-b9a7548d41c05590", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/feed/SportsEventModule.tsx:29", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/feed/SportsEventModule.tsx:29"}, "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-06a1cee975517b5b", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/feed/PostCard.tsx:174", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/feed/PostCard.tsx:174"}, "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-815c5bf21d1d4b2a", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/endorsement/EndorsementButton.tsx:", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/endorsement/EndorsementButton.tsx:204"}, "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-cce625fee233d9cf", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-detail-v2/OfferCardV2.tsx:47", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-detail-v2/OfferCardV2.tsx:47"}, "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-7920bcb6077c012e", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-detail-v2/ActiveTaskPanel.tsx:", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-detail-v2/ActiveTaskPanel.tsx:222"}, "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-6883c2fd18b21870", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/discover/DiscoverMap.tsx:573", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/discover/DiscoverMap.tsx:573"}, "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-6328f42bcc68a79b", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/discover/UnifiedResultCard.tsx:46", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/discover/UnifiedResultCard.tsx:46"}, "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-f4b9f40d1726bbac", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/discover/BusinessResultCard.tsx:81", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/discover/BusinessResultCard.tsx:81"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4db794b108019673", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/discover/InquiryChatDrawer.tsx:92", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/discover/InquiryChatDrawer.tsx:92"}, "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-46f6cd7f833aa9db", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/VendorsTab.tsx:260", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/VendorsTab.tsx:260"}, "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-bfc0bb509ae273ec", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/SeasonalChecklist.tsx:98", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/SeasonalChecklist.tsx:98"}, "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-efcd18abdd21868b", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/PackageTracker.tsx:80", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/PackageTracker.tsx:80"}, "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-9c2f059e2f8ddb30", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/HouseholdCalendar.tsx:250", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/HouseholdCalendar.tsx:250"}, "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-3a7fa3404e95da35", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/TodayCard.tsx:86", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/TodayCard.tsx:86"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2d4d006be131117e", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/ResidencyClaimsPanel.tsx:116", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/ResidencyClaimsPanel.tsx:116"}, "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-83ebd9dfe5963773", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/InviteMemberModal.tsx:274", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/InviteMemberModal.tsx:274"}, "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-c9ce655702b9e5da", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/HomeHeader.tsx:49", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/HomeHeader.tsx:49"}, "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-35664e6753572f77", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/DashboardCard.tsx:40", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/DashboardCard.tsx:40"}, "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-c4e125d876249a0d", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/HealthScoreRing.tsx:126", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/HealthScoreRing.tsx:126"}, "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-05594983e0d80dbb", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/settings/TransferAdminWizard.", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/settings/TransferAdminWizard.tsx:137"}, "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-cff938029a2cde11", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/TasksCard.tsx:81", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/TasksCard.tsx:81"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b868568498458ae1", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/DeliveriesCard.tsx:51", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/DeliveriesCard.tsx:51"}, "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-8cad52daf37c13c3", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/BillsBudgetCard.tsx:48", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/BillsBudgetCard.tsx:48"}, "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-1e62626afaed7e6f", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/HomeHelpCard.tsx:37", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/HomeHelpCard.tsx:37"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c86cdb34966b0c1f", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/EmergencyCard.tsx:40", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/EmergencyCard.tsx:40"}, "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-3d266eef7537d489", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/PetsCard.tsx:56", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/PetsCard.tsx:56"}, "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-785a28b7040cee84", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/PropertyDetailsCard.tsx", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/PropertyDetailsCard.tsx:43"}, "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-167097d0db6e1a54", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/DocsCard.tsx:50", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/DocsCard.tsx:50"}, "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-84442cc286cfdd33", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/CalendarCard.tsx:40", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/CalendarCard.tsx:40"}, "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-7dac72e0b3d8fd38", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/PollsCard.tsx:34", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/PollsCard.tsx:34"}, "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-9a06abfccb26eb54", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/MaintenanceCard.tsx:67", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/MaintenanceCard.tsx:67"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bfc554458415a8f5", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/AccessCard.tsx:43", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/AccessCard.tsx:43"}, "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-c963de940b6f7827", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/share/ShareCenter.tsx:262", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/share/ShareCenter.tsx:262"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5fa97a6092829c7c", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/share/ScopedShareModal.tsx:16", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/share/ScopedShareModal.tsx:168"}, "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-6eeb9c7e1bb3a6d4", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/share/CreateGuestPass.tsx:490", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/share/CreateGuestPass.tsx:490"}, "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-e3d8694df0d477d3", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/members/InviteFlow.tsx:279", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/members/InviteFlow.tsx:279"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6e33d690a2c0c16a", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-detail/QASection.tsx:134", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-detail/QASection.tsx:134"}, "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-2ae49c2fdaa964d3", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-detail/LeaveReviewModal.tsx:14", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-detail/LeaveReviewModal.tsx:144"}, "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-cdddb1a39d8931a7", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-detail/GigMediaGallery.tsx:208", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-detail/GigMediaGallery.tsx:208"}, "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-1292da3c8c026129", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/business/BusinessPublicProfile.tsx", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/business/BusinessPublicProfile.tsx:411"}, "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-5cce4e9ac9cb1abf", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/business/seats/SeatCard.tsx:59", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/business/seats/SeatCard.tsx:59"}, "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-13f187bc5956b4ed", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/business/tabs/InvoicesTab.tsx:161", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/business/tabs/InvoicesTab.tsx:161"}, "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-c7a18a1566660eb6", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/business/tabs/InboxTab.tsx:152", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/business/tabs/InboxTab.tsx:152"}, "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-0069acc3322375b5", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/business/tabs/ActivityTab.tsx:66", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/business/tabs/ActivityTab.tsx:66"}, "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-b7386d1fb5f6a10b", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/archetypes/detail/headers/ProfileH", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/archetypes/detail/headers/ProfileHeader.tsx:60"}, "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-8554f84c6b1365d8", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/archetypes/detail/headers/PostAuth", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/archetypes/detail/headers/PostAuthorHeader.tsx:61"}, "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-d58bbb9b2f44c150", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/archetypes/place/PlaceSwitcher.tsx", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/archetypes/place/PlaceSwitcher.tsx:82"}, "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-b4cc437116a9550e", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/archetypes/place/detail.tsx:51", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/archetypes/place/detail.tsx:51"}, "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-4d2defd898e80332", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/archetypes/primitives/StatusChipRo", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/archetypes/primitives/StatusChipRow.tsx:57"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-12153cbb24565ccc", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/archetypes/primitives/FileChevronR", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/archetypes/primitives/FileChevronRow.tsx:44"}, "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-e000b586603c6947", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/archetypes/primitives/AvatarKebabR", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/archetypes/primitives/AvatarKebabRow.tsx:73"}, "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-6206a63afe8c5e84", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/archetypes/primitives/ArchetypePag", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/archetypes/primitives/ArchetypePageHeader.tsx:73"}, "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-a2e31dc92ff45383", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/archetypes/mailboxDetail/MailboxIt", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/archetypes/mailboxDetail/MailboxItemDetailArchetype.tsx:173"}, "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-c01ab325865951d6", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/archetypes/wizard/WizardArchetype.", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/archetypes/wizard/WizardArchetype.tsx:129"}, "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-5afcb49bc7e364c4", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/audience/AudienceComposer.tsx:174", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/audience/AudienceComposer.tsx:174"}, "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-ee94fa6b86e482b0", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-v2-create/QuickModifiersV2.tsx", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-v2-create/QuickModifiersV2.tsx:367"}, "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-85f9552269c4efdd", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-v2-create/WhereChips.tsx:49", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-v2-create/WhereChips.tsx:49"}, "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-2b3b37a2f9ee5fce", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/user/UserIdentityLink.tsx:236", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/user/UserIdentityLink.tsx:236"}, "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-25cb0999b0fda747", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/support-trains/WhereSection.tsx:19", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/support-trains/WhereSection.tsx:192"}, "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-29e0b2e9b92d4ad3", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/landlord/NoticesTab.tsx:183", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/landlord/NoticesTab.tsx:183"}, "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-b55b7362df8cee3b", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/landlord/UnitsTab.tsx:375", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/landlord/UnitsTab.tsx:375"}, "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-f01e5b6e6cddb4a8", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/landlord/PropertiesDashboard.tsx:9", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/landlord/PropertiesDashboard.tsx:90"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-60283d0256e6e355", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/landlord/LeasesTab.tsx:171", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/landlord/LeasesTab.tsx:171"}, "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-2605a8e51d450244", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-browse/FeaturedTaskCard.tsx:67", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-browse/FeaturedTaskCard.tsx:67"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4b5ccf5a4fa0d788", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-browse/TaskRow.tsx:118", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-browse/TaskRow.tsx:118"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a5df87a6532b03d4", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-browse/CategoryRail.tsx:164", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-browse/CategoryRail.tsx:164"}, "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-e64ea83b21d4b21b", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-browse/MapRailInner.tsx:140", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-browse/MapRailInner.tsx:140"}, "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-49ef6a1da961511b", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-browse/SupportTrainRow.tsx:39", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-browse/SupportTrainRow.tsx:39"}, "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-883a148af3788e30", "name": "Stray `console.log` in TS/JS \u2014 frontend/apps/web/src/contexts/SocketContext.tsx:112", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/apps/web/src/contexts/SocketContext.tsx:112"}, "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-eadd42a061befcb5", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/persona/[personaHandle]/AudienceProfileCl", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/persona/[personaHandle]/AudienceProfileClient.tsx:340"}, "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-450dbb1df6bb7e02", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/gigs/GigsMap.tsx:394", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/gigs/GigsMap.tsx:394"}, "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-9265b7e639588d6d", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/gigs/saved/page.tsx:189", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/gigs/saved/page.tsx:189"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5556a1446d2423de", "name": "React Flow <MiniMap> without dark background \u2014 frontend/apps/web/src/app/(app)/app/gigs/[id]/page.tsx:674", "shortDescription": {"text": "React Flow <MiniMap> without dark background \u2014 frontend/apps/web/src/app/(app)/app/gigs/[id]/page.tsx:674"}, "fullDescription": {"text": "A bare <MiniMap> renders with the vendor's white default in dark themes. Wrap the canvas in a class that overrides `.react-flow__minimap` background, or pass an explicit `style`/`maskColor`/`bgColor`.\n\nWhy: P1 in CHECKLIST.md \u2014 vendor defaults bleed light through.\nRule id: fq.minimap.no-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-89636f51a0242dfc", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/gigs/[id]/page.tsx:585", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/gigs/[id]/page.tsx:585"}, "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-7606c5bc65017564", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/layout.tsx:161", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/layout.tsx:161"}, "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-8001625b27acf796", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/settings/themes/page.ts", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/settings/themes/page.tsx:140"}, "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-7ba876cb0a8080d0", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/settings/mail-day/page.", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/settings/mail-day/page.tsx:235"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-461c4afee948aa13", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/vault/page.tsx:353", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/vault/page.tsx:353"}, "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-7efcf911510ca754", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/vault/[folder_id]/page.", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/vault/[folder_id]/page.tsx:104"}, "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-17bd7437cf9458fc", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/_legacy_detail/MailDeta", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/_legacy_detail/MailDetailContent.tsx:34"}, "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-fa64fc3b8219ad1a", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/[drawer]/[item_id]/page", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/[drawer]/[item_id]/page.tsx:369"}, "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-c31ef8cdb7f70fb1", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/records/[asset_id]/page", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/records/[asset_id]/page.tsx:112"}, "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-8a330a5f9be99f16", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/counter/page.tsx:123", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/counter/page.tsx:123"}, "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-a3384bb73c069088", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/_components/MailListIte", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/_components/MailListItem.tsx:65"}, "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-055ee06664fd42be", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/map/page.tsx:260", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/map/page.tsx:260"}, "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-22b32ef28f7cd9de", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/hub/today/page.tsx:192", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/hub/today/page.tsx:192"}, "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-539f512eac2eabf2", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/marketplace/MarketplaceCarousel", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/marketplace/MarketplaceCarousel.tsx:109"}, "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-2d0a58345de4e910", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/marketplace/MarketplaceMap.tsx:", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/marketplace/MarketplaceMap.tsx:480"}, "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-7b92a5aa91fb96f3", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/marketplace/ListingCard.tsx:169", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/marketplace/ListingCard.tsx:169"}, "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-538f4089cc18fcac", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/marketplace/[id]/messages/page.", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/marketplace/[id]/messages/page.tsx:115"}, "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-419a3a72fbaa3868", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/marketplace/[id]/_components/Of", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/marketplace/[id]/_components/OfferModal.tsx:122"}, "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-c5ebfc1a3dd77d92", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/marketplace/[id]/_components/Tr", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/marketplace/[id]/_components/TradeModal.tsx:100"}, "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-df9f4cfd2f563671", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/my-gigs/page.tsx:197", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/my-gigs/page.tsx:197"}, "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-c2ae999649aae5de", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/persona/page.tsx:972", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/persona/page.tsx:972"}, "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-82455a1a70bc50eb", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/persona/broadcast/page.tsx:309", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/persona/broadcast/page.tsx:309"}, "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-ffd3c96877781f91", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/chat/page.tsx:375", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/chat/page.tsx:375"}, "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-7700383d300f770c", "name": "TODO/FIXME marker in shipping code \u2014 frontend/apps/web/src/app/(app)/app/chat/page.tsx:30", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/apps/web/src/app/(app)/app/chat/page.tsx:30"}, "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-5b4d970c859dfe65", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/chat/new/page.tsx:130", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/chat/new/page.tsx:130"}, "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-ad012d00353d5116", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/feed/page.tsx:262", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/feed/page.tsx:262"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f67f7aa0f82dc6d8", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/feed/FeedMap.tsx:84", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/feed/FeedMap.tsx:84"}, "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-f5b4cd4c6ac00c03", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/feed/post/[id]/page.tsx:704", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/feed/post/[id]/page.tsx:704"}, "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-2df4b9c27297f936", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/identity/page.tsx:383", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/identity/page.tsx:383"}, "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-b47efca8e5690a0c", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/admin/review-claims/page.tsx:26", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/admin/review-claims/page.tsx:267"}, "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-faa7677d08b65e45", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/businesses/page.tsx:91", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/businesses/page.tsx:91"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-952797add5fbefc7", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/businesses/[id]/dashboard/page.", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/businesses/[id]/dashboard/page.tsx:113"}, "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-00451fd77d4074cc", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/businesses/[id]/pages/[pageId]/", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/businesses/[id]/pages/[pageId]/edit/_components/BlockPalette.tsx:25"}, "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-4949e25cb263111e", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/gigs-v2/GigCardV2.tsx:63", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/gigs-v2/GigCardV2.tsx:63"}, "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-697ec99259de3ca4", "name": "React Flow <MiniMap> without dark background \u2014 frontend/apps/web/src/app/(app)/app/gigs-v2/[id]/page.tsx:677", "shortDescription": {"text": "React Flow <MiniMap> without dark background \u2014 frontend/apps/web/src/app/(app)/app/gigs-v2/[id]/page.tsx:677"}, "fullDescription": {"text": "A bare <MiniMap> renders with the vendor's white default in dark themes. Wrap the canvas in a class that overrides `.react-flow__minimap` background, or pass an explicit `style`/`maskColor`/`bgColor`.\n\nWhy: P1 in CHECKLIST.md \u2014 vendor defaults bleed light through.\nRule id: fq.minimap.no-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4a856f0bb59845bd", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/gigs-v2/[id]/page.tsx:159", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/gigs-v2/[id]/page.tsx:159"}, "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-468e2888a745344e", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/business/[id]/inbox/page.tsx:97", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/business/[id]/inbox/page.tsx:97"}, "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-edf0219cde1b1763", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/homes/find/page.tsx:88", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/homes/find/page.tsx:88"}, "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-f67d51de8d46c9f8", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/homes/[id]/owners/page.tsx:85", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/homes/[id]/owners/page.tsx:85"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d8ca3073a5710615", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/homes/[id]/owners/review-claim/", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/homes/[id]/owners/review-claim/page.tsx:301"}, "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-a4dff1133343717c", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/homes/[id]/claim-owner/evidence", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/homes/[id]/claim-owner/evidence/page.tsx:283"}, "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-93e78d8f26be21f2", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/homes/[id]/docs/page.tsx:91", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/homes/[id]/docs/page.tsx:91"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9f6868679d341741", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/homes/[id]/bills/page.tsx:224", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/homes/[id]/bills/page.tsx:224"}, "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-89cbc5f87d418a3d", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/homes/[id]/members/page.tsx:232", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/homes/[id]/members/page.tsx:232"}, "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-9129fd9bf7440fc6", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/audience/inbox/page.tsx:117", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/audience/inbox/page.tsx:117"}, "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-d5fb9672754330c4", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/saved-listings/page.tsx:174", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/saved-listings/page.tsx:174"}, "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-0546e2cbdc0722f4", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/offers/page.tsx:172", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/offers/page.tsx:172"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2fa0021a316e3d0f", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/profile/page.tsx:366", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/profile/page.tsx:366"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0aa9492f0428400a", "name": "Stray `console.log` in TS/JS \u2014 frontend/apps/web/src/app/(app)/app/profile/page.tsx:32", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/apps/web/src/app/(app)/app/profile/page.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-17c386f7887c70cd", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/profile/settings/blocked/page.t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/profile/settings/blocked/page.tsx:94"}, "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-bcca13eb78aaed95", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/my-listings/page.tsx:184", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/my-listings/page.tsx:184"}, "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-c24d2634a0ea09cb", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/support-trains/page.tsx:140", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/support-trains/page.tsx:140"}, "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-0e30ce415621ec77", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/support-trains/[id]/page.tsx:11", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/support-trains/[id]/page.tsx:119"}, "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-7f3397acca3688e2", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/support-trains/[id]/manage/page", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/support-trains/[id]/manage/page.tsx:189"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-53082ffac84054a8", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/support-trains/[id]/calendar/pa", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/support-trains/[id]/calendar/page.tsx:175"}, "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-d853d262a7351fc2", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/connections/page.tsx:353", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/connections/page.tsx:353"}, "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-23e66c36f0ccdf6d", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/support-trains/[id]/page.tsx:120", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/support-trains/[id]/page.tsx:120"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-93725d3833736d18", "name": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/guest/[token]/page.tsx:300", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/guest/[token]/page.tsx:300"}, "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-79a8bab3286a8fc8", "name": "Stray `console.log` in TS/JS \u2014 frontend/apps/web/src/hooks/usePromoTriggers.ts:233", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 frontend/apps/web/src/hooks/usePromoTriggers.ts:233"}, "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-e8eaf061714e73d9", "name": "React Flow <MiniMap> without dark background \u2014 docs/designs/A17/community.jsx:301", "shortDescription": {"text": "React Flow <MiniMap> without dark background \u2014 docs/designs/A17/community.jsx:301"}, "fullDescription": {"text": "A bare <MiniMap> renders with the vendor's white default in dark themes. Wrap the canvas in a class that overrides `.react-flow__minimap` background, or pass an explicit `style`/`maskColor`/`bgColor`.\n\nWhy: P1 in CHECKLIST.md \u2014 vendor defaults bleed light through.\nRule id: fq.minimap.no-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-514c4e5b3334293b", "name": "Icon-only button without accessible name \u2014 docs/designs/A13/edit-business-frames.jsx:452", "shortDescription": {"text": "Icon-only button without accessible name \u2014 docs/designs/A13/edit-business-frames.jsx:452"}, "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-322ca4f44e472c18", "name": "Stray `console.log` in TS/JS \u2014 backend/tests/ai/supportTrainDraft.eval.test.js:48", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 backend/tests/ai/supportTrainDraft.eval.test.js:48"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0a153015cbc3c0ed", "name": "Stray `console.log` in TS/JS \u2014 backend/scripts/geocode-provenance-backfill.js:110", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 backend/scripts/geocode-provenance-backfill.js:110"}, "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-13439dcf584d1b12", "name": "Stray `console.log` in TS/JS \u2014 backend/scripts/seedBusinesses.js:79", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 backend/scripts/seedBusinesses.js:79"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa491a47805eedef", "name": "Stray `console.log` in TS/JS \u2014 backend/scripts/identity-firewall-live-audit-preset.js:64", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 backend/scripts/identity-firewall-live-audit-preset.js:64"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3119faee5acbfe85", "name": "Stray `console.log` in TS/JS \u2014 backend/scripts/p0-2-send-display-name-migration-emails.js:44", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 backend/scripts/p0-2-send-display-name-migration-emails.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-e85bc88d84f3900a", "name": "Stray `console.log` in TS/JS \u2014 backend/scripts/push-smoke.js:55", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 backend/scripts/push-smoke.js:55"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8cb3b70bcdfccc58", "name": "Stray `console.log` in TS/JS \u2014 backend/scripts/identity-firewall-migration-smoke.js:653", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 backend/scripts/identity-firewall-migration-smoke.js:653"}, "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-63bf4182e4216765", "name": "Stray `console.log` in TS/JS \u2014 backend/scripts/backfill-business-locations.js:26", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 backend/scripts/backfill-business-locations.js:26"}, "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-4276ad6152dfbac4", "name": "Stray `console.log` in TS/JS \u2014 backend/scripts/identity-firewall-raw-user-audit.js:45", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 backend/scripts/identity-firewall-raw-user-audit.js: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-a7587f48626b3c53", "name": "Stray `console.log` in TS/JS \u2014 backend/scripts/identity-firewall-two-user-seed.js:334", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 backend/scripts/identity-firewall-two-user-seed.js:334"}, "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-b9114422ec8584d5", "name": "Stray `console.log` in TS/JS \u2014 backend/scripts/ci/check-legacy-identity-aliases.js:150", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 backend/scripts/ci/check-legacy-identity-aliases.js:150"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-771fe8f6c0f9cc21", "name": "Stray `console.log` in TS/JS \u2014 backend/scripts/ci/check-nested-user-selects.js:125", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 backend/scripts/ci/check-nested-user-selects.js:125"}, "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-a4e54f15cc17ed16", "name": "Stray `console.log` in TS/JS \u2014 backend/scripts/ci/check-creator-select.js:125", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 backend/scripts/ci/check-creator-select.js:125"}, "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-95b850ed8f6332f0", "name": "Stray `console.log` in TS/JS \u2014 backend/scripts/ci/check-raw-personal-selects.js:133", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 backend/scripts/ci/check-raw-personal-selects.js: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-6e7f0d53636a332a", "name": "Stray `console.log` in TS/JS \u2014 backend/scripts/ci/check-legacy-ui-terms.js:131", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 backend/scripts/ci/check-legacy-ui-terms.js:131"}, "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-75e2b2f2d0f058c1", "name": "Stray `console.log` in TS/JS \u2014 backend/utils/csrf.js:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 backend/utils/csrf.js:17"}, "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-c6e9dd9456bdd350", "name": "TODO/FIXME marker in shipping code \u2014 backend/routes/home.js:1293", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 backend/routes/home.js:1293"}, "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-ab35c9b9c8d81c1f", "name": "TODO/FIXME marker in shipping code \u2014 backend/routes/supportTrains.js:3298", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 backend/routes/supportTrains.js:3298"}, "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-48e6be764df6a8b4", "name": "TODO/FIXME marker in shipping code \u2014 backend/routes/gigs.js:5538", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 backend/routes/gigs.js:5538"}, "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-23180455c7eb4aa1", "name": "TODO/FIXME marker in shipping code \u2014 backend/routes/professional.js:355", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 backend/routes/professional.js:355"}, "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-d89c0708a1ae129c", "name": "TODO/FIXME marker in shipping code \u2014 backend/routes/personaDms.js:390", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 backend/routes/personaDms.js:390"}, "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-e5fa32f51821e036", "name": "TODO/FIXME marker in shipping code \u2014 backend/routes/businessSeats.js:566", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 backend/routes/businessSeats.js:566"}, "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-0d5ed4722128291f", "name": "TODO/FIXME marker in shipping code \u2014 backend/services/geo/mapboxProvider.js:130", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 backend/services/geo/mapboxProvider.js:130"}, "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-7b5528a750b6676f", "name": "Privileged port 14 in use", "shortDescription": {"text": "Privileged port 14 in use"}, "fullDescription": {"text": "Port 14 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-aa8d32339a476289", "name": "Privileged port 30 in use", "shortDescription": {"text": "Privileged port 30 in use"}, "fullDescription": {"text": "Port 30 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a820547d7c6dc95c", "name": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1f66ad88286ca30a", "name": "Dockerfile runs as root: backend/Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: backend/Dockerfile"}, "fullDescription": {"text": "No non-root USER set. Containers running as root expand the blast radius of any vulnerability inside the image."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3d2a6283f9ebab24", "name": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6ecf43ee2628a273", "name": "Insecure pattern 'domparser_html_parse' in frontend/apps/web/src/app/(app)/app/mailbox/_components/MailContentRenderer.t", "shortDescription": {"text": "Insecure pattern 'domparser_html_parse' in frontend/apps/web/src/app/(app)/app/mailbox/_components/MailContentRenderer.tsx:64"}, "fullDescription": {"text": "Found a known-risky pattern (domparser_html_parse). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3fa90aaa756d24f8", "name": "Possible secret in frontend/apps/web/src/app/(auth)/register/page.tsx", "shortDescription": {"text": "Possible secret in frontend/apps/web/src/app/(auth)/register/page.tsx"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-2062d747c0501a40", "name": "Possible secret in frontend/apps/web/src/app/guest/[token]/page.tsx", "shortDescription": {"text": "Possible secret in frontend/apps/web/src/app/guest/[token]/page.tsx"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-d9d73d265d96f745", "name": "Insecure pattern 'direct_innerhtml_assignment' in reference/address anchored features/place-components.jsx:23", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in reference/address anchored features/place-components.jsx:23"}, "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-b943820d7e4db41a", "name": "Insecure pattern 'direct_innerhtml_assignment' in reference/address anchored features/v1/place-components.jsx:23", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in reference/address anchored features/v1/place-components.jsx:23"}, "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-3d8e14dfdc89c231", "name": "Insecure pattern 'node_child_process' in backend/scripts/identity-firewall-live-audit-preset.js:14", "shortDescription": {"text": "Insecure pattern 'node_child_process' in backend/scripts/identity-firewall-live-audit-preset.js:14"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d96b2238da4297ae", "name": "Insecure pattern 'node_child_process' in backend/scripts/ci/run-privacy-gates.js:27", "shortDescription": {"text": "Insecure pattern 'node_child_process' in backend/scripts/ci/run-privacy-gates.js:27"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-593057b67a55b4fd", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-java@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1c94821082fb8c9b", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/cache@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a676ca6e1421dba7", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "ruby/setup-ruby@v1 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-510def1477caf385", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-java@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9d7e8d370403d6cd", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "docker/login-action@v3 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-067a1d85533e800f", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/setup-java@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c94a8db0229d276a", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "appleboy/ssh-action@v1 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-61760c2ecc9db2bd", "name": "Very large file: frontend/apps/web/src/components/AppShell.tsx (945 lines)", "shortDescription": {"text": "Very large file: frontend/apps/web/src/components/AppShell.tsx (945 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-c9117639eade6ddd", "name": "Very large file: frontend/apps/web/src/app/(app)/app/persona/page.tsx (1721 lines)", "shortDescription": {"text": "Very large file: frontend/apps/web/src/app/(app)/app/persona/page.tsx (1721 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-606c3ce33466a11b", "name": "Very large file: frontend/apps/web/src/app/(app)/app/homes/new/page.tsx (1172 lines)", "shortDescription": {"text": "Very large file: frontend/apps/web/src/app/(app)/app/homes/new/page.tsx (1172 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-721a913951a08139", "name": "Very large file: backend/routes/mailboxV2Phase2.js (1855 lines)", "shortDescription": {"text": "Very large file: backend/routes/mailboxV2Phase2.js (1855 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-eb5de1de85c1f80c", "name": "Very large file: backend/routes/home.js (7793 lines)", "shortDescription": {"text": "Very large file: backend/routes/home.js (7793 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-851544fb5b28b30c", "name": "Very large file: backend/routes/supportTrains.js (3987 lines)", "shortDescription": {"text": "Very large file: backend/routes/supportTrains.js (3987 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-2f83d7f651ac13e5", "name": "Very large file: backend/routes/businesses.js (4871 lines)", "shortDescription": {"text": "Very large file: backend/routes/businesses.js (4871 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-c1063f6ff79e9310", "name": "Very large file: backend/routes/posts.js (3359 lines)", "shortDescription": {"text": "Very large file: backend/routes/posts.js (3359 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-6aac9aa0d909ef8b", "name": "Very large file: backend/routes/gigs.js (8859 lines)", "shortDescription": {"text": "Very large file: backend/routes/gigs.js (8859 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-e0d7a2716b3a8695", "name": "Very large file: backend/routes/mailbox.js (3164 lines)", "shortDescription": {"text": "Very large file: backend/routes/mailbox.js (3164 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-49c82e0407617fc8", "name": "Very large file: backend/routes/personas.js (1807 lines)", "shortDescription": {"text": "Very large file: backend/routes/personas.js (1807 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-a482e8fdea1356fa", "name": "Very large file: backend/routes/homeOwnership.js (2774 lines)", "shortDescription": {"text": "Very large file: backend/routes/homeOwnership.js (2774 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-d1a1eec729845165", "name": "Very large file: backend/routes/users.js (4255 lines)", "shortDescription": {"text": "Very large file: backend/routes/users.js (4255 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-e7785826fd3c09be", "name": "Very large file: backend/routes/mailboxV2Phase3.js (1833 lines)", "shortDescription": {"text": "Very large file: backend/routes/mailboxV2Phase3.js (1833 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-04d8fbf0a2df37b0", "name": "Very large file: backend/routes/listings.js (2494 lines)", "shortDescription": {"text": "Very large file: backend/routes/listings.js (2494 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-50dbeedcf10a8ee8", "name": "Very large file: backend/routes/upload.js (1984 lines)", "shortDescription": {"text": "Very large file: backend/routes/upload.js (1984 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-5a1122fec8e72722", "name": "Very large file: backend/routes/chats.js (2770 lines)", "shortDescription": {"text": "Very large file: backend/routes/chats.js (2770 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-8c5e85363e9b84ee", "name": "Very large file: backend/services/feedService.js (1452 lines)", "shortDescription": {"text": "Very large file: backend/services/feedService.js (1452 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-4fe92d868de589ab", "name": "Very large file: backend/stripe/stripeService.js (1982 lines)", "shortDescription": {"text": "Very large file: backend/stripe/stripeService.js (1982 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-11448d8cb86e12ac", "name": "Very large file: backend/stripe/stripeWebhooks.js (2281 lines)", "shortDescription": {"text": "Very large file: backend/stripe/stripeWebhooks.js (2281 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-ea3b5e389d8c9c0f", "name": "Low test-to-source ratio", "shortDescription": {"text": "Low test-to-source ratio"}, "fullDescription": {"text": "288 tests / 1470 src (ratio 0.20)."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d70a7762dfca3ba4", "name": "Node manifest has dependencies but no lockfile: frontend/apps/web/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: frontend/apps/web/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-93386cc7ad4f4e59", "name": "Node manifest has dependencies but no lockfile: frontend/packages/ui-utils/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: frontend/packages/ui-utils/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-25adbed1250e42ef", "name": "Node manifest has dependencies but no lockfile: frontend/packages/types/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: frontend/packages/types/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-1b87f458637c3f2b", "name": "Node manifest has dependencies but no lockfile: frontend/packages/api/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: frontend/packages/api/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-552f197b91f106ee", "name": "Node manifest has dependencies but no lockfile: frontend/packages/utils/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: frontend/packages/utils/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-10aa94e8cdbac449", "name": "Node manifest has dependencies but no lockfile: frontend/packages/theme/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: frontend/packages/theme/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-3a092b5c39e242a1", "name": "Node manifest has dependencies but no lockfile: backend/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: backend/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 159 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 758 placeholder/mock markers across 246 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, 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": "low", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license, 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-2ce473963d125d61", "name": "Commented-code block (6 lines) in render-new-designs-batch2.mjs:16", "shortDescription": {"text": "Commented-code block (6 lines) in render-new-designs-batch2.mjs:16"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eab776e8abb5f7f4", "name": "Commented-code block (5 lines) in render-new-designs.mjs:15", "shortDescription": {"text": "Commented-code block (5 lines) in render-new-designs.mjs:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d03fe2fedad8cc0b", "name": "Commented-code block (9 lines) in render-t6-parity.mjs:1", "shortDescription": {"text": "Commented-code block (9 lines) in render-t6-parity.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-05d6ee02d9d8f2d3", "name": "Commented-code block (7 lines) in frontend/apps/web/tests/startFunnel.test.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/apps/web/tests/startFunnel.test.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9b09eb6d2f9c87b0", "name": "Commented-code block (5 lines) in frontend/apps/web/tests/placeGroupDetail.test.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/tests/placeGroupDetail.test.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-34cc315e96acc25a", "name": "Commented-code block (7 lines) in frontend/apps/web/tests/neighborMessage.test.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/apps/web/tests/neighborMessage.test.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bdbc82bb98b6b3e0", "name": "Commented-code block (7 lines) in frontend/apps/web/tests/placePulseStream.test.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/apps/web/tests/placePulseStream.test.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c76542271b96e1d4", "name": "Commented-code block (5 lines) in frontend/apps/web/tests/identityFirewallWeb.test.tsx:62", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/tests/identityFirewallWeb.test.tsx:62"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4b6d25c6634a8e06", "name": "Commented-code block (5 lines) in frontend/apps/web/tests/e2e/homeOnboarding.spec.ts:9", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/tests/e2e/homeOnboarding.spec.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5ace91999a338237", "name": "Commented-code block (7 lines) in frontend/apps/web/src/types/mailbox.ts:8", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/types/mailbox.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-9a2ce491226ce98b", "name": "Commented-code block (6 lines) in frontend/apps/web/src/components/AudienceZoneHeader.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/components/AudienceZoneHeader.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-15e0b7f8abad0dff", "name": "Commented-code block (6 lines) in frontend/apps/web/src/components/AppShell.tsx:635", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/components/AppShell.tsx:635"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d540cf36b7bb4927", "name": "Commented-code block (6 lines) in frontend/apps/web/src/components/place/VerifyPromptSheet.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/components/place/VerifyPromptSheet.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-e0bf44f85abd3a05", "name": "Commented-code block (7 lines) in frontend/apps/web/src/components/place/pendingPlace.ts:4", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/components/place/pendingPlace.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-71afc02571082b7b", "name": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/VerifiedSuccess.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/VerifiedSuccess.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-e3c73feb60cf54a5", "name": "Commented-code block (7 lines) in frontend/apps/web/src/components/place/PlaceDashboardView.tsx:4", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/components/place/PlaceDashboardView.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-1894690884c9c07f", "name": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/PendingPlaceSaver.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/PendingPlaceSaver.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-eb9b7919ebce963e", "name": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/PlaceIdentitySection.tsx:8", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/PlaceIdentitySection.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-84fdf053dae3e0a0", "name": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/AddressAutocomplete.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/AddressAutocomplete.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-0a000b003551d895", "name": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/StartFunnel.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/StartFunnel.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-edafe1dd4f24b069", "name": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/PlaceDashboardSkeleton.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/PlaceDashboardSkeleton.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-22c317d6f5c2dce8", "name": "Commented-code block (7 lines) in frontend/apps/web/src/components/place/PlaceShell.tsx:4", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/components/place/PlaceShell.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-b78f24a3246dfa24", "name": "Commented-code block (6 lines) in frontend/apps/web/src/components/place/PlaceNavRail.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/components/place/PlaceNavRail.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-07d6288c9cda8c7b", "name": "Commented-code block (6 lines) in frontend/apps/web/src/components/place/PlaceDashboard.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/components/place/PlaceDashboard.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-1c97fb4abe1472af", "name": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/presentation.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/presentation.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-dd8bfcf17a15c31b", "name": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/detail/fields.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/detail/fields.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-18eec89e529c23d2", "name": "Commented-code block (8 lines) in frontend/apps/web/src/components/place/detail/YourHomeDetail.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/apps/web/src/components/place/detail/YourHomeDetail.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-896c71d5e56aa27f", "name": "Commented-code block (10 lines) in frontend/apps/web/src/components/place/detail/CivicDetail.tsx:1", "shortDescription": {"text": "Commented-code block (10 lines) in frontend/apps/web/src/components/place/detail/CivicDetail.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d515fbe62495a766", "name": "Commented-code block (6 lines) in frontend/apps/web/src/components/place/detail/BlockDetail.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/components/place/detail/BlockDetail.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3194dc215131a947", "name": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/detail/useLocalDraft.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/detail/useLocalDraft.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-41ec817bab1b4f72", "name": "Commented-code block (6 lines) in frontend/apps/web/src/components/place/detail/PlaceSectionDetail.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/components/place/detail/PlaceSectionDetail.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-95ec7173b7f66e68", "name": "Commented-code block (9 lines) in frontend/apps/web/src/components/place/detail/RiskDetail.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/apps/web/src/components/place/detail/RiskDetail.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-49d87cf96705735d", "name": "Legacy-named symbol `mailjson_v1` in frontend/apps/web/src/components/place/detail/IdentityDetail.tsx:186", "shortDescription": {"text": "Legacy-named symbol `mailjson_v1` in frontend/apps/web/src/components/place/detail/IdentityDetail.tsx:186"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9fdc927fd80f1b37", "name": "Commented-code block (7 lines) in frontend/apps/web/src/components/place/detail/IdentityDetail.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/components/place/detail/IdentityDetail.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-73a74977dd52ff9e", "name": "Commented-code block (7 lines) in frontend/apps/web/src/components/place/detail/MoneyDetail.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/components/place/detail/MoneyDetail.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-af7339d3c33e5088", "name": "Commented-code block (8 lines) in frontend/apps/web/src/components/place/detail/TodayDetail.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/apps/web/src/components/place/detail/TodayDetail.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2f57b11a373642d7", "name": "Commented-code block (9 lines) in frontend/apps/web/src/components/place/verify-residency/VerifyResidency.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/apps/web/src/components/place/verify-residency/VerifyResidency.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1e1c10ff25724f49", "name": "Commented-code block (7 lines) in frontend/apps/web/src/components/place/pulse/ranking.ts:4", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/components/place/pulse/ranking.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-635af037263ce5fd", "name": "Commented-code block (6 lines) in frontend/apps/web/src/components/place/pulse/PulseStreamView.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/components/place/pulse/PulseStreamView.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-eaef9ee6e6c14bb4", "name": "Commented-code block (6 lines) in frontend/apps/web/src/components/place/pulse/PulseStream.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/components/place/pulse/PulseStream.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-98b3de77d71baf03", "name": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/neighbor-message/NeighborMessageReceivedView.ts", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/neighbor-message/NeighborMessageReceivedView.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-72854525a0eea3b4", "name": "Commented-code block (10 lines) in frontend/apps/web/src/components/place/neighbor-message/NeighborMessageCompose.tsx:4", "shortDescription": {"text": "Commented-code block (10 lines) in frontend/apps/web/src/components/place/neighbor-message/NeighborMessageCompose.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-aa662eb782a2ff11", "name": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/neighbor-message/icons.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/neighbor-message/icons.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-441d44f293599d07", "name": "Commented-code block (6 lines) in frontend/apps/web/src/components/ui/FloatingPromoModal.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/components/ui/FloatingPromoModal.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-2be4049dfde85195", "name": "Commented-code block (5 lines) in frontend/apps/web/src/components/ui/promo-modal-store.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/ui/promo-modal-store.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-8637fc6a2e056870", "name": "Commented-code block (5 lines) in frontend/apps/web/src/components/magic-task-v2/MagicTaskComposerV2.tsx:157", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/magic-task-v2/MagicTaskComposerV2.tsx:157"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e12bd86b8c60bcdc", "name": "Commented-code block (5 lines) in frontend/apps/web/src/components/feed/PostComposer.tsx:279", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/feed/PostComposer.tsx:279"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c23e6480f8c74050", "name": "Commented-code block (6 lines) in frontend/apps/web/src/components/home/settings/TransferAdminWizard.tsx:8", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/components/home/settings/TransferAdminWizard.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-762bff725f9aee09", "name": "Commented-code block (9 lines) in frontend/apps/web/src/components/archetypes/index.ts:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/apps/web/src/components/archetypes/index.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-24883cb1e3b2444b", "name": "Commented-code block (5 lines) in frontend/apps/web/src/components/archetypes/detail/headers/ProfileHeader.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/archetypes/detail/headers/ProfileHeader.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-edffeb9d60d4911d", "name": "Commented-code block (6 lines) in frontend/apps/web/src/components/archetypes/hub/HubArchetype.tsx:16", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/components/archetypes/hub/HubArchetype.tsx:16"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-43b6c516704aa0a4", "name": "Commented-code block (6 lines) in frontend/apps/web/src/components/archetypes/place/DensityCard.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/components/archetypes/place/DensityCard.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b322844517defcfb", "name": "Commented-code block (5 lines) in frontend/apps/web/src/components/archetypes/place/Group.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/archetypes/place/Group.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ad247956e06cbcf3", "name": "Commented-code block (5 lines) in frontend/apps/web/src/components/archetypes/place/PlaceSwitcher.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/archetypes/place/PlaceSwitcher.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-3e12da33139db4a0", "name": "Commented-code block (6 lines) in frontend/apps/web/src/components/archetypes/place/detail.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/components/archetypes/place/detail.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ade7c41d6d03f126", "name": "Commented-code block (5 lines) in frontend/apps/web/src/components/archetypes/place/PlaceHeader.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/archetypes/place/PlaceHeader.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e3ca88c706871edc", "name": "Commented-code block (5 lines) in frontend/apps/web/src/components/archetypes/place/primitives.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/archetypes/place/primitives.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-43f7e17d36f98605", "name": "Commented-code block (5 lines) in frontend/apps/web/src/components/archetypes/place/index.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/archetypes/place/index.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-708e5078cfe5edb9", "name": "Commented-code block (7 lines) in frontend/apps/web/src/components/archetypes/place/LockedCard.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/components/archetypes/place/LockedCard.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8f8cf416b25f8c98", "name": "Commented-code block (9 lines) in frontend/apps/web/src/components/archetypes/place/HeroCard.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/apps/web/src/components/archetypes/place/HeroCard.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ca4dd46cd711d795", "name": "Commented-code block (7 lines) in frontend/apps/web/src/components/archetypes/place/VerifyBanner.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/components/archetypes/place/VerifyBanner.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-838d8c04f76186c0", "name": "Commented-code block (9 lines) in frontend/apps/web/src/components/archetypes/list/ListArchetype.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/apps/web/src/components/archetypes/list/ListArchetype.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-16313e41da6999bf", "name": "Commented-code block (5 lines) in frontend/apps/web/src/components/archetypes/primitives/ValidatedField.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/archetypes/primitives/ValidatedField.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c8e4cde174ef5820", "name": "Commented-code block (7 lines) in frontend/apps/web/src/components/archetypes/primitives/ArchetypePageHeader.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/components/archetypes/primitives/ArchetypePageHeader.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-52568824c72fe427", "name": "Commented-code block (10 lines) in frontend/apps/web/src/components/archetypes/mailboxDetail/MailboxItemDetailArchetype.", "shortDescription": {"text": "Commented-code block (10 lines) in frontend/apps/web/src/components/archetypes/mailboxDetail/MailboxItemDetailArchetype.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-c050c19596e87a9e", "name": "Commented-code block (6 lines) in frontend/apps/web/src/components/archetypes/wizard/WizardArchetype.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/components/archetypes/wizard/WizardArchetype.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-24f99dd913c23319", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/apps/web/src/components/map/BaseMap.tsx:104", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/apps/web/src/components/map/BaseMap.tsx:104"}, "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-a28b87d9b966606f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/apps/web/src/components/map/OfflineIndicator.tsx:43", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/apps/web/src/components/map/OfflineIndicator.tsx:43"}, "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-7c7c22147ef04add", "name": "Commented-code block (5 lines) in frontend/apps/web/src/app/shared/[token]/page.tsx:11", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/app/shared/[token]/page.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-74975f5dd3378807", "name": "Commented-code block (6 lines) in frontend/apps/web/src/app/persona/[personaHandle]/AudienceProfileClient.tsx:242", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/app/persona/[personaHandle]/AudienceProfileClient.tsx:242"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c04f8f8a8cf99377", "name": "Commented-code block (6 lines) in frontend/apps/web/src/app/verify-residency/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/app/verify-residency/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8558895b3d3556ad", "name": "Commented-code block (5 lines) in frontend/apps/web/src/app/verify-residency/[code]/page.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/app/verify-residency/[code]/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f52dc2ec029fe604", "name": "Commented-code block (7 lines) in frontend/apps/web/src/app/dev/layout.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/app/dev/layout.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0d0904796183cf0f", "name": "Commented-code block (7 lines) in frontend/apps/web/src/app/dev/place/page.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/app/dev/place/page.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-0385c7e3069fda5c", "name": "Commented-code block (7 lines) in frontend/apps/web/src/app/dev/place-pulse/page.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/app/dev/place-pulse/page.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-357812e6fb2f638e", "name": "Commented-code block (5 lines) in frontend/apps/web/src/app/dev/place-detail/page.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/app/dev/place-detail/page.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-619d5e91f57ff673", "name": "Commented-code block (7 lines) in frontend/apps/web/src/app/dev/place-dashboard/page.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/app/dev/place-dashboard/page.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-413a354c6263deed", "name": "Commented-code block (7 lines) in frontend/apps/web/src/app/dev/place-neighbor-message/page.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/app/dev/place-neighbor-message/page.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-cb2f3471dc4099af", "name": "Legacy-named symbol `mailjson_v1` in frontend/apps/web/src/app/(app)/app/mailbox/_components/ComposeMailModal.tsx:253", "shortDescription": {"text": "Legacy-named symbol `mailjson_v1` in frontend/apps/web/src/app/(app)/app/mailbox/_components/ComposeMailModal.tsx:253"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-20cac4b377ecc518", "name": "Commented-code block (5 lines) in frontend/apps/web/src/app/(app)/app/marketplace/constants.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/app/(app)/app/marketplace/constants.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-03dc1921e316ab44", "name": "Commented-code block (6 lines) in frontend/apps/web/src/app/(app)/app/place/page.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/app/(app)/app/place/page.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-d9f1f032392e3aa5", "name": "Commented-code block (6 lines) in frontend/apps/web/src/app/(app)/app/place/pulse/page.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/app/(app)/app/place/pulse/page.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-da132f1c088e2c8f", "name": "Commented-code block (6 lines) in frontend/apps/web/src/app/(app)/app/place/[section]/page.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/app/(app)/app/place/[section]/page.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-a16e880627bacade", "name": "Commented-code block (6 lines) in frontend/apps/web/src/app/(app)/app/place/neighbor-message/page.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/app/(app)/app/place/neighbor-message/page.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-1de4fa1be1d02974", "name": "Commented-code block (7 lines) in frontend/apps/web/src/app/(app)/app/place/neighbor-message/[id]/page.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/app/(app)/app/place/neighbor-message/[id]/page.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-24f465b89623ff0b", "name": "Commented-code block (5 lines) in frontend/apps/web/src/app/(app)/app/persona/broadcast/page.tsx:52", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/app/(app)/app/persona/broadcast/page.tsx:52"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bc2f4113978fc51c", "name": "Commented-code block (5 lines) in frontend/apps/web/src/app/(app)/app/persona/[handle]/follow/page.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/app/(app)/app/persona/[handle]/follow/page.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a04f2fdad4fb74bd", "name": "Legacy-named symbol `claim_phase_v2` in frontend/apps/web/src/app/(app)/app/admin/review-claims/page.tsx:169", "shortDescription": {"text": "Legacy-named symbol `claim_phase_v2` in frontend/apps/web/src/app/(app)/app/admin/review-claims/page.tsx:169"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-22b27ae28bbfbd72", "name": "Legacy-named symbol `claim_phase_v2` in frontend/apps/web/src/app/(app)/app/homes/[id]/owners/review-claim/page.tsx:133", "shortDescription": {"text": "Legacy-named symbol `claim_phase_v2` in frontend/apps/web/src/app/(app)/app/homes/[id]/owners/review-claim/page.tsx:133"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e6f6fd73c47ced03", "name": "Commented-code block (5 lines) in frontend/apps/web/src/app/(app)/app/audience/manage/tiers/page.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/app/(app)/app/audience/manage/tiers/page.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-c7ca8cf303982e0b", "name": "Commented-code block (6 lines) in frontend/apps/web/src/app/(app)/app/audience/manage/blocks/page.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/app/(app)/app/audience/manage/blocks/page.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-700e308a8895269e", "name": "Commented-code block (8 lines) in frontend/apps/web/src/app/(app)/app/audience/membership/[personaId]/page.tsx:3", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/apps/web/src/app/(app)/app/audience/membership/[personaId]/page.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-b2d0d7ed67a813ff", "name": "Commented-code block (7 lines) in frontend/apps/web/src/app/(app)/app/audience/setup/page.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/app/(app)/app/audience/setup/page.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-a50301275eee1a05", "name": "Commented-code block (6 lines) in frontend/apps/web/src/app/(app)/app/support-trains/new/page.tsx:26", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/app/(app)/app/support-trains/new/page.tsx:26"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c33857c851a9c6f5", "name": "Commented-code block (5 lines) in frontend/apps/web/src/app/_components/HeroSection.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/app/_components/HeroSection.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d080f91d4a5d403d", "name": "Commented-code block (7 lines) in frontend/apps/web/src/app/start/page.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/app/start/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-19170273782acbd0", "name": "Commented-code block (5 lines) in frontend/apps/web/src/app/child-safety/page.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/app/child-safety/page.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-838db2630f57aad7", "name": "Legacy-named symbol `audienceProfileLegacy` in frontend/apps/web/src/lib/identityLabels.ts:38", "shortDescription": {"text": "Legacy-named symbol `audienceProfileLegacy` in frontend/apps/web/src/lib/identityLabels.ts:38"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-33855a0fbf5b73fb", "name": "Commented-code block (8 lines) in frontend/apps/web/src/lib/identityLabels.ts:54", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/apps/web/src/lib/identityLabels.ts:54"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-393b755d26b3eceb", "name": "Commented-code block (6 lines) in frontend/apps/web/src/hooks/useChatMessages.ts:54", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/hooks/useChatMessages.ts:54"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3b8ef25e1533c038", "name": "Commented-code block (7 lines) in frontend/apps/web/src/hooks/usePromoTriggers.ts:199", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/hooks/usePromoTriggers.ts:199"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-69131795496e7e25", "name": "Commented-code block (5 lines) in frontend/packages/ui-utils/src/status.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/packages/ui-utils/src/status.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-c173c663879e012d", "name": "Commented-code block (6 lines) in frontend/packages/ui-utils/src/compose-payload-builder.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/packages/ui-utils/src/compose-payload-builder.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-8b4518b4af6efe26", "name": "Commented-code block (5 lines) in frontend/packages/ui-utils/src/stationery.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/packages/ui-utils/src/stationery.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-00cab13e7a44fc85", "name": "Commented-code block (5 lines) in frontend/packages/types/src/gig.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/packages/types/src/gig.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-7c5287b0b79c5d32", "name": "Commented-code block (5 lines) in frontend/packages/types/src/identity.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/packages/types/src/identity.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-f783c5901e1a1109", "name": "Legacy-named symbol `find_gigs_nearby_v2` in frontend/packages/types/src/index.ts:1446", "shortDescription": {"text": "Legacy-named symbol `find_gigs_nearby_v2` in frontend/packages/types/src/index.ts:1446"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a2927d0968e2264c", "name": "Commented-code block (5 lines) in frontend/packages/types/src/index.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/packages/types/src/index.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ed6bbae190496497", "name": "Commented-code block (5 lines) in frontend/packages/types/src/listing.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/packages/types/src/listing.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-ce1d295a5b077e83", "name": "Commented-code block (5 lines) in frontend/packages/types/src/homeIntelligence.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/packages/types/src/homeIntelligence.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-ec355284dd05d3f3", "name": "Commented-code block (5 lines) in frontend/packages/types/src/placeIntelligence.ts:9", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/packages/types/src/placeIntelligence.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1921822f22464acd", "name": "Commented-code block (8 lines) in frontend/packages/types/src/home.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/packages/types/src/home.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-919d20675f77c6cb", "name": "Commented-code block (5 lines) in frontend/packages/types/src/entityTypes.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/packages/types/src/entityTypes.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-0c487d6182e788f7", "name": "Commented-code block (5 lines) in frontend/packages/types/src/wallet.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/packages/types/src/wallet.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-a637141ca0bc2c23", "name": "Commented-code block (6 lines) in frontend/packages/types/src/business.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/packages/types/src/business.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-0b5fc5a25453bbbb", "name": "Commented-code block (5 lines) in frontend/packages/types/src/supportTrain.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/packages/types/src/supportTrain.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-d5735066a113dd1d", "name": "Legacy-named symbol `mailjson_v1` in frontend/packages/types/src/mailCompose.ts:120", "shortDescription": {"text": "Legacy-named symbol `mailjson_v1` in frontend/packages/types/src/mailCompose.ts:120"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1a7effdc4d1f3655", "name": "Commented-code block (5 lines) in frontend/packages/types/src/mailCompose.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/packages/types/src/mailCompose.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-680833c55b1ed541", "name": "Commented-code block (5 lines) in frontend/packages/api/src/client.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/packages/api/src/client.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-d6809d2eafc65385", "name": "Commented-code block (5 lines) in frontend/packages/api/src/endpoints/auth.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/packages/api/src/endpoints/auth.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-9f2b1241da03c771", "name": "Legacy-named symbol `period_unused` in frontend/packages/api/src/endpoints/personaMembership.ts:87", "shortDescription": {"text": "Legacy-named symbol `period_unused` in frontend/packages/api/src/endpoints/personaMembership.ts:87"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-086393a8b9e8a325", "name": "Commented-code block (6 lines) in frontend/packages/api/src/endpoints/personaMembership.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/packages/api/src/endpoints/personaMembership.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-8fbf24eb75f3a0fe", "name": "Commented-code block (5 lines) in frontend/packages/api/src/endpoints/landlord.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/packages/api/src/endpoints/landlord.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-5d21247671a2ff5f", "name": "Commented-code block (5 lines) in frontend/packages/api/src/endpoints/homeProfile.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/packages/api/src/endpoints/homeProfile.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-65aebb624b159982", "name": "Commented-code block (5 lines) in frontend/packages/api/src/endpoints/residencyLetters.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/packages/api/src/endpoints/residencyLetters.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-143c3708e6e2c690", "name": "Commented-code block (5 lines) in frontend/packages/api/src/endpoints/mailboxV2Phase3.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/packages/api/src/endpoints/mailboxV2Phase3.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-5ae968ba844db661", "name": "Commented-code block (7 lines) in frontend/packages/api/src/endpoints/personaDms.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/packages/api/src/endpoints/personaDms.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-c3a07013e03750c8", "name": "Commented-code block (5 lines) in frontend/packages/api/src/endpoints/personas.ts:240", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/packages/api/src/endpoints/personas.ts:240"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ee6a74a3dbaebf42", "name": "Commented-code block (6 lines) in frontend/packages/api/src/endpoints/personaBlocks.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/packages/api/src/endpoints/personaBlocks.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-a039b8aedfd21523", "name": "Commented-code block (5 lines) in frontend/packages/api/src/endpoints/addressValidation.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/packages/api/src/endpoints/addressValidation.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-bb6dad3e5fec54ff", "name": "Commented-code block (5 lines) in frontend/packages/api/src/endpoints/bids.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/packages/api/src/endpoints/bids.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-537ac25a2fbf44b1", "name": "Commented-code block (11 lines) in frontend/packages/api/src/endpoints/neighborMessages.ts:4", "shortDescription": {"text": "Commented-code block (11 lines) in frontend/packages/api/src/endpoints/neighborMessages.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-b16b7b2954c5d7e8", "name": "Commented-code block (6 lines) in frontend/packages/api/src/endpoints/tenant.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/packages/api/src/endpoints/tenant.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-29c07b2be6e4d6a1", "name": "Commented-code block (6 lines) in frontend/packages/api/src/endpoints/featureFlags.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/packages/api/src/endpoints/featureFlags.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-26b3b1ccd0fa86ca", "name": "Commented-code block (5 lines) in frontend/packages/api/src/endpoints/place.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/packages/api/src/endpoints/place.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-3b899667c3fc97db", "name": "Commented-code block (9 lines) in frontend/packages/api/src/endpoints/personaTiers.ts:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/packages/api/src/endpoints/personaTiers.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-b5d532b7f4160f8d", "name": "Legacy-named symbol `mailjson_v1` in frontend/packages/api/src/endpoints/mailbox.ts:91", "shortDescription": {"text": "Legacy-named symbol `mailjson_v1` in frontend/packages/api/src/endpoints/mailbox.ts:91"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8615614450c76902", "name": "Commented-code block (5 lines) in frontend/packages/api/src/endpoints/mailCompose.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/packages/api/src/endpoints/mailCompose.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-a046d3769570d75d", "name": "Legacy-named symbol `claim_phase_v2` in frontend/packages/api/src/endpoints/homeOwnership.ts:57", "shortDescription": {"text": "Legacy-named symbol `claim_phase_v2` in frontend/packages/api/src/endpoints/homeOwnership.ts:57"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cdd3e4c62ad3abf4", "name": "Commented-code block (5 lines) in frontend/packages/theme/tailwind.cjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/packages/theme/tailwind.cjs: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-03cffec1f9207061", "name": "Commented-code block (8 lines) in reference/address anchored features/place-money-detail.jsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in reference/address anchored features/place-money-detail.jsx: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-e9dfb727dcdd9418", "name": "Commented-code block (6 lines) in reference/address anchored features/place-launch.jsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in reference/address anchored features/place-launch.jsx: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-e1bc757dd094bd6f", "name": "Commented-code block (8 lines) in reference/address anchored features/place-softwall.jsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in reference/address anchored features/place-softwall.jsx: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-d2fc40ab94c2d678", "name": "Commented-code block (6 lines) in reference/address anchored features/place-risk-detail.jsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in reference/address anchored features/place-risk-detail.jsx: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-4778e8ec440dd4b2", "name": "Commented-code block (7 lines) in reference/address anchored features/place-address.jsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in reference/address anchored features/place-address.jsx: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-227d350db9e3d11d", "name": "Commented-code block (9 lines) in reference/address anchored features/place-civic-detail.jsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in reference/address anchored features/place-civic-detail.jsx: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-8eb7dfe549aedbe7", "name": "Commented-code block (9 lines) in reference/address anchored features/place-verify.jsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in reference/address anchored features/place-verify.jsx: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-7f27231abe5c9c20", "name": "Commented-code block (6 lines) in reference/address anchored features/place-home-detail.jsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in reference/address anchored features/place-home-detail.jsx: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-f27c6ce381c01947", "name": "Commented-code block (6 lines) in reference/address anchored features/place-preview.jsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in reference/address anchored features/place-preview.jsx: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-d5e137e6d1fb319e", "name": "Commented-code block (10 lines) in reference/address anchored features/place-verify-pending.jsx:1", "shortDescription": {"text": "Commented-code block (10 lines) in reference/address anchored features/place-verify-pending.jsx: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-d6a4b20a7e89fe3c", "name": "Commented-code block (8 lines) in reference/address anchored features/place-identity-detail.jsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in reference/address anchored features/place-identity-detail.jsx: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-291097ebc2d5c444", "name": "Commented-code block (8 lines) in reference/address anchored features/place-region.jsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in reference/address anchored features/place-region.jsx: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-e455b9d58ffacc9d", "name": "Commented-code block (8 lines) in reference/address anchored features/place-verify-done.jsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in reference/address anchored features/place-verify-done.jsx: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-9cb55bacc9de1128", "name": "Commented-code block (8 lines) in reference/address anchored features/place-block-detail.jsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in reference/address anchored features/place-block-detail.jsx: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-77f36245f16b0965", "name": "Commented-code block (8 lines) in reference/address anchored features/place-dashboard-claimed.jsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in reference/address anchored features/place-dashboard-claimed.jsx: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-d779e1c6fcf86e7a", "name": "Commented-code block (8 lines) in reference/address anchored features/place-pulse-stream.jsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in reference/address anchored features/place-pulse-stream.jsx: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-f1d0cd089c4a9f1a", "name": "Commented-code block (6 lines) in reference/address anchored features/place-today-detail.jsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in reference/address anchored features/place-today-detail.jsx: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-33108a69dbf4e7df", "name": "Commented-code block (9 lines) in reference/address anchored features/place-message-received.jsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in reference/address anchored features/place-message-received.jsx: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-158d7c2e3998f20e", "name": "Commented-code block (6 lines) in reference/address anchored features/place-switcher.jsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in reference/address anchored features/place-switcher.jsx: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-1ae0a4ea1884ef8d", "name": "Commented-code block (8 lines) in reference/address anchored features/place-verify-failed.jsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in reference/address anchored features/place-verify-failed.jsx: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-a09bd99d8205ec63", "name": "Commented-code block (8 lines) in reference/address anchored features/place-message-compose.jsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in reference/address anchored features/place-message-compose.jsx: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-f00c70249fed4bf2", "name": "Commented-code block (6 lines) in Chat_conversation/design-canvas.jsx:2", "shortDescription": {"text": "Commented-code block (6 lines) in Chat_conversation/design-canvas.jsx:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-af7e1ebd512610d1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 Chat_conversation/design-canvas.jsx:128", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 Chat_conversation/design-canvas.jsx:128"}, "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-7438ade07d4beaf6", "name": "Commented-code block (6 lines) in docs/design/new/nav-drawer-launcher-frames.jsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in docs/design/new/nav-drawer-launcher-frames.jsx: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-6e89674fd4bf0073", "name": "Commented-code block (8 lines) in docs/design/new/set-password-frames.jsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in docs/design/new/set-password-frames.jsx: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-2cca63ea97184e8d", "name": "Commented-code block (7 lines) in docs/design/new/verify-email-frames.jsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in docs/design/new/verify-email-frames.jsx: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-8a617706d0d86e1f", "name": "Commented-code block (6 lines) in docs/design/new/delivery-proof-frames.jsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in docs/design/new/delivery-proof-frames.jsx: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-22421cdcb5432b12", "name": "Commented-code block (6 lines) in docs/design/new/audience-frames.jsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in docs/design/new/audience-frames.jsx: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-26924ae2b83d0257", "name": "Commented-code block (5 lines) in docs/design/new/beacon-shell.jsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in docs/design/new/beacon-shell.jsx: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-9dbe5a1c636003b1", "name": "Commented-code block (5 lines) in docs/design/new/following-frames.jsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in docs/design/new/following-frames.jsx: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-1abea6bd92b5ecfe", "name": "Commented-code block (7 lines) in docs/design/new/gig-picker-frames.jsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in docs/design/new/gig-picker-frames.jsx: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-13e6e9bcc807d9c5", "name": "Commented-code block (6 lines) in docs/design/new/nav-drawer-frames.jsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in docs/design/new/nav-drawer-frames.jsx: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-94b25fb3522161c0", "name": "Commented-code block (5 lines) in docs/lighthouse-t5/run.mjs:2", "shortDescription": {"text": "Commented-code block (5 lines) in docs/lighthouse-t5/run.mjs:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e9058d8bea71f4d8", "name": "Commented-code block (5 lines) in docs/designs/A10/earn-frames.jsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in docs/designs/A10/earn-frames.jsx: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-34eefc96ed5ff3d0", "name": "Commented-code block (6 lines) in docs/designs/A10/business-owner-frames.jsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in docs/designs/A10/business-owner-frames.jsx: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-65870a39bbe6ad28", "name": "Commented-code block (7 lines) in docs/designs/A17/coupon.jsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in docs/designs/A17/coupon.jsx: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-c266deb52cf05cb7", "name": "Commented-code block (7 lines) in docs/designs/A17/community.jsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in docs/designs/A17/community.jsx: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-20945de9269de978", "name": "Commented-code block (9 lines) in docs/designs/A17/translation.jsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in docs/designs/A17/translation.jsx: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-694a51fc2342c9a9", "name": "Commented-code block (10 lines) in docs/designs/A17/package.jsx:1", "shortDescription": {"text": "Commented-code block (10 lines) in docs/designs/A17/package.jsx: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-0cc912f7c276c12b", "name": "Commented-code block (7 lines) in docs/designs/A17/certified.jsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in docs/designs/A17/certified.jsx: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-b5132646a175541a", "name": "Commented-code block (8 lines) in docs/designs/A17/gig.jsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in docs/designs/A17/gig.jsx: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-14c481eb4283ac56", "name": "Commented-code block (11 lines) in docs/designs/A17/records.jsx:10", "shortDescription": {"text": "Commented-code block (11 lines) in docs/designs/A17/records.jsx:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e4f88ac8c4aee928", "name": "Commented-code block (9 lines) in docs/designs/A17/tasks.jsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in docs/designs/A17/tasks.jsx: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-5cee4a2461c3d482", "name": "Commented-code block (10 lines) in docs/designs/A17/unboxing.jsx:1", "shortDescription": {"text": "Commented-code block (10 lines) in docs/designs/A17/unboxing.jsx: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-493dd8c6f5636ae0", "name": "Commented-code block (8 lines) in docs/designs/A17/stamps.jsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in docs/designs/A17/stamps.jsx: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-b98b3d851c760830", "name": "Commented-code block (6 lines) in docs/designs/A17/design-canvas.jsx:2", "shortDescription": {"text": "Commented-code block (6 lines) in docs/designs/A17/design-canvas.jsx:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e5249322208777fc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/designs/A17/design-canvas.jsx:128", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/designs/A17/design-canvas.jsx:128"}, "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-46c212585bdceafa", "name": "Commented-code block (9 lines) in docs/designs/A17/memory.jsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in docs/designs/A17/memory.jsx: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-c9b519b96a950988", "name": "Commented-code block (14 lines) in docs/designs/A17/party.jsx:1", "shortDescription": {"text": "Commented-code block (14 lines) in docs/designs/A17/party.jsx: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-43b5839e678c0a32", "name": "Commented-code block (6 lines) in docs/designs/A14/notifications-frames.jsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in docs/designs/A14/notifications-frames.jsx: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-20dc6515e7a71a24", "name": "Commented-code block (5 lines) in docs/designs/A14/payments-frames.jsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in docs/designs/A14/payments-frames.jsx: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-270f025824842be4", "name": "Commented-code block (5 lines) in docs/designs/A14/privacy-frames.jsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in docs/designs/A14/privacy-frames.jsx: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-6e3d9dfdd6fad592", "name": "Commented-code block (5 lines) in docs/designs/A14/global-settings-frames.jsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in docs/designs/A14/global-settings-frames.jsx: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-015610543879465c", "name": "Commented-code block (5 lines) in docs/designs/A14/blocked-frames.jsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in docs/designs/A14/blocked-frames.jsx: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-903ed06c250a4a64", "name": "Commented-code block (6 lines) in docs/designs/A14/vacation-frames.jsx:5", "shortDescription": {"text": "Commented-code block (6 lines) in docs/designs/A14/vacation-frames.jsx: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-f0a614bd1af76ae4", "name": "Commented-code block (8 lines) in docs/designs/A13/post-gig-v1-frames.jsx:4", "shortDescription": {"text": "Commented-code block (8 lines) in docs/designs/A13/post-gig-v1-frames.jsx: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-e53c1cd8a89bbbf5", "name": "Commented-code block (5 lines) in docs/designs/A13/change-password-frames.jsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in docs/designs/A13/change-password-frames.jsx: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-4de79c731384a5cb", "name": "Commented-code block (5 lines) in docs/designs/A13/share-home-frames.jsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in docs/designs/A13/share-home-frames.jsx: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-6df679c417ec7570", "name": "Commented-code block (5 lines) in docs/designs/A13/review-claim-frames.jsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in docs/designs/A13/review-claim-frames.jsx: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-2668d24dbc87f1fa", "name": "Commented-code block (7 lines) in docs/designs/A13/invite-home-frames.jsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in docs/designs/A13/invite-home-frames.jsx: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-3c183898e002c61e", "name": "Commented-code block (7 lines) in docs/designs/A13/property-details-frames.jsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in docs/designs/A13/property-details-frames.jsx: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-6207135ca6d5a374", "name": "Commented-code block (5 lines) in docs/designs/A13/transfer-frames.jsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in docs/designs/A13/transfer-frames.jsx: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-f8256e58980a629d", "name": "Commented-code block (5 lines) in docs/designs/A13/disambiguate-frames.jsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in docs/designs/A13/disambiguate-frames.jsx: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-0bc9ddf818a3dff4", "name": "Commented-code block (5 lines) in docs/designs/A13/add-guest-frames.jsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in docs/designs/A13/add-guest-frames.jsx: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-ef3fd45babce057c", "name": "Commented-code block (7 lines) in docs/designs/A13/mail-day-frames.jsx:4", "shortDescription": {"text": "Commented-code block (7 lines) in docs/designs/A13/mail-day-frames.jsx: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-52f30e05ae519b2b", "name": "Commented-code block (5 lines) in docs/designs/A13/professional-profile-frames.jsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in docs/designs/A13/professional-profile-frames.jsx: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-fea212bb59522122", "name": "Commented-code block (10 lines) in docs/designs/A13/edit-persona-frames.jsx:12", "shortDescription": {"text": "Commented-code block (10 lines) in docs/designs/A13/edit-persona-frames.jsx: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-c1fe4e5941e55b8f", "name": "Commented-code block (5 lines) in docs/lighthouse-t6/run.mjs:2", "shortDescription": {"text": "Commented-code block (5 lines) in docs/lighthouse-t6/run.mjs:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6aca6549b771e1dd", "name": "Commented-code block (6 lines) in tools/t5-screenshots/me-frames.mjs:1", "shortDescription": {"text": "Commented-code block (6 lines) in tools/t5-screenshots/me-frames.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-92b22bba356abe60", "name": "Commented-code block (5 lines) in tools/t5-screenshots/bills-v2.mjs:1", "shortDescription": {"text": "Commented-code block (5 lines) in tools/t5-screenshots/bills-v2.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-257413259e2c9982", "name": "Commented-code block (6 lines) in tools/t5-screenshots/mytasks-v2.mjs:6", "shortDescription": {"text": "Commented-code block (6 lines) in tools/t5-screenshots/mytasks-v2.mjs:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3d0d0ace7360e4b0", "name": "Commented-code block (5 lines) in pantopus-seeder/src/config/constants.py:115", "shortDescription": {"text": "Commented-code block (5 lines) in pantopus-seeder/src/config/constants.py:115"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6b23b90067660141", "name": "Commented-code block (7 lines) in pantopus-seeder/src/config/sources_config.py:12", "shortDescription": {"text": "Commented-code block (7 lines) in pantopus-seeder/src/config/sources_config.py: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-9fe0027292b4a8c0", "name": "Legacy-named symbol `rest_v1` in pantopus-seeder/src/sources/on_this_day.py:6", "shortDescription": {"text": "Legacy-named symbol `rest_v1` in pantopus-seeder/src/sources/on_this_day.py:6"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ea4e244b268aa55d", "name": "Commented-code block (7 lines) in pantopus-seeder/src/handlers/sports_national_fetcher.py:42", "shortDescription": {"text": "Commented-code block (7 lines) in pantopus-seeder/src/handlers/sports_national_fetcher.py: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-96f041bdce4ff0d0", "name": "Commented-code block (5 lines) in pantopus-seeder/src/handlers/sports_poster.py:156", "shortDescription": {"text": "Commented-code block (5 lines) in pantopus-seeder/src/handlers/sports_poster.py:156"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a31fb917a34afe63", "name": "Commented-code block (6 lines) in backend/app.js:360", "shortDescription": {"text": "Commented-code block (6 lines) in backend/app.js:360"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3b1ff8a53411a8cf", "name": "Commented-code block (6 lines) in backend/tests/homePrivacy.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in backend/tests/homePrivacy.test.js: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-98ef5378199787d7", "name": "Commented-code block (6 lines) in backend/tests/paysCriticalRoutes.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in backend/tests/paysCriticalRoutes.test.js: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-12d115d3efd2c61e", "name": "Commented-code block (5 lines) in backend/tests/mailDay.test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/mailDay.test.js: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-93eb6ae5c7107a15", "name": "Commented-code block (6 lines) in backend/tests/guestPass.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in backend/tests/guestPass.test.js: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-adc0f08a7952ac49", "name": "Commented-code block (6 lines) in backend/tests/lockdown.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in backend/tests/lockdown.test.js: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-263b96c2f127ed64", "name": "Commented-code block (9 lines) in backend/tests/transferRecovery.test.js:1", "shortDescription": {"text": "Commented-code block (9 lines) in backend/tests/transferRecovery.test.js: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-e3dc85591786b099", "name": "Commented-code block (5 lines) in backend/tests/visibilityPolicy.test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/visibilityPolicy.test.js: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-ba4da3cf1707f391", "name": "Commented-code block (7 lines) in backend/tests/placeIntelligence.endpoint.test.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in backend/tests/placeIntelligence.endpoint.test.js: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-8f3454ea2d816640", "name": "Commented-code block (6 lines) in backend/tests/scopedGrant.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in backend/tests/scopedGrant.test.js: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-8533982f342ca10d", "name": "Commented-code block (7 lines) in backend/tests/homeMaintenance.test.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in backend/tests/homeMaintenance.test.js: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-66904af95e6432fe", "name": "Commented-code block (5 lines) in backend/tests/paymentOps.test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/paymentOps.test.js: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-1b2e1bb2a65fb670", "name": "Commented-code block (5 lines) in backend/tests/homePermissions.test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/homePermissions.test.js: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-4cfd25aa634155f4", "name": "Commented-code block (7 lines) in backend/tests/checkoutIntent.test.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in backend/tests/checkoutIntent.test.js: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-319bd0fe83aef152", "name": "Commented-code block (8 lines) in backend/tests/tipMobileParams.test.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in backend/tests/tipMobileParams.test.js: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-c3415eb8271dab92", "name": "Commented-code block (10 lines) in backend/tests/leakyPipe.test.js:1", "shortDescription": {"text": "Commented-code block (10 lines) in backend/tests/leakyPipe.test.js: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-e897f700717f7158", "name": "Commented-code block (9 lines) in backend/tests/scaOffSession.test.js:1", "shortDescription": {"text": "Commented-code block (9 lines) in backend/tests/scaOffSession.test.js: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-efcf4524a6251d6f", "name": "Commented-code block (6 lines) in backend/tests/gigCancellation.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in backend/tests/gigCancellation.test.js: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-edc4a3df50783693", "name": "Commented-code block (12 lines) in backend/tests/fullPaymentLifecycle.test.js:1", "shortDescription": {"text": "Commented-code block (12 lines) in backend/tests/fullPaymentLifecycle.test.js: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-0425e12982f18402", "name": "Commented-code block (5 lines) in backend/tests/businessPermissions.test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/businessPermissions.test.js: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-5c4e5d4fdd894a5f", "name": "Commented-code block (7 lines) in backend/tests/withdrawalIdempotency.test.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in backend/tests/withdrawalIdempotency.test.js: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-43f5f35cfc228404", "name": "Commented-code block (6 lines) in backend/tests/seatPermissions.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in backend/tests/seatPermissions.test.js: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-f0430a5afd76c486", "name": "Commented-code block (8 lines) in backend/tests/paymentReliability.test.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in backend/tests/paymentReliability.test.js: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-006352dbbab6885f", "name": "Commented-code block (7 lines) in backend/tests/postTransferRefund.test.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in backend/tests/postTransferRefund.test.js: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-892686717b9c607a", "name": "Commented-code block (5 lines) in backend/tests/paymentStateMachine.test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/paymentStateMachine.test.js: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-1780fd7b3f2fc84c", "name": "Commented-code block (9 lines) in backend/tests/bidAcceptancePayment.test.js:1", "shortDescription": {"text": "Commented-code block (9 lines) in backend/tests/bidAcceptancePayment.test.js: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-92057a9b837faeac", "name": "Commented-code block (10 lines) in backend/tests/connectWithdrawRoutes.test.js:1", "shortDescription": {"text": "Commented-code block (10 lines) in backend/tests/connectWithdrawRoutes.test.js: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-b471ce8e08525088", "name": "Commented-code block (6 lines) in backend/tests/homeProfileV2.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in backend/tests/homeProfileV2.test.js: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-b207bbbbc533c0a6", "name": "Commented-code block (8 lines) in backend/tests/scaOnSession.test.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in backend/tests/scaOnSession.test.js: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-35c9b0227f02aa0a", "name": "Commented-code block (9 lines) in backend/tests/captureRetry.test.js:1", "shortDescription": {"text": "Commented-code block (9 lines) in backend/tests/captureRetry.test.js: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-fb857a57e1940a13", "name": "Commented-code block (10 lines) in backend/tests/timeTravel.test.js:1", "shortDescription": {"text": "Commented-code block (10 lines) in backend/tests/timeTravel.test.js: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-cadd1b2bd9eedd58", "name": "Commented-code block (7 lines) in backend/tests/webhookIdempotency.test.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in backend/tests/webhookIdempotency.test.js: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-941c58030de3866e", "name": "Commented-code block (6 lines) in backend/tests/discoveryScoring.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in backend/tests/discoveryScoring.test.js: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-9f492e52e769993e", "name": "Commented-code block (8 lines) in backend/tests/refundAuthorization.test.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in backend/tests/refundAuthorization.test.js: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-8d4493af156a4dfa", "name": "Legacy-named symbol `claim_phase_v2` in backend/tests/integration/schema-validation.test.js:128", "shortDescription": {"text": "Legacy-named symbol `claim_phase_v2` in backend/tests/integration/schema-validation.test.js:128"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d3ef12d26274f802", "name": "Commented-code block (7 lines) in backend/tests/integration/identityCenter.viewAs.test.js:185", "shortDescription": {"text": "Commented-code block (7 lines) in backend/tests/integration/identityCenter.viewAs.test.js:185"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9a16a14e2ce5f0da", "name": "Commented-code block (5 lines) in backend/tests/integration/audienceProfile.e2e.test.js:46", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/integration/audienceProfile.e2e.test.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-b537deb65ddc82d5", "name": "Commented-code block (6 lines) in backend/tests/integration/personaTier.migration.test.js:147", "shortDescription": {"text": "Commented-code block (6 lines) in backend/tests/integration/personaTier.migration.test.js:147"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f004b676b24b9e87", "name": "Legacy-named symbol `parcel_shadow_v1` in backend/tests/unit/parcelIntelProvider.test.js:160", "shortDescription": {"text": "Legacy-named symbol `parcel_shadow_v1` in backend/tests/unit/parcelIntelProvider.test.js:160"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-44f7835500f0d0cc", "name": "Commented-code block (7 lines) in backend/tests/unit/legacyUiTermsRemoved.test.js:95", "shortDescription": {"text": "Commented-code block (7 lines) in backend/tests/unit/legacyUiTermsRemoved.test.js:95"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b5f8a7b7aa198b10", "name": "Commented-code block (5 lines) in backend/tests/unit/authorityResolution.test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/unit/authorityResolution.test.js: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-193e313f0ffb5a0b", "name": "Legacy-named symbol `address_verification_v1` in backend/tests/unit/mailVendorService.test.js:589", "shortDescription": {"text": "Legacy-named symbol `address_verification_v1` in backend/tests/unit/mailVendorService.test.js:589"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7fe744ac6765027e", "name": "Commented-code block (7 lines) in backend/tests/unit/mailVendorService.test.js:4", "shortDescription": {"text": "Commented-code block (7 lines) in backend/tests/unit/mailVendorService.test.js: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-7b03e3dadb3308c8", "name": "Commented-code block (5 lines) in backend/tests/unit/personaBlockPropagation.test.js:226", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/unit/personaBlockPropagation.test.js:226"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7aab089eca300666", "name": "Legacy-named symbol `find_gigs_nearby_v2` in backend/tests/unit/gigLocationFiltering.test.js:134", "shortDescription": {"text": "Legacy-named symbol `find_gigs_nearby_v2` in backend/tests/unit/gigLocationFiltering.test.js:134"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-442764054d990bd0", "name": "Legacy-named symbol `places_v1` in backend/tests/unit/canonicalAddressService.test.js:74", "shortDescription": {"text": "Legacy-named symbol `places_v1` in backend/tests/unit/canonicalAddressService.test.js:74"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2b2a25b2e8e3452b", "name": "Commented-code block (5 lines) in backend/tests/unit/canonicalAddressDedup.test.js:4", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/unit/canonicalAddressDedup.test.js: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-c6152d17c32b73f8", "name": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/homeOwnershipPhase2Compat.test.js:128", "shortDescription": {"text": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/homeOwnershipPhase2Compat.test.js:128"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f60050c308a10020", "name": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/reconcileHomeHouseholdResolution.test.js:32", "shortDescription": {"text": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/reconcileHomeHouseholdResolution.test.js:32"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0b7f33408d386dcc", "name": "Commented-code block (6 lines) in backend/tests/unit/verifyTokenCache.test.js:113", "shortDescription": {"text": "Commented-code block (6 lines) in backend/tests/unit/verifyTokenCache.test.js:113"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1096acfc812f0c90", "name": "Commented-code block (7 lines) in backend/tests/unit/landlordAuthorityPipeline.test.js:4", "shortDescription": {"text": "Commented-code block (7 lines) in backend/tests/unit/landlordAuthorityPipeline.test.js: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-f799001ac9d1c6d3", "name": "Commented-code block (8 lines) in backend/tests/unit/identityFirewallPrivacy.test.js:823", "shortDescription": {"text": "Commented-code block (8 lines) in backend/tests/unit/identityFirewallPrivacy.test.js:823"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-35681a6f60511a65", "name": "Legacy-named symbol `places_v1` in backend/tests/unit/addressPlaceProviderShadow.test.js:84", "shortDescription": {"text": "Legacy-named symbol `places_v1` in backend/tests/unit/addressPlaceProviderShadow.test.js:84"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-eb5aff4330ea05d2", "name": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/homeInviteTokens.test.js:267", "shortDescription": {"text": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/homeInviteTokens.test.js:267"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fcb4478774c53706", "name": "Legacy-named symbol `period_unused` in backend/tests/unit/personaMembershipLifecycle.test.js:454", "shortDescription": {"text": "Legacy-named symbol `period_unused` in backend/tests/unit/personaMembershipLifecycle.test.js:454"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2adab0d59ea1cb48", "name": "Legacy-named symbol `places_v1` in backend/tests/unit/addressDecisionEngineProviderEnforcement.test.js:56", "shortDescription": {"text": "Legacy-named symbol `places_v1` in backend/tests/unit/addressDecisionEngineProviderEnforcement.test.js:56"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-13aac12adf49a98a", "name": "Commented-code block (7 lines) in backend/tests/unit/occupancyAttachPipeline.test.js:4", "shortDescription": {"text": "Commented-code block (7 lines) in backend/tests/unit/occupancyAttachPipeline.test.js: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-2eda75faa092333d", "name": "Commented-code block (6 lines) in backend/tests/unit/homePermissions.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in backend/tests/unit/homePermissions.test.js: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-eb7df0d4cf470e51", "name": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/homeClaimComparisonService.test.js:47", "shortDescription": {"text": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/homeClaimComparisonService.test.js:47"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2d9e4ed31968200f", "name": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/expireInitiatedHomeClaims.test.js:28", "shortDescription": {"text": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/expireInitiatedHomeClaims.test.js:28"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a110d5a84554a0cb", "name": "Legacy-named symbol `price_member_v1` in backend/tests/unit/personaWebhooks.test.js:96", "shortDescription": {"text": "Legacy-named symbol `price_member_v1` in backend/tests/unit/personaWebhooks.test.js:96"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0f05f864f6bc9b89", "name": "Commented-code block (7 lines) in backend/tests/unit/legacyIdentityAliasesRemoved.test.js:172", "shortDescription": {"text": "Commented-code block (7 lines) in backend/tests/unit/legacyIdentityAliasesRemoved.test.js:172"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6bd8573a07e55807", "name": "Legacy-named symbol `places_v1` in backend/tests/unit/addressDecisionEngineParcelEnforcement.test.js:58", "shortDescription": {"text": "Legacy-named symbol `places_v1` in backend/tests/unit/addressDecisionEngineParcelEnforcement.test.js:58"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-92e8b82166f9d9d0", "name": "Legacy-named symbol `us_enrichment_secondary_v1` in backend/tests/unit/homeCheckAddress.test.js:123", "shortDescription": {"text": "Legacy-named symbol `us_enrichment_secondary_v1` in backend/tests/unit/homeCheckAddress.test.js:123"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa41aa7339f0f2c1", "name": "Legacy-named symbol `us_enrichment_secondary_v1` in backend/tests/unit/secondaryAddressProvider.test.js:119", "shortDescription": {"text": "Legacy-named symbol `us_enrichment_secondary_v1` in backend/tests/unit/secondaryAddressProvider.test.js:119"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2ae1e4efbdb31063", "name": "Commented-code block (7 lines) in backend/tests/unit/safeCreatorSelect.test.js:177", "shortDescription": {"text": "Commented-code block (7 lines) in backend/tests/unit/safeCreatorSelect.test.js:177"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f4cfe033ac78e5dc", "name": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/homeClaimCompatService.test.js:35", "shortDescription": {"text": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/homeClaimCompatService.test.js:35"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c6e47edc3240f034", "name": "Legacy-named symbol `us_enrichment_secondary_v1` in backend/tests/unit/addressValidationRoutes.test.js:316", "shortDescription": {"text": "Legacy-named symbol `us_enrichment_secondary_v1` in backend/tests/unit/addressValidationRoutes.test.js:316"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7925dd3de0bf1d66", "name": "Commented-code block (5 lines) in backend/tests/unit/businessPermissions.test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/unit/businessPermissions.test.js: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-3072fcbd5b4fcec6", "name": "Legacy-named symbol `places_v1` in backend/tests/unit/addressPlaceProviderEnforcement.test.js:94", "shortDescription": {"text": "Legacy-named symbol `places_v1` in backend/tests/unit/addressPlaceProviderEnforcement.test.js:94"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2309df3e337cd776", "name": "Commented-code block (5 lines) in backend/tests/unit/featureFlag.test.js:123", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/unit/featureFlag.test.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-66db9daeebb51acd", "name": "Legacy-named symbol `find_listings_nearby_v2` in backend/tests/unit/listingsRemoteRegression.test.js:5", "shortDescription": {"text": "Legacy-named symbol `find_listings_nearby_v2` in backend/tests/unit/listingsRemoteRegression.test.js:5"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6cfeca54528ea966", "name": "Legacy-named symbol `places_v1` in backend/tests/unit/placeClassificationProvider.test.js:96", "shortDescription": {"text": "Legacy-named symbol `places_v1` in backend/tests/unit/placeClassificationProvider.test.js:96"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-05bd6e6f24fc297b", "name": "Commented-code block (5 lines) in backend/tests/unit/normalizeAddress.test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/unit/normalizeAddress.test.js: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-7f4a771333847d7e", "name": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/homeClaimRoutingService.test.js:84", "shortDescription": {"text": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/homeClaimRoutingService.test.js:84"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f01eab26489d194a", "name": "Commented-code block (7 lines) in backend/tests/unit/geoLocationE2E.test.js:4", "shortDescription": {"text": "Commented-code block (7 lines) in backend/tests/unit/geoLocationE2E.test.js: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-9c77cfd947d5ee5f", "name": "Legacy-named symbol `parcel_shadow_v1` in backend/tests/unit/addressParcelProviderShadow.test.js:104", "shortDescription": {"text": "Legacy-named symbol `parcel_shadow_v1` in backend/tests/unit/addressParcelProviderShadow.test.js:104"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ada23e2f8c491ce1", "name": "Commented-code block (9 lines) in backend/tests/unit/mailVerificationPipeline.test.js:4", "shortDescription": {"text": "Commented-code block (9 lines) in backend/tests/unit/mailVerificationPipeline.test.js: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-ee349457874a9c53", "name": "Legacy-named symbol `find_gigs_nearby_v2` in backend/tests/unit/gigBrowseSections.test.js:326", "shortDescription": {"text": "Legacy-named symbol `find_gigs_nearby_v2` in backend/tests/unit/gigBrowseSections.test.js:326"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-27bf1016638eb48f", "name": "Legacy-named symbol `places_v1` in backend/tests/unit/addressUnitIntelligenceEnforcement.test.js:90", "shortDescription": {"text": "Legacy-named symbol `places_v1` in backend/tests/unit/addressUnitIntelligenceEnforcement.test.js:90"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6cfb08f1d471eccf", "name": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/homeOwnershipCompareRoute.test.js:82", "shortDescription": {"text": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/homeOwnershipCompareRoute.test.js:82"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-769b02d37c567702", "name": "Legacy-named symbol `fan_old` in backend/tests/unit/personaTier.routes.test.js:349", "shortDescription": {"text": "Legacy-named symbol `fan_old` in backend/tests/unit/personaTier.routes.test.js:349"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-299ef73edfab5794", "name": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/homeClaimReadFlags.test.js:87", "shortDescription": {"text": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/homeClaimReadFlags.test.js:87"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1670442835571ff2", "name": "Legacy-named symbol `price_member_v1` in backend/tests/unit/personaPayments.test.js:287", "shortDescription": {"text": "Legacy-named symbol `price_member_v1` in backend/tests/unit/personaPayments.test.js:287"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-408d3c459a3b203c", "name": "Commented-code block (6 lines) in backend/tests/unit/personaPayments.test.js:14", "shortDescription": {"text": "Commented-code block (6 lines) in backend/tests/unit/personaPayments.test.js:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a043c47051e1ab07", "name": "Legacy-named symbol `us_enrichment_secondary_v1` in backend/tests/unit/addressDecisionEngine.test.js:306", "shortDescription": {"text": "Legacy-named symbol `us_enrichment_secondary_v1` in backend/tests/unit/addressDecisionEngine.test.js:306"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a1a594c29c60d375", "name": "Commented-code block (5 lines) in backend/tests/unit/feedIdentityAuthors.test.js:166", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/unit/feedIdentityAuthors.test.js:166"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ab6f6ec112c20f14", "name": "Commented-code block (5 lines) in backend/tests/unit/verifyTokenCookie.test.js:4", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/unit/verifyTokenCookie.test.js: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-cf947521a02f841f", "name": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/adminOwnershipChallengeReview.test.js:94", "shortDescription": {"text": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/adminOwnershipChallengeReview.test.js:94"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e8f3e7df463559d8", "name": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/homeSecurityPolicy.test.js:63", "shortDescription": {"text": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/homeSecurityPolicy.test.js:63"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dde1428038ee674b", "name": "Legacy-named symbol `parcel_shadow_v1` in backend/tests/unit/addressParcelProviderEnforcement.test.js:95", "shortDescription": {"text": "Legacy-named symbol `parcel_shadow_v1` in backend/tests/unit/addressParcelProviderEnforcement.test.js:95"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-96b9732e952eb181", "name": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/landlordAuthorityService.test.js:137", "shortDescription": {"text": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/landlordAuthorityService.test.js:137"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-741d7c6111d4fd3d", "name": "Commented-code block (6 lines) in backend/tests/unit/privacy/serializerForbiddenKeys.test.js:49", "shortDescription": {"text": "Commented-code block (6 lines) in backend/tests/unit/privacy/serializerForbiddenKeys.test.js:49"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fc0560fb425c2cef", "name": "Legacy-named symbol `places_v1` in backend/tests/fixtures/addressVerificationGroundTruthCorpus.js:57", "shortDescription": {"text": "Legacy-named symbol `places_v1` in backend/tests/fixtures/addressVerificationGroundTruthCorpus.js:57"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5d57eed4fc3fd5d3", "name": "Commented-code block (5 lines) in backend/tests/__mocks__/supabaseAdmin.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in backend/tests/__mocks__/supabaseAdmin.js: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-7f79a1f26134f58d", "name": "Commented-code block (12 lines) in backend/tests/__mocks__/stripeFactory.js:10", "shortDescription": {"text": "Commented-code block (12 lines) in backend/tests/__mocks__/stripeFactory.js:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2033ad8a48c9a41f", "name": "Commented-code block (6 lines) in backend/tests/__mocks__/stripe.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in backend/tests/__mocks__/stripe.js: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-62bb2133e98896bb", "name": "Commented-code block (6 lines) in backend/tests/e2e/chatSocket.test.js:409", "shortDescription": {"text": "Commented-code block (6 lines) in backend/tests/e2e/chatSocket.test.js:409"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a99ab12423303608", "name": "Commented-code block (6 lines) in backend/middleware/csrfProtection.js:4", "shortDescription": {"text": "Commented-code block (6 lines) in backend/middleware/csrfProtection.js: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-1ca49e96e8b3dd46", "name": "Legacy-named symbol `tagged_legacy` in backend/scripts/geocode-provenance-backfill.js:74", "shortDescription": {"text": "Legacy-named symbol `tagged_legacy` in backend/scripts/geocode-provenance-backfill.js:74"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-39c67e22f249cba0", "name": "Legacy-named symbol `get_neighborhood_feed_v2` in backend/scripts/identity-firewall-migration-smoke.js:277", "shortDescription": {"text": "Legacy-named symbol `get_neighborhood_feed_v2` in backend/scripts/identity-firewall-migration-smoke.js:277"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b54ca00337de4380", "name": "Commented-code block (6 lines) in backend/scripts/ci/check-legacy-identity-aliases.js:39", "shortDescription": {"text": "Commented-code block (6 lines) in backend/scripts/ci/check-legacy-identity-aliases.js:39"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-123977ec4f039f95", "name": "Commented-code block (6 lines) in backend/scripts/ci/check-creator-select.js:42", "shortDescription": {"text": "Commented-code block (6 lines) in backend/scripts/ci/check-creator-select.js: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-c8b2da80be7f833f", "name": "Commented-code block (7 lines) in backend/utils/personaQuotas.js:3", "shortDescription": {"text": "Commented-code block (7 lines) in backend/utils/personaQuotas.js: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-09e19c255c4f2c05", "name": "Commented-code block (5 lines) in backend/utils/csrf.js:4", "shortDescription": {"text": "Commented-code block (5 lines) in backend/utils/csrf.js: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-b5b0165fc0d8b972", "name": "Commented-code block (6 lines) in backend/utils/identityProfiles.js:4", "shortDescription": {"text": "Commented-code block (6 lines) in backend/utils/identityProfiles.js: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-afd55a763e8e7a83", "name": "Commented-code block (13 lines) in backend/routes/neighborMessages.js:4", "shortDescription": {"text": "Commented-code block (13 lines) in backend/routes/neighborMessages.js: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-207a6e82467bce6b", "name": "Commented-code block (5 lines) in backend/routes/blocks.js:52", "shortDescription": {"text": "Commented-code block (5 lines) in backend/routes/blocks.js:52"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-40afc51b54881326", "name": "Commented-code block (5 lines) in backend/routes/mailCompose.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in backend/routes/mailCompose.js: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-f4bd40ccf2a38cb7", "name": "Legacy-named symbol `claim_phase_v2` in backend/routes/home.js:1551", "shortDescription": {"text": "Legacy-named symbol `claim_phase_v2` in backend/routes/home.js:1551"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bf13a7a37903c8f1", "name": "Commented-code block (5 lines) in backend/routes/location.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in backend/routes/location.js: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-588286a84b56ab11", "name": "Legacy-named symbol `claim_phase_v2` in backend/routes/admin.js:21", "shortDescription": {"text": "Legacy-named symbol `claim_phase_v2` in backend/routes/admin.js:21"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cb5ef869e9328520", "name": "Commented-code block (5 lines) in backend/routes/admin.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in backend/routes/admin.js: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-37f0cd2908b32528", "name": "Commented-code block (5 lines) in backend/routes/wallet.js:6", "shortDescription": {"text": "Commented-code block (5 lines) in backend/routes/wallet.js: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-84ca458dd913dd3a", "name": "Commented-code block (5 lines) in backend/routes/public.js:14", "shortDescription": {"text": "Commented-code block (5 lines) in backend/routes/public.js:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3672d35e61434595", "name": "Commented-code block (5 lines) in backend/routes/supportTrains.js:2285", "shortDescription": {"text": "Commented-code block (5 lines) in backend/routes/supportTrains.js:2285"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ce33080ca454a763", "name": "Commented-code block (6 lines) in backend/routes/posts.js:884", "shortDescription": {"text": "Commented-code block (6 lines) in backend/routes/posts.js:884"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-93ea1bf5b287c954", "name": "Commented-code block (5 lines) in backend/routes/landlordTenant.js:84", "shortDescription": {"text": "Commented-code block (5 lines) in backend/routes/landlordTenant.js:84"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1515cb4dd6926c78", "name": "Commented-code block (6 lines) in backend/routes/transactionReviews.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in backend/routes/transactionReviews.js: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-ac918fbf460af752", "name": "Legacy-named symbol `find_gigs_nearby_v2` in backend/routes/gigs.js:1842", "shortDescription": {"text": "Legacy-named symbol `find_gigs_nearby_v2` in backend/routes/gigs.js:1842"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-feb6e545374bcb04", "name": "Commented-code block (7 lines) in backend/routes/gigs.js:171", "shortDescription": {"text": "Commented-code block (7 lines) in backend/routes/gigs.js:171"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f71e0899d7eb8b7c", "name": "Legacy-named symbol `period_unused` in backend/routes/personaMembership.js:238", "shortDescription": {"text": "Legacy-named symbol `period_unused` in backend/routes/personaMembership.js:238"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c0059d479d0d85e5", "name": "Commented-code block (6 lines) in backend/routes/personaMembership.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in backend/routes/personaMembership.js: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-4b9b0b57564d1f2f", "name": "Commented-code block (7 lines) in backend/routes/broadcastChannels.js:258", "shortDescription": {"text": "Commented-code block (7 lines) in backend/routes/broadcastChannels.js:258"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-de50f6b26fa30f7d", "name": "Commented-code block (6 lines) in backend/routes/personaTiers.js:11", "shortDescription": {"text": "Commented-code block (6 lines) in backend/routes/personaTiers.js: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-9b11ba6422596c90", "name": "Legacy-named symbol `mailjson_v1` in backend/routes/mailbox.js:74", "shortDescription": {"text": "Legacy-named symbol `mailjson_v1` in backend/routes/mailbox.js:74"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-72b07b634fe8476b", "name": "Commented-code block (5 lines) in backend/routes/personaBlocks.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in backend/routes/personaBlocks.js: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-554d785d027e1d59", "name": "Commented-code block (5 lines) in backend/routes/residencyLetters.js:4", "shortDescription": {"text": "Commented-code block (5 lines) in backend/routes/residencyLetters.js: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-f0b98aa8bab4f082", "name": "Commented-code block (10 lines) in backend/routes/hub.js:1", "shortDescription": {"text": "Commented-code block (10 lines) in backend/routes/hub.js: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-71c90bfccad3cc44", "name": "Commented-code block (8 lines) in backend/routes/personaDms.js:12", "shortDescription": {"text": "Commented-code block (8 lines) in backend/routes/personaDms.js: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-64bd9dab7fb96f83", "name": "Commented-code block (7 lines) in backend/routes/identityCenter.js:294", "shortDescription": {"text": "Commented-code block (7 lines) in backend/routes/identityCenter.js:294"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a828520b259cd994", "name": "Commented-code block (5 lines) in backend/routes/paymentOps.js:35", "shortDescription": {"text": "Commented-code block (5 lines) in backend/routes/paymentOps.js:35"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e99403ba3e984c01", "name": "Commented-code block (8 lines) in backend/routes/personas.js:413", "shortDescription": {"text": "Commented-code block (8 lines) in backend/routes/personas.js:413"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-031e41574b1fabf1", "name": "Legacy-named symbol `claim_phase_v2` in backend/routes/homeOwnership.js:262", "shortDescription": {"text": "Legacy-named symbol `claim_phase_v2` in backend/routes/homeOwnership.js:262"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b793c3aa632fa6ae", "name": "Commented-code block (5 lines) in backend/routes/internal.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in backend/routes/internal.js: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-d33ea6d875452530", "name": "Commented-code block (5 lines) in backend/routes/users.js:2830", "shortDescription": {"text": "Commented-code block (5 lines) in backend/routes/users.js:2830"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-48a36706995ebf66", "name": "Commented-code block (7 lines) in backend/routes/mailboxV2Phase3.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in backend/routes/mailboxV2Phase3.js: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-c9ca3a52d9982888", "name": "Commented-code block (5 lines) in backend/routes/pays.js:605", "shortDescription": {"text": "Commented-code block (5 lines) in backend/routes/pays.js:605"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f3bd8584c4135ab2", "name": "Legacy-named symbol `find_listings_nearby_v2` in backend/routes/listings.js:811", "shortDescription": {"text": "Legacy-named symbol `find_listings_nearby_v2` in backend/routes/listings.js:811"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c2b4069e98869671", "name": "Commented-code block (6 lines) in backend/routes/listings.js:50", "shortDescription": {"text": "Commented-code block (6 lines) in backend/routes/listings.js: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-ac8690e33f7179aa", "name": "Legacy-named symbol `claim_phase_v2` in backend/routes/upload.js:1406", "shortDescription": {"text": "Legacy-named symbol `claim_phase_v2` in backend/routes/upload.js:1406"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fb2ec45560750c73", "name": "Commented-code block (7 lines) in backend/routes/chats.js:707", "shortDescription": {"text": "Commented-code block (7 lines) in backend/routes/chats.js:707"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0ca31fae576a0325", "name": "Commented-code block (5 lines) in backend/serializers/placeIntelligenceSerializer.js:4", "shortDescription": {"text": "Commented-code block (5 lines) in backend/serializers/placeIntelligenceSerializer.js: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-a11757e1d5ab76b4", "name": "Commented-code block (5 lines) in backend/serializers/identitySerializers.js:5", "shortDescription": {"text": "Commented-code block (5 lines) in backend/serializers/identitySerializers.js: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-493a3b7796ae1a7c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 backend/services/placeSectionCache.js:18", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 backend/services/placeSectionCache.js:18"}, "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-63f125e92ff569f7", "name": "Commented-code block (7 lines) in backend/services/personaTierService.js:53", "shortDescription": {"text": "Commented-code block (7 lines) in backend/services/personaTierService.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-90efd42ca2bb2855", "name": "Legacy-named symbol `claim_phase_v2` in backend/services/homeClaimComparisonService.js:33", "shortDescription": {"text": "Legacy-named symbol `claim_phase_v2` in backend/services/homeClaimComparisonService.js:33"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f2c22e2275581b5d", "name": "Commented-code block (5 lines) in backend/services/feedService.js:104", "shortDescription": {"text": "Commented-code block (5 lines) in backend/services/feedService.js:104"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a45c741de82c397f", "name": "Commented-code block (14 lines) in backend/services/personaSubscriptionLifecycleService.js:3", "shortDescription": {"text": "Commented-code block (14 lines) in backend/services/personaSubscriptionLifecycleService.js: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-cbcb7b9ef56413df", "name": "Legacy-named symbol `claim_phase_v2` in backend/services/homeClaimMergeService.js:21", "shortDescription": {"text": "Legacy-named symbol `claim_phase_v2` in backend/services/homeClaimMergeService.js:21"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a6533d12dd95c103", "name": "Commented-code block (5 lines) in backend/services/earningsService.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in backend/services/earningsService.js: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-d0aba2e8ae3e7a5e", "name": "Commented-code block (9 lines) in backend/services/emailService.js:882", "shortDescription": {"text": "Commented-code block (9 lines) in backend/services/emailService.js:882"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1c10d93086f6f27a", "name": "Commented-code block (5 lines) in backend/services/placeSectionAdapters.js:132", "shortDescription": {"text": "Commented-code block (5 lines) in backend/services/placeSectionAdapters.js:132"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dd0cc94126425e54", "name": "`fetch()` without try/.catch or AbortSignal \u2014 backend/services/placeSectionAdapters.js:576", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 backend/services/placeSectionAdapters.js:576"}, "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-b9b1284612e1e21a", "name": "Commented-code block (16 lines) in backend/services/personaBlockService.js:7", "shortDescription": {"text": "Commented-code block (16 lines) in backend/services/personaBlockService.js: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-c276e6f78ca8d059", "name": "`fetch()` without try/.catch or AbortSignal \u2014 backend/services/propertyDataService.js:32", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 backend/services/propertyDataService.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-12c44e5f44d1dc3a", "name": "Commented-code block (5 lines) in backend/services/businessMembershipService.js:4", "shortDescription": {"text": "Commented-code block (5 lines) in backend/services/businessMembershipService.js: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-ff46bbcde7adabc6", "name": "Commented-code block (11 lines) in backend/services/personaPaymentsService.js:8", "shortDescription": {"text": "Commented-code block (11 lines) in backend/services/personaPaymentsService.js: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-c43d509aa288c443", "name": "Legacy-named symbol `claim_phase_v2` in backend/services/homeClaimRoutingService.js:56", "shortDescription": {"text": "Legacy-named symbol `claim_phase_v2` in backend/services/homeClaimRoutingService.js:56"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f53da230c0920fa7", "name": "Commented-code block (12 lines) in backend/services/personaDmService.js:10", "shortDescription": {"text": "Commented-code block (12 lines) in backend/services/personaDmService.js:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7994dbe98a631d23", "name": "Commented-code block (19 lines) in backend/services/notificationService.js:24", "shortDescription": {"text": "Commented-code block (19 lines) in backend/services/notificationService.js:24"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6b0421bffaef04e1", "name": "Commented-code block (11 lines) in backend/services/placeIntelligenceService.js:4", "shortDescription": {"text": "Commented-code block (11 lines) in backend/services/placeIntelligenceService.js: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-b42d58fb7e1acfb9", "name": "Commented-code block (5 lines) in backend/services/notificationTemplateRegistry.js:106", "shortDescription": {"text": "Commented-code block (5 lines) in backend/services/notificationTemplateRegistry.js:106"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-02d500a76ee1a271", "name": "Legacy-named symbol `claim_phase_v2` in backend/services/homeClaimCompatService.js:51", "shortDescription": {"text": "Legacy-named symbol `claim_phase_v2` in backend/services/homeClaimCompatService.js:51"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9f9983da3636e502", "name": "Commented-code block (5 lines) in backend/services/monthlyReceiptService.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in backend/services/monthlyReceiptService.js: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-c59dbed123e27ad1", "name": "Commented-code block (5 lines) in backend/services/alertingService.js:6", "shortDescription": {"text": "Commented-code block (5 lines) in backend/services/alertingService.js: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-8403f9f40034b20a", "name": "Commented-code block (6 lines) in backend/services/walletService.js:5", "shortDescription": {"text": "Commented-code block (6 lines) in backend/services/walletService.js: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-295bc74bcd64aac0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 backend/services/external/airNow.js:120", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 backend/services/external/airNow.js: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-140ac284b472eb93", "name": "`fetch()` without try/.catch or AbortSignal \u2014 backend/services/external/noaa.js:90", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 backend/services/external/noaa.js:90"}, "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-6d3421ae40be7575", "name": "Legacy-named symbol `address_verification_v1` in backend/services/addressValidation/mailVerificationService.js:204", "shortDescription": {"text": "Legacy-named symbol `address_verification_v1` in backend/services/addressValidation/mailVerificationService.js:204"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ecafc0c8e3b8427d", "name": "Legacy-named symbol `places_v1` in backend/services/addressValidation/placeClassificationProvider.js:202", "shortDescription": {"text": "Legacy-named symbol `places_v1` in backend/services/addressValidation/placeClassificationProvider.js:202"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-62465f398145bd1f", "name": "Legacy-named symbol `us_enrichment_secondary_v1` in backend/services/addressValidation/secondaryAddressProvider.js:122", "shortDescription": {"text": "Legacy-named symbol `us_enrichment_secondary_v1` in backend/services/addressValidation/secondaryAddressProvider.js:122"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8f9d2aa3b7125e39", "name": "Legacy-named symbol `parcel_shadow_v1` in backend/services/addressValidation/parcelIntelProvider.js:162", "shortDescription": {"text": "Legacy-named symbol `parcel_shadow_v1` in backend/services/addressValidation/parcelIntelProvider.js:162"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e050c3d6d44d3694", "name": "Commented-code block (5 lines) in backend/services/ai/tools.js:325", "shortDescription": {"text": "Commented-code block (5 lines) in backend/services/ai/tools.js:325"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-26e10089e7fed8ed", "name": "Commented-code block (5 lines) in backend/services/ai/neighborhoodProfileService.js:431", "shortDescription": {"text": "Commented-code block (5 lines) in backend/services/ai/neighborhoodProfileService.js:431"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-74c48e95530244e7", "name": "Commented-code block (5 lines) in backend/services/ai/propertyIntelligenceService.js:30", "shortDescription": {"text": "Commented-code block (5 lines) in backend/services/ai/propertyIntelligenceService.js:30"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1ba9e8dba236e5a6", "name": "Legacy-named symbol `find_listings_nearby_v2` in backend/services/marketplace/marketplaceService.js:5", "shortDescription": {"text": "Legacy-named symbol `find_listings_nearby_v2` in backend/services/marketplace/marketplaceService.js:5"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-40ab98618fdc2f8d", "name": "Commented-code block (5 lines) in backend/services/gig/affinityService.js:7", "shortDescription": {"text": "Commented-code block (5 lines) in backend/services/gig/affinityService.js: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-a349435cbb42d027", "name": "Legacy-named symbol `find_gigs_nearby_v2` in backend/services/gig/clusterService.js:41", "shortDescription": {"text": "Legacy-named symbol `find_gigs_nearby_v2` in backend/services/gig/clusterService.js:41"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ee9678b6f0cd6274", "name": "Commented-code block (5 lines) in backend/services/gig/rankingService.js:4", "shortDescription": {"text": "Commented-code block (5 lines) in backend/services/gig/rankingService.js: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-c14e8f4278b34f5a", "name": "Commented-code block (5 lines) in backend/services/place/densityReader.js:33", "shortDescription": {"text": "Commented-code block (5 lines) in backend/services/place/densityReader.js:33"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c91b5686870be766", "name": "`fetch()` without try/.catch or AbortSignal \u2014 backend/services/geo/mapboxProvider.js:150", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 backend/services/geo/mapboxProvider.js:150"}, "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-cd4437c2bd153193", "name": "`fetch()` without try/.catch or AbortSignal \u2014 backend/services/context/providers/weatherkit.js:292", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 backend/services/context/providers/weatherkit.js:292"}, "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-4826bddb200441dd", "name": "Commented-code block (5 lines) in backend/stripe/paymentStateMachine.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in backend/stripe/paymentStateMachine.js: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-4323a9b9a4709ed6", "name": "Commented-code block (5 lines) in backend/stripe/stripeService.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in backend/stripe/stripeService.js: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-36ec7f92fa181509", "name": "Commented-code block (6 lines) in backend/stripe/stripeWebhooks.js:5", "shortDescription": {"text": "Commented-code block (6 lines) in backend/stripe/stripeWebhooks.js: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-a00a7b31662d945a", "name": "Commented-code block (6 lines) in backend/stripe/disputeService.js:5", "shortDescription": {"text": "Commented-code block (6 lines) in backend/stripe/disputeService.js: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-776d28503ae3849a", "name": "Commented-code block (5 lines) in backend/jobs/mailDayNotification.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in backend/jobs/mailDayNotification.js: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-cb3cc58e6bc863d7", "name": "Commented-code block (5 lines) in backend/jobs/communityModeration.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in backend/jobs/communityModeration.js: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-9059d61c83a48f6c", "name": "Commented-code block (7 lines) in backend/jobs/retryCaptureFailures.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in backend/jobs/retryCaptureFailures.js: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-cd263cb55267647a", "name": "Commented-code block (6 lines) in backend/jobs/vacationHoldExpiry.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in backend/jobs/vacationHoldExpiry.js: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-cf4bab19a7cb9350", "name": "Commented-code block (5 lines) in backend/jobs/expireGigs.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in backend/jobs/expireGigs.js: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-e4d7f50e991a343d", "name": "Commented-code block (7 lines) in backend/jobs/refreshDiscoveryCache.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in backend/jobs/refreshDiscoveryCache.js: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-068b2513e19e2ff4", "name": "Commented-code block (5 lines) in backend/jobs/stampAwarder.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in backend/jobs/stampAwarder.js: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-ea6d343ce88bd670", "name": "Commented-code block (6 lines) in backend/jobs/expirePendingPaymentBids.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in backend/jobs/expirePendingPaymentBids.js: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-713a6caf40dcb82a", "name": "Legacy-named symbol `claim_phase_v2` in backend/jobs/expireInitiatedHomeClaims.js:14", "shortDescription": {"text": "Legacy-named symbol `claim_phase_v2` in backend/jobs/expireInitiatedHomeClaims.js:14"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-eae519b848b5af26", "name": "Commented-code block (6 lines) in backend/jobs/computeReputation.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in backend/jobs/computeReputation.js: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-7972a5341a3fc836", "name": "Commented-code block (8 lines) in backend/jobs/mailInterruptNotification.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in backend/jobs/mailInterruptNotification.js: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-f1ed7417ef529d12", "name": "Commented-code block (6 lines) in backend/jobs/monthlyReceiptJob.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in backend/jobs/monthlyReceiptJob.js: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-7b52fb4be9790a29", "name": "Commented-code block (9 lines) in backend/jobs/earnRiskReview.js:1", "shortDescription": {"text": "Commented-code block (9 lines) in backend/jobs/earnRiskReview.js: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-26637da15d26fb79", "name": "Commented-code block (6 lines) in backend/jobs/computeAvgResponseTime.js:77", "shortDescription": {"text": "Commented-code block (6 lines) in backend/jobs/computeAvgResponseTime.js:77"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0085ae13227ec0be", "name": "Commented-code block (6 lines) in backend/jobs/mailPartyExpiry.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in backend/jobs/mailPartyExpiry.js: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-1ecf412bcde8b903", "name": "Commented-code block (5 lines) in backend/jobs/processPendingTransfers.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in backend/jobs/processPendingTransfers.js: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-4cd4a26351fd5c84", "name": "Commented-code block (5 lines) in backend/jobs/trustAnomalyDetection.js:14", "shortDescription": {"text": "Commented-code block (5 lines) in backend/jobs/trustAnomalyDetection.js:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-71f9ce3e9a0870d5", "name": "Commented-code block (5 lines) in backend/jobs/autoRemindWorker.js:6", "shortDescription": {"text": "Commented-code block (5 lines) in backend/jobs/autoRemindWorker.js: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-6e0fe4030b0687af", "name": "Commented-code block (6 lines) in backend/jobs/processClaimWindows.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in backend/jobs/processClaimWindows.js: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-6808e299633dde83", "name": "Commented-code block (6 lines) in backend/jobs/billBenchmarkRefresh.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in backend/jobs/billBenchmarkRefresh.js: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-2a67ad52cd10faef", "name": "Commented-code block (8 lines) in backend/jobs/vaultWeeklyDigest.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in backend/jobs/vaultWeeklyDigest.js: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-a4c621e33c5d4230", "name": "Commented-code block (5 lines) in backend/jobs/expireListings.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in backend/jobs/expireListings.js: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-df40a8e96f42784d", "name": "Commented-code block (15 lines) in backend/jobs/index.js:6", "shortDescription": {"text": "Commented-code block (15 lines) in backend/jobs/index.js: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-a9eb4e3416a23b0e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 backend/jobs/chatRedactionJob.js:9", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 backend/jobs/chatRedactionJob.js:9"}, "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-bb638a8b79434892", "name": "Commented-code block (5 lines) in backend/jobs/expireOffers.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in backend/jobs/expireOffers.js: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-a8338454ebb0e363", "name": "Commented-code block (7 lines) in backend/jobs/authorizeUpcomingGigs.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in backend/jobs/authorizeUpcomingGigs.js: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-d3f202066e597285", "name": "Commented-code block (6 lines) in backend/jobs/mailEscrowExpiry.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in backend/jobs/mailEscrowExpiry.js: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-d6a6444aabc0c875", "name": "Commented-code block (5 lines) in backend/jobs/supportTrainReminders.js:6", "shortDescription": {"text": "Commented-code block (5 lines) in backend/jobs/supportTrainReminders.js: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-3b5eba59879008c9", "name": "104 env vars used in code but missing from .env.example", "shortDescription": {"text": "104 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `AIRNOW_API_KEY`, `ALERTS_ENABLED`, `API_BASE_URL`, `API_TOKEN`, `APM_SLOW_THRESHOLD_MS`, `APNS_HOST`, `APNS_PRIVATE_KEY_BASE64`, `APP_URLS` + 96 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\npantopus-seeder/src/config/secrets.py:validate_http_urls, pantopus-seeder/src/config/secrets.py:validate_http_urls\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3d99b0a9c9b90ee2", "name": "Dangling fetch: GET https://data.openstates.org/people/current/${st}.csv (backend/services/placeSectionAdapters.js:576)", "shortDescription": {"text": "Dangling fetch: GET https://data.openstates.org/people/current/${st}.csv (backend/services/placeSectionAdapters.js:576)"}, "fullDescription": {"text": "`backend/services/placeSectionAdapters.js:576` calls `GET https://data.openstates.org/people/current/${st}.csv` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/data.openstates.org/people/current/<p>.csv`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-143f13e597069f84", "name": "Dangling fetch: POST https://events.pagerduty.com/v2/enqueue (backend/services/alertingService.js:121)", "shortDescription": {"text": "Dangling fetch: POST https://events.pagerduty.com/v2/enqueue (backend/services/alertingService.js:121)"}, "fullDescription": {"text": "`backend/services/alertingService.js:121` calls `POST https://events.pagerduty.com/v2/enqueue` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/events.pagerduty.com/v2/enqueue`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-99ddefa1f80a557d", "name": "Dangling fetch: GET /app/notifications (frontend/apps/web/src/components/AppShell.tsx:301)", "shortDescription": {"text": "Dangling fetch: GET /app/notifications (frontend/apps/web/src/components/AppShell.tsx:301)"}, "fullDescription": {"text": "`frontend/apps/web/src/components/AppShell.tsx:301` calls `GET /app/notifications` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/app/notifications`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-10439a061521b94c", "name": "Dangling fetch: GET /app/hub (frontend/apps/web/src/components/AppShell.tsx:644)", "shortDescription": {"text": "Dangling fetch: GET /app/hub (frontend/apps/web/src/components/AppShell.tsx:644)"}, "fullDescription": {"text": "`frontend/apps/web/src/components/AppShell.tsx:644` calls `GET /app/hub` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/app/hub`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4ace6e8a9fa20b38", "name": "Dangling fetch: GET /app/place (frontend/apps/web/src/components/AppShell.tsx:655)", "shortDescription": {"text": "Dangling fetch: GET /app/place (frontend/apps/web/src/components/AppShell.tsx:655)"}, "fullDescription": {"text": "`frontend/apps/web/src/components/AppShell.tsx:655` calls `GET /app/place` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/app/place`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-98eacdd6179f54ab", "name": "Dangling fetch: GET /app/feed (frontend/apps/web/src/components/AppShell.tsx:667)", "shortDescription": {"text": "Dangling fetch: GET /app/feed (frontend/apps/web/src/components/AppShell.tsx:667)"}, "fullDescription": {"text": "`frontend/apps/web/src/components/AppShell.tsx:667` calls `GET /app/feed` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/app/feed`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8513012239530038", "name": "Dangling fetch: GET /app/gigs (frontend/apps/web/src/components/AppShell.tsx:670)", "shortDescription": {"text": "Dangling fetch: GET /app/gigs (frontend/apps/web/src/components/AppShell.tsx:670)"}, "fullDescription": {"text": "`frontend/apps/web/src/components/AppShell.tsx:670` calls `GET /app/gigs` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/app/gigs`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c067735ee17cdbd0", "name": "Dangling fetch: GET /app/marketplace (frontend/apps/web/src/components/AppShell.tsx:673)", "shortDescription": {"text": "Dangling fetch: GET /app/marketplace (frontend/apps/web/src/components/AppShell.tsx:673)"}, "fullDescription": {"text": "`frontend/apps/web/src/components/AppShell.tsx:673` calls `GET /app/marketplace` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/app/marketplace`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-87969eed6ac40d0e", "name": "Dangling fetch: GET /app/chat (frontend/apps/web/src/components/AppShell.tsx:677)", "shortDescription": {"text": "Dangling fetch: GET /app/chat (frontend/apps/web/src/components/AppShell.tsx:677)"}, "fullDescription": {"text": "`frontend/apps/web/src/components/AppShell.tsx:677` calls `GET /app/chat` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/app/chat`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c1d99fbacf716e78", "name": "Dangling fetch: GET /app/audience (frontend/apps/web/src/components/AppShell.tsx:689)", "shortDescription": {"text": "Dangling fetch: GET /app/audience (frontend/apps/web/src/components/AppShell.tsx:689)"}, "fullDescription": {"text": "`frontend/apps/web/src/components/AppShell.tsx:689` calls `GET /app/audience` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/app/audience`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-aafff3b18a1d7d52", "name": "Dangling fetch: POST /api/activities/support-trains/${supportTrainId}/slots/${slotId}/guest-reserve (frontend/apps/web/s", "shortDescription": {"text": "Dangling fetch: POST /api/activities/support-trains/${supportTrainId}/slots/${slotId}/guest-reserve (frontend/apps/web/src/components/public-share/GuestSignupModal.tsx:91)"}, "fullDescription": {"text": "`frontend/apps/web/src/components/public-share/GuestSignupModal.tsx:91` calls `POST /api/activities/support-trains/${supportTrainId}/slots/${slotId}/guest-reserve` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/activities/support-trains/<p>/slots/<p>/guest-reserve`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-cc39aff249d4a308", "name": "Unused endpoint: USE /api/webhooks/stripe", "shortDescription": {"text": "Unused endpoint: USE /api/webhooks/stripe"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/webhooks/stripe` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-78c1101d0434b3b8", "name": "Unused endpoint: USE /api/v1/webhooks/lob", "shortDescription": {"text": "Unused endpoint: USE /api/v1/webhooks/lob"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/v1/webhooks/lob` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-938ed6d35eaa090b", "name": "Unused endpoint: USE /api/internal/email-inbound", "shortDescription": {"text": "Unused endpoint: USE /api/internal/email-inbound"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/internal/email-inbound` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5baa8971ebe192a1", "name": "Unused endpoint: GET /", "shortDescription": {"text": "Unused endpoint: GET /"}, "fullDescription": {"text": "`backend/app.js` declares `GET /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3d88fbb12d43299d", "name": "Unused endpoint: GET /api/health/metrics", "shortDescription": {"text": "Unused endpoint: GET /api/health/metrics"}, "fullDescription": {"text": "`backend/app.js` declares `GET /api/health/metrics` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dde3adb27bf7eebe", "name": "Unused endpoint: USE /api", "shortDescription": {"text": "Unused endpoint: USE /api"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f8242ba07247d2f8", "name": "Unused endpoint: USE /api/payments", "shortDescription": {"text": "Unused endpoint: USE /api/payments"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/payments` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5d917f1d5d77d899", "name": "Unused endpoint: USE /api/wallet", "shortDescription": {"text": "Unused endpoint: USE /api/wallet"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/wallet` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1be44d2cc9b65154", "name": "Unused endpoint: USE /api/posts", "shortDescription": {"text": "Unused endpoint: USE /api/posts"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/posts` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-001e9cd655ce8831", "name": "Unused endpoint: USE /api/listings", "shortDescription": {"text": "Unused endpoint: USE /api/listings"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/listings` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6bc67f1b28354b74", "name": "Unused endpoint: USE /api/reviews", "shortDescription": {"text": "Unused endpoint: USE /api/reviews"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/reviews` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-efd1cab9257139e8", "name": "Unused endpoint: USE /api/homes", "shortDescription": {"text": "Unused endpoint: USE /api/homes"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/homes` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b75cba749f04049f", "name": "Unused endpoint: USE /api/users/login", "shortDescription": {"text": "Unused endpoint: USE /api/users/login"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/users/login` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1c4b9cf5663d27d9", "name": "Unused endpoint: USE /api/users/register", "shortDescription": {"text": "Unused endpoint: USE /api/users/register"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/users/register` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-446fe4b6ad1a4ff9", "name": "Unused endpoint: USE /api/public", "shortDescription": {"text": "Unused endpoint: USE /api/public"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/public` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4ff40cb10f7c8519", "name": "Unused endpoint: USE /api/users", "shortDescription": {"text": "Unused endpoint: USE /api/users"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/users` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a5f92d493ba35eb3", "name": "Unused endpoint: USE /api/gigs", "shortDescription": {"text": "Unused endpoint: USE /api/gigs"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/gigs` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bb4908c31f69d0c0", "name": "Unused endpoint: USE /api/v2", "shortDescription": {"text": "Unused endpoint: USE /api/v2"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/v2` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-470984750ed2645a", "name": "Unused endpoint: USE /api/mailbox/compose", "shortDescription": {"text": "Unused endpoint: USE /api/mailbox/compose"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/mailbox/compose` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-acb5e11a59bc1c9a", "name": "Unused endpoint: USE /api/mailbox", "shortDescription": {"text": "Unused endpoint: USE /api/mailbox"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/mailbox` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1eab9008dd711d05", "name": "Unused endpoint: USE /api/mailbox/v2/mailday", "shortDescription": {"text": "Unused endpoint: USE /api/mailbox/v2/mailday"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/mailbox/v2/mailday` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9ee858b9d5ab9660", "name": "Unused endpoint: USE /api/mailbox/v2", "shortDescription": {"text": "Unused endpoint: USE /api/mailbox/v2"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/mailbox/v2` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-520f30def3d3d945", "name": "Unused endpoint: USE /api/mailbox/v2/p2", "shortDescription": {"text": "Unused endpoint: USE /api/mailbox/v2/p2"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/mailbox/v2/p2` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-33239beecf80ef6f", "name": "Unused endpoint: USE /api/mailbox/v2/p3", "shortDescription": {"text": "Unused endpoint: USE /api/mailbox/v2/p3"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/mailbox/v2/p3` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8283be3be1b67ea9", "name": "Unused endpoint: USE /api/sports", "shortDescription": {"text": "Unused endpoint: USE /api/sports"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/sports` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-15662ab348abba6b", "name": "Unused endpoint: USE /api/files", "shortDescription": {"text": "Unused endpoint: USE /api/files"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/files` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2b92dc87a4256298", "name": "Unused endpoint: USE /api/chat", "shortDescription": {"text": "Unused endpoint: USE /api/chat"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/chat` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-46c26a891155c272", "name": "Unused endpoint: USE /api/debug", "shortDescription": {"text": "Unused endpoint: USE /api/debug"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/debug` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-190b4119129801a1", "name": "Unused endpoint: USE /api/geo", "shortDescription": {"text": "Unused endpoint: USE /api/geo"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/geo` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b2b25e50fd321f7d", "name": "Unused endpoint: USE /api/offers", "shortDescription": {"text": "Unused endpoint: USE /api/offers"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/offers` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c3a8b7932f72b92f", "name": "Unused endpoint: USE /api/notifications", "shortDescription": {"text": "Unused endpoint: USE /api/notifications"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/notifications` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6f643fbf10ab5803", "name": "Unused endpoint: USE /api/upload", "shortDescription": {"text": "Unused endpoint: USE /api/upload"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/upload` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-00b5de7626c81cef", "name": "Unused endpoint: USE /api/transaction-reviews", "shortDescription": {"text": "Unused endpoint: USE /api/transaction-reviews"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/transaction-reviews` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-58156be878bd515a", "name": "Unused endpoint: USE /api/businesses", "shortDescription": {"text": "Unused endpoint: USE /api/businesses"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/businesses` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b23b3e44e550d072", "name": "Unused endpoint: USE /api/b", "shortDescription": {"text": "Unused endpoint: USE /api/b"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/b` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-18d1c34099a11702", "name": "Unused endpoint: USE /api/relationships", "shortDescription": {"text": "Unused endpoint: USE /api/relationships"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/relationships` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4f3b91235806ffaa", "name": "Unused endpoint: USE /api/privacy", "shortDescription": {"text": "Unused endpoint: USE /api/privacy"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/privacy` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-11aa99b3cb3c9679", "name": "Unused endpoint: USE /api/local-profiles", "shortDescription": {"text": "Unused endpoint: USE /api/local-profiles"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/local-profiles` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e1e384f2b41833e6", "name": "Unused endpoint: USE /api/identity-center", "shortDescription": {"text": "Unused endpoint: USE /api/identity-center"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/identity-center` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3b576bc2ccdd2b15", "name": "Unused endpoint: USE /api/identity", "shortDescription": {"text": "Unused endpoint: USE /api/identity"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/identity` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0c4508fcc5f55c3a", "name": "Unused endpoint: USE /api/personas/:id/tiers", "shortDescription": {"text": "Unused endpoint: USE /api/personas/:id/tiers"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/personas/:id/tiers` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-84026a387692d696", "name": "Unused endpoint: USE /api/personas/:id/payments", "shortDescription": {"text": "Unused endpoint: USE /api/personas/:id/payments"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/personas/:id/payments` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0cb54c614402353e", "name": "Unused endpoint: USE /api/personas/:id/dms", "shortDescription": {"text": "Unused endpoint: USE /api/personas/:id/dms"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/personas/:id/dms` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e2f679e02f3f09e1", "name": "Unused endpoint: USE /api/personas/:id/membership", "shortDescription": {"text": "Unused endpoint: USE /api/personas/:id/membership"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/personas/:id/membership` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c2f6d57e7da1c4dd", "name": "Unused endpoint: USE /api/personas/:id", "shortDescription": {"text": "Unused endpoint: USE /api/personas/:id"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/personas/:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-52d9753f51477a16", "name": "Unused endpoint: USE /api/personas", "shortDescription": {"text": "Unused endpoint: USE /api/personas"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/personas` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7e18b3d5481ebb7e", "name": "Unused endpoint: USE /api/broadcast", "shortDescription": {"text": "Unused endpoint: USE /api/broadcast"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/broadcast` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4ad91b5641328a9a", "name": "Unused endpoint: USE /api/professional", "shortDescription": {"text": "Unused endpoint: USE /api/professional"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/professional` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-646386c047bee8dd", "name": "Unused endpoint: USE /api/hub", "shortDescription": {"text": "Unused endpoint: USE /api/hub"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/hub` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-448cb055ad3dd1d0", "name": "Unused endpoint: USE /api/location", "shortDescription": {"text": "Unused endpoint: USE /api/location"}, "fullDescription": {"text": "`backend/app.js` declares `USE /api/location` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/22593"}, "properties": {"repository": "WangPantopus/pantopus", "repoUrl": "https://github.com/WangPantopus/pantopus", "branch": "main"}, "results": [{"ruleId": "scanner-a41e3a86317a9f0b", "level": "note", "message": {"text": "Possibly dead Python function: clear_cache"}, "properties": {"repobilityId": "089acf3efecdf10a", "scanner": "scanner-primary", "fingerprint": "a41e3a86317a9f0b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pantopus-seeder/src/config/secrets.py:149"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3059eb03bb961984", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/FileUpload.tsx:220"}, "properties": {"repobilityId": "6639b83b97d3430a", "scanner": "scanner-primary", "fingerprint": "3059eb03bb961984", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-986f4826a0c4b446", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/PageHeader.tsx:30"}, "properties": {"repobilityId": "f718b95f399b5623", "scanner": "scanner-primary", "fingerprint": "986f4826a0c4b446", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4b1b34fd737a585f", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 frontend/apps/web/src/components/BidsDrawer.tsx:134"}, "properties": {"repobilityId": "0ee6b5909fe20ff8", "scanner": "scanner-primary", "fingerprint": "4b1b34fd737a585f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-e9cf5ec0b5a2044c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/AppShell.tsx:481"}, "properties": {"repobilityId": "4845c1ed265f2764", "scanner": "scanner-primary", "fingerprint": "e9cf5ec0b5a2044c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9dd1fe8edb91815e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/MediaGallery.tsx:106"}, "properties": {"repobilityId": "70cd5b0c719d5fa8", "scanner": "scanner-primary", "fingerprint": "9dd1fe8edb91815e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8f5f36c5dfe7d751", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/ProfileToggle.tsx:209"}, "properties": {"repobilityId": "bb03a19e6dbfc7c6", "scanner": "scanner-primary", "fingerprint": "8f5f36c5dfe7d751", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bcff1c2cf14323a6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/marketplace-browse/ListingCategoryClusterCard.tsx:76"}, "properties": {"repobilityId": "1269c1d647ea15ee", "scanner": "scanner-primary", "fingerprint": "bcff1c2cf14323a6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-481150f93a5ab52a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/marketplace-browse/MarketplaceDiscoveryFeed.tsx:86"}, "properties": {"repobilityId": "be1f09607caf76d3", "scanner": "scanner-primary", "fingerprint": "481150f93a5ab52a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6aa02459dba71300", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/AssetCard.tsx:52"}, "properties": {"repobilityId": "56f446765175e861", "scanner": "scanner-primary", "fingerprint": "6aa02459dba71300", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-17ff51f6e4abc2e4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/MailItemCard.tsx:135"}, "properties": {"repobilityId": "67a5d9393cc86de2", "scanner": "scanner-primary", "fingerprint": "17ff51f6e4abc2e4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9a9f2b0e40c5efcf", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/OfferCard.tsx:69"}, "properties": {"repobilityId": "064b6ade175d6119", "scanner": "scanner-primary", "fingerprint": "9a9f2b0e40c5efcf", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8b3d1598819daed6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/CounterBanner.tsx:29"}, "properties": {"repobilityId": "02bd0979e7e32d51", "scanner": "scanner-primary", "fingerprint": "8b3d1598819daed6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a4a167b61b79d0a9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/VaultFolderCard.tsx:28"}, "properties": {"repobilityId": "8a3f8cdd59230594", "scanner": "scanner-primary", "fingerprint": "a4a167b61b79d0a9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-eb7668119cc2b35e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/MailItemDetail.tsx:198"}, "properties": {"repobilityId": "a02a7d918098d05c", "scanner": "scanner-primary", "fingerprint": "eb7668119cc2b35e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cde0d6c480af0450", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/apps/web/src/components/mailbox/MailItemDetail.tsx:10"}, "properties": {"repobilityId": "bce7c57979d4a2e5", "scanner": "scanner-primary", "fingerprint": "cde0d6c480af0450", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-260853c28db0136e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/CounterCard.tsx:38"}, "properties": {"repobilityId": "788f0de15c40ab97", "scanner": "scanner-primary", "fingerprint": "260853c28db0136e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2322472fd15f9610", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/BundleCard.tsx:65"}, "properties": {"repobilityId": "e6d6cd7e29e2a327", "scanner": "scanner-primary", "fingerprint": "2322472fd15f9610", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8aef7645a9c96ba7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/StampCard.tsx:47"}, "properties": {"repobilityId": "2d9676a2ba311d02", "scanner": "scanner-primary", "fingerprint": "8aef7645a9c96ba7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2f6128e936558530", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/CouponPipeline.tsx:220"}, "properties": {"repobilityId": "b03d589a0fe3cbb2", "scanner": "scanner-primary", "fingerprint": "2f6128e936558530", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6db73b3e7b7a0552", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/BookletViewer.tsx:85"}, "properties": {"repobilityId": "ccde4de554f40221", "scanner": "scanner-primary", "fingerprint": "6db73b3e7b7a0552", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-87b73d39fda2f865", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/PackageUnboxing.tsx:207"}, "properties": {"repobilityId": "31d851a2c47b26f2", "scanner": "scanner-primary", "fingerprint": "87b73d39fda2f865", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fbac5d1b297b864b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/mailbox/MailboxNav.tsx:79"}, "properties": {"repobilityId": "858301629a65be63", "scanner": "scanner-primary", "fingerprint": "fbac5d1b297b864b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-823ea5b42073c869", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/hub/HubTodayCard.tsx:128"}, "properties": {"repobilityId": "eac49031367ac844", "scanner": "scanner-primary", "fingerprint": "823ea5b42073c869", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-36ca82d3020254b6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/hub/PersonalCard.tsx:30"}, "properties": {"repobilityId": "8915de22dd26a2d9", "scanner": "scanner-primary", "fingerprint": "36ca82d3020254b6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4ca613a0c0c31796", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/hub/ChangeLocationModal.tsx:44"}, "properties": {"repobilityId": "a9785478236d7ca7", "scanner": "scanner-primary", "fingerprint": "4ca613a0c0c31796", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4701c11966c13d1f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/hub/PlaceBriefCard.tsx:212"}, "properties": {"repobilityId": "24ede1ea8c4f62a5", "scanner": "scanner-primary", "fingerprint": "4701c11966c13d1f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7b3ca39a082c3a71", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/hub/HomeCard.tsx:35"}, "properties": {"repobilityId": "99f21a9eb423f731", "scanner": "scanner-primary", "fingerprint": "7b3ca39a082c3a71", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8ebda8ca1c4ddbf4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/hub/HubTopBar.tsx:48"}, "properties": {"repobilityId": "a9869494461afb73", "scanner": "scanner-primary", "fingerprint": "8ebda8ca1c4ddbf4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6e50e3beda2c8abb", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/hub/HubDiscovery.tsx:120"}, "properties": {"repobilityId": "f2e453735e45fe13", "scanner": "scanner-primary", "fingerprint": "6e50e3beda2c8abb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-325e54aecececcc5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/hub/JumpBackIn.tsx:35"}, "properties": {"repobilityId": "f40eb6ae7380de1a", "scanner": "scanner-primary", "fingerprint": "325e54aecececcc5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f38e882fcf52725a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/hub/BusinessCard.tsx:21"}, "properties": {"repobilityId": "28fc1050cdfe7ec7", "scanner": "scanner-primary", "fingerprint": "f38e882fcf52725a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7522b36bb349c082", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/magic-task/UndoToast.tsx:103"}, "properties": {"repobilityId": "ffb9ed03df46a224", "scanner": "scanner-primary", "fingerprint": "7522b36bb349c082", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-83970f1f7a0ade4c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/ai-assistant/AIAssistantView.tsx:91"}, "properties": {"repobilityId": "c7288ab1faefba19", "scanner": "scanner-primary", "fingerprint": "83970f1f7a0ade4c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0466b1c799daab68", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/place/VerifyPromptSheet.tsx:140"}, "properties": {"repobilityId": "755dc24121db1ba0", "scanner": "scanner-primary", "fingerprint": "0466b1c799daab68", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-626129f946d1943d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/place/AddressAutocomplete.tsx:186"}, "properties": {"repobilityId": "6681e35039724ab7", "scanner": "scanner-primary", "fingerprint": "626129f946d1943d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cc615b0cca177579", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/place/PlaceNavRail.tsx:64"}, "properties": {"repobilityId": "0ae68e0a9815ad9a", "scanner": "scanner-primary", "fingerprint": "cc615b0cca177579", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e66141906b55bc25", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/place/detail/YourHomeDetail.tsx:44"}, "properties": {"repobilityId": "14a937118d629e90", "scanner": "scanner-primary", "fingerprint": "e66141906b55bc25", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-49b4a2289011f894", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/place/detail/CivicDetail.tsx:74"}, "properties": {"repobilityId": "2ab6cc31623fa959", "scanner": "scanner-primary", "fingerprint": "49b4a2289011f894", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5d5e0e644eb6ab89", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/place/detail/RiskDetail.tsx:159"}, "properties": {"repobilityId": "52e426febcf5cc47", "scanner": "scanner-primary", "fingerprint": "5d5e0e644eb6ab89", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-35c29197c7578cce", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/place/detail/IdentityDetail.tsx:98"}, "properties": {"repobilityId": "8ccf552cdd219813", "scanner": "scanner-primary", "fingerprint": "35c29197c7578cce", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c8de59c3d742aff3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/place/neighbor-message/NeighborMessageComposeView.tsx:59"}, "properties": {"repobilityId": "de1fe19b2078df40", "scanner": "scanner-primary", "fingerprint": "c8de59c3d742aff3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-63092ee67eef1a09", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/chat/ChatRoomView.tsx:366"}, "properties": {"repobilityId": "1bec91882cdf72d4", "scanner": "scanner-primary", "fingerprint": "63092ee67eef1a09", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-dcba0bd83956c683", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/chat/ListingPickerModal.tsx:200"}, "properties": {"repobilityId": "75a20a9ebc509625", "scanner": "scanner-primary", "fingerprint": "dcba0bd83956c683", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-70917781d418ee72", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/chat/MiniChatView.tsx:132"}, "properties": {"repobilityId": "77239eb3e4988e86", "scanner": "scanner-primary", "fingerprint": "70917781d418ee72", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-30f20b8b2e0b16b8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/chat/MiniConversationList.tsx:203"}, "properties": {"repobilityId": "00947651fca06951", "scanner": "scanner-primary", "fingerprint": "30f20b8b2e0b16b8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-85e332f2c9c7bf51", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 frontend/apps/web/src/components/chat/QuickReactionPicker.tsx:23"}, "properties": {"repobilityId": "a23fe7f5a7b1e7af", "scanner": "scanner-primary", "fingerprint": "85e332f2c9c7bf51", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-bb0c97b07a4ecb3a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/chat/ConversationView.tsx:251"}, "properties": {"repobilityId": "2555ad8add97dea2", "scanner": "scanner-primary", "fingerprint": "bb0c97b07a4ecb3a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-381fa95a39bffa9e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/chat/ChatMessageBubble.tsx:233"}, "properties": {"repobilityId": "b458d6b8789fc692", "scanner": "scanner-primary", "fingerprint": "381fa95a39bffa9e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fcd2956b03bb45d5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/chat/GigPickerModal.tsx:157"}, "properties": {"repobilityId": "e2eb9ee8b04233f7", "scanner": "scanner-primary", "fingerprint": "fcd2956b03bb45d5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d146307ea04e3a2e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/wallet/WalletTransactionList.tsx:156"}, "properties": {"repobilityId": "a9bfd0c4c5dd8026", "scanner": "scanner-primary", "fingerprint": "d146307ea04e3a2e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8f1d17e686915a72", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/feed/CommentThread.tsx:235"}, "properties": {"repobilityId": "8f7f879cbc8a22f4", "scanner": "scanner-primary", "fingerprint": "8f1d17e686915a72", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-100bb7da227bc605", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/feed/NearbyProvidersCard.tsx:57"}, "properties": {"repobilityId": "8d233cdc27751fb5", "scanner": "scanner-primary", "fingerprint": "100bb7da227bc605", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-afc65f61380ecb89", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/feed/PostDetailPanel.tsx:362"}, "properties": {"repobilityId": "1d7b0f9d87727aab", "scanner": "scanner-primary", "fingerprint": "afc65f61380ecb89", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b8776549d9c26930", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/feed/FeedHeader.tsx:47"}, "properties": {"repobilityId": "6ba84474c8f9c7cc", "scanner": "scanner-primary", "fingerprint": "b8776549d9c26930", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b4fecbb68e4e3027", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/feed/PostLocationPicker.tsx:229"}, "properties": {"repobilityId": "44bb79809a2e4e80", "scanner": "scanner-primary", "fingerprint": "b4fecbb68e4e3027", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b9a7548d41c05590", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/feed/SportsEventModule.tsx:29"}, "properties": {"repobilityId": "1d8a2cefa1ff2820", "scanner": "scanner-primary", "fingerprint": "b9a7548d41c05590", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-06a1cee975517b5b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/feed/PostCard.tsx:174"}, "properties": {"repobilityId": "c1a123590630d76b", "scanner": "scanner-primary", "fingerprint": "06a1cee975517b5b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-815c5bf21d1d4b2a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/endorsement/EndorsementButton.tsx:204"}, "properties": {"repobilityId": "eaf05b549dff1e27", "scanner": "scanner-primary", "fingerprint": "815c5bf21d1d4b2a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cce625fee233d9cf", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-detail-v2/OfferCardV2.tsx:47"}, "properties": {"repobilityId": "f78ccb273e5039bb", "scanner": "scanner-primary", "fingerprint": "cce625fee233d9cf", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7920bcb6077c012e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-detail-v2/ActiveTaskPanel.tsx:222"}, "properties": {"repobilityId": "c2e89be69e105898", "scanner": "scanner-primary", "fingerprint": "7920bcb6077c012e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6883c2fd18b21870", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/discover/DiscoverMap.tsx:573"}, "properties": {"repobilityId": "100dc14e44735856", "scanner": "scanner-primary", "fingerprint": "6883c2fd18b21870", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6328f42bcc68a79b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/discover/UnifiedResultCard.tsx:46"}, "properties": {"repobilityId": "e28650222c13f5ae", "scanner": "scanner-primary", "fingerprint": "6328f42bcc68a79b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f4b9f40d1726bbac", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/discover/BusinessResultCard.tsx:81"}, "properties": {"repobilityId": "61d817ee06dab0c3", "scanner": "scanner-primary", "fingerprint": "f4b9f40d1726bbac", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4db794b108019673", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/discover/InquiryChatDrawer.tsx:92"}, "properties": {"repobilityId": "bd9529a7b27eb7f6", "scanner": "scanner-primary", "fingerprint": "4db794b108019673", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-46f6cd7f833aa9db", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/VendorsTab.tsx:260"}, "properties": {"repobilityId": "4a9a1465045d1a3a", "scanner": "scanner-primary", "fingerprint": "46f6cd7f833aa9db", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bfc0bb509ae273ec", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/SeasonalChecklist.tsx:98"}, "properties": {"repobilityId": "084096dd99f90a99", "scanner": "scanner-primary", "fingerprint": "bfc0bb509ae273ec", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-efcd18abdd21868b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/PackageTracker.tsx:80"}, "properties": {"repobilityId": "ba8db46e57aefabb", "scanner": "scanner-primary", "fingerprint": "efcd18abdd21868b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9c2f059e2f8ddb30", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/HouseholdCalendar.tsx:250"}, "properties": {"repobilityId": "136d771f6cffe269", "scanner": "scanner-primary", "fingerprint": "9c2f059e2f8ddb30", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3a7fa3404e95da35", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/TodayCard.tsx:86"}, "properties": {"repobilityId": "242667d6d6d96881", "scanner": "scanner-primary", "fingerprint": "3a7fa3404e95da35", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2d4d006be131117e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/ResidencyClaimsPanel.tsx:116"}, "properties": {"repobilityId": "02fc30d1dbe43a0f", "scanner": "scanner-primary", "fingerprint": "2d4d006be131117e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-83ebd9dfe5963773", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/InviteMemberModal.tsx:274"}, "properties": {"repobilityId": "84aeec87336d2518", "scanner": "scanner-primary", "fingerprint": "83ebd9dfe5963773", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c9ce655702b9e5da", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/HomeHeader.tsx:49"}, "properties": {"repobilityId": "84d720d7929c82b2", "scanner": "scanner-primary", "fingerprint": "c9ce655702b9e5da", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-35664e6753572f77", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/DashboardCard.tsx:40"}, "properties": {"repobilityId": "ac17cdebde173b92", "scanner": "scanner-primary", "fingerprint": "35664e6753572f77", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c4e125d876249a0d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/HealthScoreRing.tsx:126"}, "properties": {"repobilityId": "644d0dfac7d284d6", "scanner": "scanner-primary", "fingerprint": "c4e125d876249a0d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-05594983e0d80dbb", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/settings/TransferAdminWizard.tsx:137"}, "properties": {"repobilityId": "5cff3acea3ef6136", "scanner": "scanner-primary", "fingerprint": "05594983e0d80dbb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cff938029a2cde11", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/TasksCard.tsx:81"}, "properties": {"repobilityId": "c901dca8c5caf1de", "scanner": "scanner-primary", "fingerprint": "cff938029a2cde11", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b868568498458ae1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/DeliveriesCard.tsx:51"}, "properties": {"repobilityId": "07569e6c9e12b50c", "scanner": "scanner-primary", "fingerprint": "b868568498458ae1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8cad52daf37c13c3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/BillsBudgetCard.tsx:48"}, "properties": {"repobilityId": "355c1e04771c4440", "scanner": "scanner-primary", "fingerprint": "8cad52daf37c13c3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1e62626afaed7e6f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/HomeHelpCard.tsx:37"}, "properties": {"repobilityId": "ccb6df82acf1e2a4", "scanner": "scanner-primary", "fingerprint": "1e62626afaed7e6f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c86cdb34966b0c1f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/EmergencyCard.tsx:40"}, "properties": {"repobilityId": "20beed583a075167", "scanner": "scanner-primary", "fingerprint": "c86cdb34966b0c1f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3d266eef7537d489", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/PetsCard.tsx:56"}, "properties": {"repobilityId": "4d37a2da72af5db6", "scanner": "scanner-primary", "fingerprint": "3d266eef7537d489", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-785a28b7040cee84", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/PropertyDetailsCard.tsx:43"}, "properties": {"repobilityId": "f26f62d4711bf98e", "scanner": "scanner-primary", "fingerprint": "785a28b7040cee84", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-167097d0db6e1a54", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/DocsCard.tsx:50"}, "properties": {"repobilityId": "50cb8e5caa1b32c0", "scanner": "scanner-primary", "fingerprint": "167097d0db6e1a54", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-84442cc286cfdd33", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/CalendarCard.tsx:40"}, "properties": {"repobilityId": "e557c1df75d27c0c", "scanner": "scanner-primary", "fingerprint": "84442cc286cfdd33", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7dac72e0b3d8fd38", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/PollsCard.tsx:34"}, "properties": {"repobilityId": "bec3dd6e778d60c8", "scanner": "scanner-primary", "fingerprint": "7dac72e0b3d8fd38", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9a06abfccb26eb54", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/MaintenanceCard.tsx:67"}, "properties": {"repobilityId": "5d5d97411a55d687", "scanner": "scanner-primary", "fingerprint": "9a06abfccb26eb54", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bfc554458415a8f5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/cards/AccessCard.tsx:43"}, "properties": {"repobilityId": "0b665ed926e69e64", "scanner": "scanner-primary", "fingerprint": "bfc554458415a8f5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c963de940b6f7827", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/share/ShareCenter.tsx:262"}, "properties": {"repobilityId": "b2a73f64e653b275", "scanner": "scanner-primary", "fingerprint": "c963de940b6f7827", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5fa97a6092829c7c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/share/ScopedShareModal.tsx:168"}, "properties": {"repobilityId": "1e156f8d9f555351", "scanner": "scanner-primary", "fingerprint": "5fa97a6092829c7c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6eeb9c7e1bb3a6d4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/share/CreateGuestPass.tsx:490"}, "properties": {"repobilityId": "498d2243a681f8b1", "scanner": "scanner-primary", "fingerprint": "6eeb9c7e1bb3a6d4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e3d8694df0d477d3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/home/members/InviteFlow.tsx:279"}, "properties": {"repobilityId": "7e948a6c9abb9840", "scanner": "scanner-primary", "fingerprint": "e3d8694df0d477d3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6e33d690a2c0c16a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-detail/QASection.tsx:134"}, "properties": {"repobilityId": "ac6b81e9135183b2", "scanner": "scanner-primary", "fingerprint": "6e33d690a2c0c16a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2ae49c2fdaa964d3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-detail/LeaveReviewModal.tsx:144"}, "properties": {"repobilityId": "d679bf9e69923a38", "scanner": "scanner-primary", "fingerprint": "2ae49c2fdaa964d3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cdddb1a39d8931a7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-detail/GigMediaGallery.tsx:208"}, "properties": {"repobilityId": "fc9bf1ca8e0bb88b", "scanner": "scanner-primary", "fingerprint": "cdddb1a39d8931a7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1292da3c8c026129", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/business/BusinessPublicProfile.tsx:411"}, "properties": {"repobilityId": "474d7330471091e7", "scanner": "scanner-primary", "fingerprint": "1292da3c8c026129", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5cce4e9ac9cb1abf", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/business/seats/SeatCard.tsx:59"}, "properties": {"repobilityId": "6d6f8db9f5c43d30", "scanner": "scanner-primary", "fingerprint": "5cce4e9ac9cb1abf", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-13f187bc5956b4ed", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/business/tabs/InvoicesTab.tsx:161"}, "properties": {"repobilityId": "93fb69929e379f3b", "scanner": "scanner-primary", "fingerprint": "13f187bc5956b4ed", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c7a18a1566660eb6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/business/tabs/InboxTab.tsx:152"}, "properties": {"repobilityId": "64899816932ff966", "scanner": "scanner-primary", "fingerprint": "c7a18a1566660eb6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0069acc3322375b5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/business/tabs/ActivityTab.tsx:66"}, "properties": {"repobilityId": "e1836c2b5b6f308b", "scanner": "scanner-primary", "fingerprint": "0069acc3322375b5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b7386d1fb5f6a10b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/archetypes/detail/headers/ProfileHeader.tsx:60"}, "properties": {"repobilityId": "970d288fad591172", "scanner": "scanner-primary", "fingerprint": "b7386d1fb5f6a10b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8554f84c6b1365d8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/archetypes/detail/headers/PostAuthorHeader.tsx:61"}, "properties": {"repobilityId": "13e8f071ff1a3bf2", "scanner": "scanner-primary", "fingerprint": "8554f84c6b1365d8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d58bbb9b2f44c150", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/archetypes/place/PlaceSwitcher.tsx:82"}, "properties": {"repobilityId": "d4a7891f23e05617", "scanner": "scanner-primary", "fingerprint": "d58bbb9b2f44c150", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b4cc437116a9550e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/archetypes/place/detail.tsx:51"}, "properties": {"repobilityId": "0c4c1be4c6d662de", "scanner": "scanner-primary", "fingerprint": "b4cc437116a9550e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4d2defd898e80332", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/archetypes/primitives/StatusChipRow.tsx:57"}, "properties": {"repobilityId": "e0aaa0bcf457447e", "scanner": "scanner-primary", "fingerprint": "4d2defd898e80332", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-12153cbb24565ccc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/archetypes/primitives/FileChevronRow.tsx:44"}, "properties": {"repobilityId": "4c0043f69beff402", "scanner": "scanner-primary", "fingerprint": "12153cbb24565ccc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e000b586603c6947", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/archetypes/primitives/AvatarKebabRow.tsx:73"}, "properties": {"repobilityId": "279a8ca53ee6de64", "scanner": "scanner-primary", "fingerprint": "e000b586603c6947", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6206a63afe8c5e84", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/archetypes/primitives/ArchetypePageHeader.tsx:73"}, "properties": {"repobilityId": "00f6d3a4ab3d303f", "scanner": "scanner-primary", "fingerprint": "6206a63afe8c5e84", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a2e31dc92ff45383", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/archetypes/mailboxDetail/MailboxItemDetailArchetype.tsx:173"}, "properties": {"repobilityId": "f1b91a3c24a6d3db", "scanner": "scanner-primary", "fingerprint": "a2e31dc92ff45383", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c01ab325865951d6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/archetypes/wizard/WizardArchetype.tsx:129"}, "properties": {"repobilityId": "9a13c016371d559b", "scanner": "scanner-primary", "fingerprint": "c01ab325865951d6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5afcb49bc7e364c4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/audience/AudienceComposer.tsx:174"}, "properties": {"repobilityId": "53a61a964d450cb1", "scanner": "scanner-primary", "fingerprint": "5afcb49bc7e364c4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ee94fa6b86e482b0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-v2-create/QuickModifiersV2.tsx:367"}, "properties": {"repobilityId": "740ca7a86a031885", "scanner": "scanner-primary", "fingerprint": "ee94fa6b86e482b0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-85f9552269c4efdd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-v2-create/WhereChips.tsx:49"}, "properties": {"repobilityId": "934e45feda859e43", "scanner": "scanner-primary", "fingerprint": "85f9552269c4efdd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2b3b37a2f9ee5fce", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/user/UserIdentityLink.tsx:236"}, "properties": {"repobilityId": "f97b16a8abb72ff3", "scanner": "scanner-primary", "fingerprint": "2b3b37a2f9ee5fce", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-25cb0999b0fda747", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/support-trains/WhereSection.tsx:192"}, "properties": {"repobilityId": "d0da49105c3ce6c1", "scanner": "scanner-primary", "fingerprint": "25cb0999b0fda747", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-29e0b2e9b92d4ad3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/landlord/NoticesTab.tsx:183"}, "properties": {"repobilityId": "9ff950987952e9c6", "scanner": "scanner-primary", "fingerprint": "29e0b2e9b92d4ad3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b55b7362df8cee3b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/landlord/UnitsTab.tsx:375"}, "properties": {"repobilityId": "d79e13827d688e28", "scanner": "scanner-primary", "fingerprint": "b55b7362df8cee3b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f01e5b6e6cddb4a8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/landlord/PropertiesDashboard.tsx:90"}, "properties": {"repobilityId": "769a36de894f4462", "scanner": "scanner-primary", "fingerprint": "f01e5b6e6cddb4a8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-60283d0256e6e355", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/landlord/LeasesTab.tsx:171"}, "properties": {"repobilityId": "542122f9c6643724", "scanner": "scanner-primary", "fingerprint": "60283d0256e6e355", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2605a8e51d450244", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-browse/FeaturedTaskCard.tsx:67"}, "properties": {"repobilityId": "f510d74b2c3db159", "scanner": "scanner-primary", "fingerprint": "2605a8e51d450244", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4b5ccf5a4fa0d788", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-browse/TaskRow.tsx:118"}, "properties": {"repobilityId": "fc485b4dd3e18be8", "scanner": "scanner-primary", "fingerprint": "4b5ccf5a4fa0d788", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a5df87a6532b03d4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-browse/CategoryRail.tsx:164"}, "properties": {"repobilityId": "fed87d1b51b74b2d", "scanner": "scanner-primary", "fingerprint": "a5df87a6532b03d4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e64ea83b21d4b21b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-browse/MapRailInner.tsx:140"}, "properties": {"repobilityId": "ddf39ac38edfa7e8", "scanner": "scanner-primary", "fingerprint": "e64ea83b21d4b21b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-49ef6a1da961511b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/components/gig-browse/SupportTrainRow.tsx:39"}, "properties": {"repobilityId": "2bf5f14e1049661e", "scanner": "scanner-primary", "fingerprint": "49ef6a1da961511b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-883a148af3788e30", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/apps/web/src/contexts/SocketContext.tsx:112"}, "properties": {"repobilityId": "4ca1f02eb46342be", "scanner": "scanner-primary", "fingerprint": "883a148af3788e30", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-eadd42a061befcb5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/persona/[personaHandle]/AudienceProfileClient.tsx:340"}, "properties": {"repobilityId": "df250e36ccb7014c", "scanner": "scanner-primary", "fingerprint": "eadd42a061befcb5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-450dbb1df6bb7e02", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/gigs/GigsMap.tsx:394"}, "properties": {"repobilityId": "f07c7a3645f8ba90", "scanner": "scanner-primary", "fingerprint": "450dbb1df6bb7e02", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9265b7e639588d6d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/gigs/saved/page.tsx:189"}, "properties": {"repobilityId": "5961e54126e3caf7", "scanner": "scanner-primary", "fingerprint": "9265b7e639588d6d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5556a1446d2423de", "level": "note", "message": {"text": "React Flow <MiniMap> without dark background \u2014 frontend/apps/web/src/app/(app)/app/gigs/[id]/page.tsx:674"}, "properties": {"repobilityId": "a4560cb422cd19b5", "scanner": "scanner-primary", "fingerprint": "5556a1446d2423de", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.minimap.no-bg"]}}, {"ruleId": "scanner-89636f51a0242dfc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/gigs/[id]/page.tsx:585"}, "properties": {"repobilityId": "23de4797c5cc7108", "scanner": "scanner-primary", "fingerprint": "89636f51a0242dfc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7606c5bc65017564", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/layout.tsx:161"}, "properties": {"repobilityId": "18f16910f29ed012", "scanner": "scanner-primary", "fingerprint": "7606c5bc65017564", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8001625b27acf796", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/settings/themes/page.tsx:140"}, "properties": {"repobilityId": "10fb379e0ab7d63f", "scanner": "scanner-primary", "fingerprint": "8001625b27acf796", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7ba876cb0a8080d0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/settings/mail-day/page.tsx:235"}, "properties": {"repobilityId": "3c8df6fb38501f86", "scanner": "scanner-primary", "fingerprint": "7ba876cb0a8080d0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-461c4afee948aa13", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/vault/page.tsx:353"}, "properties": {"repobilityId": "26833734a803fdf6", "scanner": "scanner-primary", "fingerprint": "461c4afee948aa13", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7efcf911510ca754", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/vault/[folder_id]/page.tsx:104"}, "properties": {"repobilityId": "531a777c4199a69d", "scanner": "scanner-primary", "fingerprint": "7efcf911510ca754", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-17bd7437cf9458fc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/_legacy_detail/MailDetailContent.tsx:34"}, "properties": {"repobilityId": "48384d8acd6bd8e0", "scanner": "scanner-primary", "fingerprint": "17bd7437cf9458fc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fa64fc3b8219ad1a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/[drawer]/[item_id]/page.tsx:369"}, "properties": {"repobilityId": "8ccc07e733ea9710", "scanner": "scanner-primary", "fingerprint": "fa64fc3b8219ad1a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c31ef8cdb7f70fb1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/records/[asset_id]/page.tsx:112"}, "properties": {"repobilityId": "b02700c559d3ceda", "scanner": "scanner-primary", "fingerprint": "c31ef8cdb7f70fb1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8a330a5f9be99f16", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/counter/page.tsx:123"}, "properties": {"repobilityId": "047aaf3f02690979", "scanner": "scanner-primary", "fingerprint": "8a330a5f9be99f16", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a3384bb73c069088", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/_components/MailListItem.tsx:65"}, "properties": {"repobilityId": "2016b1a36fb0ab6a", "scanner": "scanner-primary", "fingerprint": "a3384bb73c069088", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-055ee06664fd42be", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/mailbox/map/page.tsx:260"}, "properties": {"repobilityId": "44b02f66d0c1eb96", "scanner": "scanner-primary", "fingerprint": "055ee06664fd42be", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-22b32ef28f7cd9de", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/hub/today/page.tsx:192"}, "properties": {"repobilityId": "d1d03a8cd7f1a9f0", "scanner": "scanner-primary", "fingerprint": "22b32ef28f7cd9de", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-539f512eac2eabf2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/marketplace/MarketplaceCarousel.tsx:109"}, "properties": {"repobilityId": "5cedaab10ee8e0e2", "scanner": "scanner-primary", "fingerprint": "539f512eac2eabf2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2d0a58345de4e910", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/marketplace/MarketplaceMap.tsx:480"}, "properties": {"repobilityId": "5b292b8b128c2bb0", "scanner": "scanner-primary", "fingerprint": "2d0a58345de4e910", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7b92a5aa91fb96f3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/marketplace/ListingCard.tsx:169"}, "properties": {"repobilityId": "7b0b82635a1c67db", "scanner": "scanner-primary", "fingerprint": "7b92a5aa91fb96f3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-538f4089cc18fcac", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/marketplace/[id]/messages/page.tsx:115"}, "properties": {"repobilityId": "d2d68c0cf9696f79", "scanner": "scanner-primary", "fingerprint": "538f4089cc18fcac", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-419a3a72fbaa3868", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/marketplace/[id]/_components/OfferModal.tsx:122"}, "properties": {"repobilityId": "a8a79dbb94b8491b", "scanner": "scanner-primary", "fingerprint": "419a3a72fbaa3868", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c5ebfc1a3dd77d92", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/marketplace/[id]/_components/TradeModal.tsx:100"}, "properties": {"repobilityId": "8af7ec9c9ab6870d", "scanner": "scanner-primary", "fingerprint": "c5ebfc1a3dd77d92", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-df9f4cfd2f563671", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/my-gigs/page.tsx:197"}, "properties": {"repobilityId": "e1f0d86f83478fc3", "scanner": "scanner-primary", "fingerprint": "df9f4cfd2f563671", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c2ae999649aae5de", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/persona/page.tsx:972"}, "properties": {"repobilityId": "8c777c60f9af3897", "scanner": "scanner-primary", "fingerprint": "c2ae999649aae5de", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-82455a1a70bc50eb", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/persona/broadcast/page.tsx:309"}, "properties": {"repobilityId": "bf2ad76e0af4280a", "scanner": "scanner-primary", "fingerprint": "82455a1a70bc50eb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ffd3c96877781f91", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/chat/page.tsx:375"}, "properties": {"repobilityId": "b1c0a61903c72f8a", "scanner": "scanner-primary", "fingerprint": "ffd3c96877781f91", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7700383d300f770c", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 frontend/apps/web/src/app/(app)/app/chat/page.tsx:30"}, "properties": {"repobilityId": "f344309c305745ad", "scanner": "scanner-primary", "fingerprint": "7700383d300f770c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-5b4d970c859dfe65", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/chat/new/page.tsx:130"}, "properties": {"repobilityId": "93f17c2eaa725479", "scanner": "scanner-primary", "fingerprint": "5b4d970c859dfe65", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ad012d00353d5116", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/feed/page.tsx:262"}, "properties": {"repobilityId": "d3e758882e35119e", "scanner": "scanner-primary", "fingerprint": "ad012d00353d5116", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f67f7aa0f82dc6d8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/feed/FeedMap.tsx:84"}, "properties": {"repobilityId": "58fe3aa94ed92e5f", "scanner": "scanner-primary", "fingerprint": "f67f7aa0f82dc6d8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f5b4cd4c6ac00c03", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/feed/post/[id]/page.tsx:704"}, "properties": {"repobilityId": "645d332db316f99c", "scanner": "scanner-primary", "fingerprint": "f5b4cd4c6ac00c03", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2df4b9c27297f936", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/identity/page.tsx:383"}, "properties": {"repobilityId": "5d153e92856576bc", "scanner": "scanner-primary", "fingerprint": "2df4b9c27297f936", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b47efca8e5690a0c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/admin/review-claims/page.tsx:267"}, "properties": {"repobilityId": "e42add3f6ccf86ef", "scanner": "scanner-primary", "fingerprint": "b47efca8e5690a0c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-faa7677d08b65e45", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/businesses/page.tsx:91"}, "properties": {"repobilityId": "672a4485b23e9804", "scanner": "scanner-primary", "fingerprint": "faa7677d08b65e45", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-952797add5fbefc7", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/businesses/[id]/dashboard/page.tsx:113"}, "properties": {"repobilityId": "b054b2283917f809", "scanner": "scanner-primary", "fingerprint": "952797add5fbefc7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-00451fd77d4074cc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/businesses/[id]/pages/[pageId]/edit/_components/BlockPalette.tsx:25"}, "properties": {"repobilityId": "bfe381379e9751af", "scanner": "scanner-primary", "fingerprint": "00451fd77d4074cc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4949e25cb263111e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/gigs-v2/GigCardV2.tsx:63"}, "properties": {"repobilityId": "4d73940f612f5453", "scanner": "scanner-primary", "fingerprint": "4949e25cb263111e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-697ec99259de3ca4", "level": "note", "message": {"text": "React Flow <MiniMap> without dark background \u2014 frontend/apps/web/src/app/(app)/app/gigs-v2/[id]/page.tsx:677"}, "properties": {"repobilityId": "6c94cb455112053d", "scanner": "scanner-primary", "fingerprint": "697ec99259de3ca4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.minimap.no-bg"]}}, {"ruleId": "scanner-4a856f0bb59845bd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/gigs-v2/[id]/page.tsx:159"}, "properties": {"repobilityId": "129e83520e61b84a", "scanner": "scanner-primary", "fingerprint": "4a856f0bb59845bd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-468e2888a745344e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/business/[id]/inbox/page.tsx:97"}, "properties": {"repobilityId": "4d08517a3fd319c4", "scanner": "scanner-primary", "fingerprint": "468e2888a745344e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-edf0219cde1b1763", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/homes/find/page.tsx:88"}, "properties": {"repobilityId": "1a3fe29278f13439", "scanner": "scanner-primary", "fingerprint": "edf0219cde1b1763", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f67d51de8d46c9f8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/homes/[id]/owners/page.tsx:85"}, "properties": {"repobilityId": "1dcf008e7415a68b", "scanner": "scanner-primary", "fingerprint": "f67d51de8d46c9f8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d8ca3073a5710615", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/homes/[id]/owners/review-claim/page.tsx:301"}, "properties": {"repobilityId": "8f974947aaec6932", "scanner": "scanner-primary", "fingerprint": "d8ca3073a5710615", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a4dff1133343717c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/homes/[id]/claim-owner/evidence/page.tsx:283"}, "properties": {"repobilityId": "0b857c56cf51c4ac", "scanner": "scanner-primary", "fingerprint": "a4dff1133343717c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-93e78d8f26be21f2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/homes/[id]/docs/page.tsx:91"}, "properties": {"repobilityId": "16ab58a24aef241b", "scanner": "scanner-primary", "fingerprint": "93e78d8f26be21f2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9f6868679d341741", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/homes/[id]/bills/page.tsx:224"}, "properties": {"repobilityId": "d6adddfb8b30aff9", "scanner": "scanner-primary", "fingerprint": "9f6868679d341741", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-89cbc5f87d418a3d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/homes/[id]/members/page.tsx:232"}, "properties": {"repobilityId": "5d3453b7bfbf3fa4", "scanner": "scanner-primary", "fingerprint": "89cbc5f87d418a3d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9129fd9bf7440fc6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/audience/inbox/page.tsx:117"}, "properties": {"repobilityId": "49e28d77a33fd8a5", "scanner": "scanner-primary", "fingerprint": "9129fd9bf7440fc6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d5fb9672754330c4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/saved-listings/page.tsx:174"}, "properties": {"repobilityId": "c11d571ab33b6767", "scanner": "scanner-primary", "fingerprint": "d5fb9672754330c4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0546e2cbdc0722f4", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/offers/page.tsx:172"}, "properties": {"repobilityId": "3f826c53a71a5e3f", "scanner": "scanner-primary", "fingerprint": "0546e2cbdc0722f4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2fa0021a316e3d0f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/profile/page.tsx:366"}, "properties": {"repobilityId": "fdfea18019627ea1", "scanner": "scanner-primary", "fingerprint": "2fa0021a316e3d0f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0aa9492f0428400a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/apps/web/src/app/(app)/app/profile/page.tsx:32"}, "properties": {"repobilityId": "ea79c06bb44c0a9f", "scanner": "scanner-primary", "fingerprint": "0aa9492f0428400a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-17c386f7887c70cd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/profile/settings/blocked/page.tsx:94"}, "properties": {"repobilityId": "01c7cbfbc400a7db", "scanner": "scanner-primary", "fingerprint": "17c386f7887c70cd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bcca13eb78aaed95", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/my-listings/page.tsx:184"}, "properties": {"repobilityId": "2a392d9eedd05447", "scanner": "scanner-primary", "fingerprint": "bcca13eb78aaed95", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c24d2634a0ea09cb", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/support-trains/page.tsx:140"}, "properties": {"repobilityId": "7e1bc972b5872c73", "scanner": "scanner-primary", "fingerprint": "c24d2634a0ea09cb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0e30ce415621ec77", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/support-trains/[id]/page.tsx:119"}, "properties": {"repobilityId": "cc15dbf1faac8fba", "scanner": "scanner-primary", "fingerprint": "0e30ce415621ec77", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7f3397acca3688e2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/support-trains/[id]/manage/page.tsx:189"}, "properties": {"repobilityId": "094ea34d356f9555", "scanner": "scanner-primary", "fingerprint": "7f3397acca3688e2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-53082ffac84054a8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/support-trains/[id]/calendar/page.tsx:175"}, "properties": {"repobilityId": "45042e53baabe7c7", "scanner": "scanner-primary", "fingerprint": "53082ffac84054a8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d853d262a7351fc2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/(app)/app/connections/page.tsx:353"}, "properties": {"repobilityId": "b1305007229f9c2d", "scanner": "scanner-primary", "fingerprint": "d853d262a7351fc2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-23e66c36f0ccdf6d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/support-trains/[id]/page.tsx:120"}, "properties": {"repobilityId": "8d3b46b73cd73d59", "scanner": "scanner-primary", "fingerprint": "23e66c36f0ccdf6d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-93725d3833736d18", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 frontend/apps/web/src/app/guest/[token]/page.tsx:300"}, "properties": {"repobilityId": "3664c1171bccceb7", "scanner": "scanner-primary", "fingerprint": "93725d3833736d18", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-79a8bab3286a8fc8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 frontend/apps/web/src/hooks/usePromoTriggers.ts:233"}, "properties": {"repobilityId": "3bfff204376d8833", "scanner": "scanner-primary", "fingerprint": "79a8bab3286a8fc8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e8eaf061714e73d9", "level": "note", "message": {"text": "React Flow <MiniMap> without dark background \u2014 docs/designs/A17/community.jsx:301"}, "properties": {"repobilityId": "033e392acca83dee", "scanner": "scanner-primary", "fingerprint": "e8eaf061714e73d9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.minimap.no-bg"]}}, {"ruleId": "scanner-514c4e5b3334293b", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 docs/designs/A13/edit-business-frames.jsx:452"}, "properties": {"repobilityId": "dfcbe2182114c6d8", "scanner": "scanner-primary", "fingerprint": "514c4e5b3334293b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-322ca4f44e472c18", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 backend/tests/ai/supportTrainDraft.eval.test.js:48"}, "properties": {"repobilityId": "1802248679c68d3f", "scanner": "scanner-primary", "fingerprint": "322ca4f44e472c18", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0a153015cbc3c0ed", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 backend/scripts/geocode-provenance-backfill.js:110"}, "properties": {"repobilityId": "aa57d9fd39450f84", "scanner": "scanner-primary", "fingerprint": "0a153015cbc3c0ed", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-13439dcf584d1b12", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 backend/scripts/seedBusinesses.js:79"}, "properties": {"repobilityId": "3a027ed4fd26ffc1", "scanner": "scanner-primary", "fingerprint": "13439dcf584d1b12", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-aa491a47805eedef", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 backend/scripts/identity-firewall-live-audit-preset.js:64"}, "properties": {"repobilityId": "4e82ea0371a5ae6a", "scanner": "scanner-primary", "fingerprint": "aa491a47805eedef", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3119faee5acbfe85", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 backend/scripts/p0-2-send-display-name-migration-emails.js:44"}, "properties": {"repobilityId": "4111a95f767a224b", "scanner": "scanner-primary", "fingerprint": "3119faee5acbfe85", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e85bc88d84f3900a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 backend/scripts/push-smoke.js:55"}, "properties": {"repobilityId": "4baa301bd39d74a6", "scanner": "scanner-primary", "fingerprint": "e85bc88d84f3900a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8cb3b70bcdfccc58", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 backend/scripts/identity-firewall-migration-smoke.js:653"}, "properties": {"repobilityId": "5f2c2db3056c6764", "scanner": "scanner-primary", "fingerprint": "8cb3b70bcdfccc58", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-63bf4182e4216765", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 backend/scripts/backfill-business-locations.js:26"}, "properties": {"repobilityId": "f48fa5fcfb3c7a5d", "scanner": "scanner-primary", "fingerprint": "63bf4182e4216765", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4276ad6152dfbac4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 backend/scripts/identity-firewall-raw-user-audit.js:45"}, "properties": {"repobilityId": "8a0b3d4092febcc9", "scanner": "scanner-primary", "fingerprint": "4276ad6152dfbac4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a7587f48626b3c53", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 backend/scripts/identity-firewall-two-user-seed.js:334"}, "properties": {"repobilityId": "0674712a0cdaf6e2", "scanner": "scanner-primary", "fingerprint": "a7587f48626b3c53", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b9114422ec8584d5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 backend/scripts/ci/check-legacy-identity-aliases.js:150"}, "properties": {"repobilityId": "0fc3201b8c7e05bb", "scanner": "scanner-primary", "fingerprint": "b9114422ec8584d5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-771fe8f6c0f9cc21", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 backend/scripts/ci/check-nested-user-selects.js:125"}, "properties": {"repobilityId": "c0690c80ad54aa25", "scanner": "scanner-primary", "fingerprint": "771fe8f6c0f9cc21", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a4e54f15cc17ed16", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 backend/scripts/ci/check-creator-select.js:125"}, "properties": {"repobilityId": "6010b87d6f1997fc", "scanner": "scanner-primary", "fingerprint": "a4e54f15cc17ed16", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-95b850ed8f6332f0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 backend/scripts/ci/check-raw-personal-selects.js:133"}, "properties": {"repobilityId": "ad86c5743f503033", "scanner": "scanner-primary", "fingerprint": "95b850ed8f6332f0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6e7f0d53636a332a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 backend/scripts/ci/check-legacy-ui-terms.js:131"}, "properties": {"repobilityId": "6fcad9de0a2a61e4", "scanner": "scanner-primary", "fingerprint": "6e7f0d53636a332a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-75e2b2f2d0f058c1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 backend/utils/csrf.js:17"}, "properties": {"repobilityId": "521da86115d1746f", "scanner": "scanner-primary", "fingerprint": "75e2b2f2d0f058c1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c6e9dd9456bdd350", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 backend/routes/home.js:1293"}, "properties": {"repobilityId": "a0f4adccb2ac23c9", "scanner": "scanner-primary", "fingerprint": "c6e9dd9456bdd350", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-ab35c9b9c8d81c1f", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 backend/routes/supportTrains.js:3298"}, "properties": {"repobilityId": "f1b12827d788b124", "scanner": "scanner-primary", "fingerprint": "ab35c9b9c8d81c1f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-48e6be764df6a8b4", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 backend/routes/gigs.js:5538"}, "properties": {"repobilityId": "471d0807605d2b1c", "scanner": "scanner-primary", "fingerprint": "48e6be764df6a8b4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-23180455c7eb4aa1", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 backend/routes/professional.js:355"}, "properties": {"repobilityId": "21d9c74d347d0505", "scanner": "scanner-primary", "fingerprint": "23180455c7eb4aa1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-d89c0708a1ae129c", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 backend/routes/personaDms.js:390"}, "properties": {"repobilityId": "cf8c1fe53042cbeb", "scanner": "scanner-primary", "fingerprint": "d89c0708a1ae129c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-e5fa32f51821e036", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 backend/routes/businessSeats.js:566"}, "properties": {"repobilityId": "74c9d1811d7217e8", "scanner": "scanner-primary", "fingerprint": "e5fa32f51821e036", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-0d5ed4722128291f", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 backend/services/geo/mapboxProvider.js:130"}, "properties": {"repobilityId": "c806a58f0efea5f3", "scanner": "scanner-primary", "fingerprint": "0d5ed4722128291f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-7b5528a750b6676f", "level": "warning", "message": {"text": "Privileged port 14 in use"}, "properties": {"repobilityId": "2dbd4b719a1412ff", "scanner": "scanner-primary", "fingerprint": "7b5528a750b6676f", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pantopus-seeder/deploy/template.yaml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-aa8d32339a476289", "level": "warning", "message": {"text": "Privileged port 30 in use"}, "properties": {"repobilityId": "54f172e7d16fc662", "scanner": "scanner-primary", "fingerprint": "aa8d32339a476289", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "pantopus-seeder/deploy/template.yaml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a820547d7c6dc95c", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine"}, "properties": {"repobilityId": "4267a22d520e1501", "scanner": "scanner-primary", "fingerprint": "a820547d7c6dc95c", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/apps/web/Dockerfile"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a820547d7c6dc95c", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine"}, "properties": {"repobilityId": "fd25cc878a47de2e", "scanner": "scanner-primary", "fingerprint": "a820547d7c6dc95c", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/apps/web/Dockerfile"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-1f66ad88286ca30a", "level": "warning", "message": {"text": "Dockerfile runs as root: backend/Dockerfile"}, "properties": {"repobilityId": "7afd2b0e8a8c9eeb", "scanner": "scanner-primary", "fingerprint": "1f66ad88286ca30a", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-3d2a6283f9ebab24", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:20-alpine"}, "properties": {"repobilityId": "e866ff9772e76d62", "scanner": "scanner-primary", "fingerprint": "3d2a6283f9ebab24", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/Dockerfile"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-aa5acaa49eb8315b", "level": "note", "message": {"text": "Containers defined but no K8s/orchestration manifest found"}, "properties": {"repobilityId": "b230ea9b68736081", "scanner": "scanner-primary", "fingerprint": "aa5acaa49eb8315b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["coverage", "deployment"]}}, {"ruleId": "scanner-6ecf43ee2628a273", "level": "warning", "message": {"text": "Insecure pattern 'domparser_html_parse' in frontend/apps/web/src/app/(app)/app/mailbox/_components/MailContentRenderer.tsx:64"}, "properties": {"repobilityId": "a55461e2b0deb4eb", "scanner": "scanner-primary", "fingerprint": "6ecf43ee2628a273", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "domparser_html_parse"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/apps/web/src/app/(app)/app/mailbox/_components/MailContentRenderer.tsx"}, "region": {"startLine": 64}}}]}, {"ruleId": "scanner-3fa90aaa756d24f8", "level": "error", "message": {"text": "Possible secret in frontend/apps/web/src/app/(auth)/register/page.tsx"}, "properties": {"repobilityId": "4f6eb98b5a314184", "scanner": "scanner-primary", "fingerprint": "3fa90aaa756d24f8", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/apps/web/src/app/(auth)/register/page.tsx"}, "region": {"startLine": 116}}}]}, {"ruleId": "scanner-2062d747c0501a40", "level": "error", "message": {"text": "Possible secret in frontend/apps/web/src/app/guest/[token]/page.tsx"}, "properties": {"repobilityId": "d0aa9a593bce5fc3", "scanner": "scanner-primary", "fingerprint": "2062d747c0501a40", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/apps/web/src/app/guest/[token]/page.tsx"}, "region": {"startLine": 407}}}]}, {"ruleId": "scanner-d9d73d265d96f745", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in reference/address anchored features/place-components.jsx:23"}, "properties": {"repobilityId": "5a974d4aca68d78c", "scanner": "scanner-primary", "fingerprint": "d9d73d265d96f745", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "reference/address anchored features/place-components.jsx"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-b943820d7e4db41a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in reference/address anchored features/v1/place-components.jsx:23"}, "properties": {"repobilityId": "aa5531a2d5d69593", "scanner": "scanner-primary", "fingerprint": "b943820d7e4db41a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "reference/address anchored features/v1/place-components.jsx"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-3d8e14dfdc89c231", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in backend/scripts/identity-firewall-live-audit-preset.js:14"}, "properties": {"repobilityId": "f16842be4e5657eb", "scanner": "scanner-primary", "fingerprint": "3d8e14dfdc89c231", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/scripts/identity-firewall-live-audit-preset.js"}, "region": {"startLine": 14}}}]}, {"ruleId": "scanner-d96b2238da4297ae", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in backend/scripts/ci/run-privacy-gates.js:27"}, "properties": {"repobilityId": "d62c6c8bd9e48c58", "scanner": "scanner-primary", "fingerprint": "d96b2238da4297ae", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/scripts/ci/run-privacy-gates.js"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-593057b67a55b4fd", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "143eb649b74916f2", "scanner": "scanner-primary", "fingerprint": "593057b67a55b4fd", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/android-beta.yml"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-593057b67a55b4fd", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "56b7c7906b278deb", "scanner": "scanner-primary", "fingerprint": "593057b67a55b4fd", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/android-beta.yml"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-593057b67a55b4fd", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f4ef298b09e46ff1", "scanner": "scanner-primary", "fingerprint": "593057b67a55b4fd", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/android-beta.yml"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-1c94821082fb8c9b", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "013d387370d89d18", "scanner": "scanner-primary", "fingerprint": "1c94821082fb8c9b", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ios-ci.yml"}, "region": {"startLine": 111}}}]}, {"ruleId": "scanner-1c94821082fb8c9b", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ee00cd0810d71676", "scanner": "scanner-primary", "fingerprint": "1c94821082fb8c9b", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ios-ci.yml"}, "region": {"startLine": 219}}}]}, {"ruleId": "scanner-1c94821082fb8c9b", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ee00cd0810d71676", "scanner": "scanner-primary", "fingerprint": "1c94821082fb8c9b", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ios-ci.yml"}, "region": {"startLine": 247}}}]}, {"ruleId": "scanner-a676ca6e1421dba7", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "88c62429df70cca9", "scanner": "scanner-primary", "fingerprint": "a676ca6e1421dba7", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ios-beta.yml"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-510def1477caf385", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "9a9b35e984463b6e", "scanner": "scanner-primary", "fingerprint": "510def1477caf385", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/android-ci.yml"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-510def1477caf385", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a8bc38993b730477", "scanner": "scanner-primary", "fingerprint": "510def1477caf385", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/android-ci.yml"}, "region": {"startLine": 62}}}]}, {"ruleId": "scanner-510def1477caf385", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "7e4a5806d921cf09", "scanner": "scanner-primary", "fingerprint": "510def1477caf385", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/android-ci.yml"}, "region": {"startLine": 106}}}]}, {"ruleId": "scanner-510def1477caf385", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "7e4a5806d921cf09", "scanner": "scanner-primary", "fingerprint": "510def1477caf385", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/android-ci.yml"}, "region": {"startLine": 117}}}]}, {"ruleId": "scanner-510def1477caf385", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "9a9b35e984463b6e", "scanner": "scanner-primary", "fingerprint": "510def1477caf385", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/android-ci.yml"}, "region": {"startLine": 133}}}]}, {"ruleId": "scanner-510def1477caf385", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a8bc38993b730477", "scanner": "scanner-primary", "fingerprint": "510def1477caf385", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/android-ci.yml"}, "region": {"startLine": 139}}}]}, {"ruleId": "scanner-510def1477caf385", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "48045ae14507eba5", "scanner": "scanner-primary", "fingerprint": "510def1477caf385", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/android-ci.yml"}, "region": {"startLine": 180}}}]}, {"ruleId": "scanner-510def1477caf385", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "7e4a5806d921cf09", "scanner": "scanner-primary", "fingerprint": "510def1477caf385", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/android-ci.yml"}, "region": {"startLine": 197}}}]}, {"ruleId": "scanner-9d7e8d370403d6cd", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "462a369c540056b9", "scanner": "scanner-primary", "fingerprint": "9d7e8d370403d6cd", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-backend.yml"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-9d7e8d370403d6cd", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "54874f9ea561c22a", "scanner": "scanner-primary", "fingerprint": "9d7e8d370403d6cd", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-backend.yml"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-9d7e8d370403d6cd", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ef2edfac9aaab19b", "scanner": "scanner-primary", "fingerprint": "9d7e8d370403d6cd", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-backend.yml"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-9d7e8d370403d6cd", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d7d0c1f340a131a1", "scanner": "scanner-primary", "fingerprint": "9d7e8d370403d6cd", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-backend.yml"}, "region": {"startLine": 52}}}]}, {"ruleId": "scanner-9d7e8d370403d6cd", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ff0d2474c3f3b266", "scanner": "scanner-primary", "fingerprint": "9d7e8d370403d6cd", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-backend.yml"}, "region": {"startLine": 79}}}]}, {"ruleId": "scanner-9d7e8d370403d6cd", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ff0d2474c3f3b266", "scanner": "scanner-primary", "fingerprint": "9d7e8d370403d6cd", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-backend.yml"}, "region": {"startLine": 136}}}]}, {"ruleId": "scanner-067a1d85533e800f", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "031c7ee984062e2f", "scanner": "scanner-primary", "fingerprint": "067a1d85533e800f", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/android-benchmark.yml"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-067a1d85533e800f", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "3ad8b0a8578faf9e", "scanner": "scanner-primary", "fingerprint": "067a1d85533e800f", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/android-benchmark.yml"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-067a1d85533e800f", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "5e89299e4ce06003", "scanner": "scanner-primary", "fingerprint": "067a1d85533e800f", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/android-benchmark.yml"}, "region": {"startLine": 45}}}]}, {"ruleId": "scanner-067a1d85533e800f", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "1d63cdb1a65364de", "scanner": "scanner-primary", "fingerprint": "067a1d85533e800f", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/android-benchmark.yml"}, "region": {"startLine": 76}}}]}, {"ruleId": "scanner-067a1d85533e800f", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "c02e7ffdb3f7c579", "scanner": "scanner-primary", "fingerprint": "067a1d85533e800f", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/android-benchmark.yml"}, "region": {"startLine": 93}}}]}, {"ruleId": "scanner-c94a8db0229d276a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "6d1f51aeadfa262e", "scanner": "scanner-primary", "fingerprint": "c94a8db0229d276a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/rollback-backend.yml"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-c94a8db0229d276a", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "6d1f51aeadfa262e", "scanner": "scanner-primary", "fingerprint": "c94a8db0229d276a", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/rollback-backend.yml"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-61760c2ecc9db2bd", "level": "note", "message": {"text": "Very large file: frontend/apps/web/src/components/AppShell.tsx (945 lines)"}, "properties": {"repobilityId": "3916b18103a4172f", "scanner": "scanner-primary", "fingerprint": "61760c2ecc9db2bd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c9117639eade6ddd", "level": "note", "message": {"text": "Very large file: frontend/apps/web/src/app/(app)/app/persona/page.tsx (1721 lines)"}, "properties": {"repobilityId": "30739e75cb37655c", "scanner": "scanner-primary", "fingerprint": "c9117639eade6ddd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-606c3ce33466a11b", "level": "note", "message": {"text": "Very large file: frontend/apps/web/src/app/(app)/app/homes/new/page.tsx (1172 lines)"}, "properties": {"repobilityId": "ad79b91e05a8d2a2", "scanner": "scanner-primary", "fingerprint": "606c3ce33466a11b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-721a913951a08139", "level": "note", "message": {"text": "Very large file: backend/routes/mailboxV2Phase2.js (1855 lines)"}, "properties": {"repobilityId": "6ba604ffcb6be21a", "scanner": "scanner-primary", "fingerprint": "721a913951a08139", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-eb5de1de85c1f80c", "level": "note", "message": {"text": "Very large file: backend/routes/home.js (7793 lines)"}, "properties": {"repobilityId": "327d774868a60631", "scanner": "scanner-primary", "fingerprint": "eb5de1de85c1f80c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-851544fb5b28b30c", "level": "note", "message": {"text": "Very large file: backend/routes/supportTrains.js (3987 lines)"}, "properties": {"repobilityId": "d7886b71961a94ac", "scanner": "scanner-primary", "fingerprint": "851544fb5b28b30c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2f83d7f651ac13e5", "level": "note", "message": {"text": "Very large file: backend/routes/businesses.js (4871 lines)"}, "properties": {"repobilityId": "36c98bb2f815aa4a", "scanner": "scanner-primary", "fingerprint": "2f83d7f651ac13e5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c1063f6ff79e9310", "level": "note", "message": {"text": "Very large file: backend/routes/posts.js (3359 lines)"}, "properties": {"repobilityId": "1c263ce7d4df6e34", "scanner": "scanner-primary", "fingerprint": "c1063f6ff79e9310", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6aac9aa0d909ef8b", "level": "note", "message": {"text": "Very large file: backend/routes/gigs.js (8859 lines)"}, "properties": {"repobilityId": "8eb9be9eada851bb", "scanner": "scanner-primary", "fingerprint": "6aac9aa0d909ef8b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e0d7a2716b3a8695", "level": "note", "message": {"text": "Very large file: backend/routes/mailbox.js (3164 lines)"}, "properties": {"repobilityId": "2b042ec225bb27ef", "scanner": "scanner-primary", "fingerprint": "e0d7a2716b3a8695", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-49c82e0407617fc8", "level": "note", "message": {"text": "Very large file: backend/routes/personas.js (1807 lines)"}, "properties": {"repobilityId": "155aef5f8ca27c0c", "scanner": "scanner-primary", "fingerprint": "49c82e0407617fc8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a482e8fdea1356fa", "level": "note", "message": {"text": "Very large file: backend/routes/homeOwnership.js (2774 lines)"}, "properties": {"repobilityId": "90e05ea724e82c53", "scanner": "scanner-primary", "fingerprint": "a482e8fdea1356fa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d1a1eec729845165", "level": "note", "message": {"text": "Very large file: backend/routes/users.js (4255 lines)"}, "properties": {"repobilityId": "7682e38ba2e49b4a", "scanner": "scanner-primary", "fingerprint": "d1a1eec729845165", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e7785826fd3c09be", "level": "note", "message": {"text": "Very large file: backend/routes/mailboxV2Phase3.js (1833 lines)"}, "properties": {"repobilityId": "59fd92ca4ff85ecf", "scanner": "scanner-primary", "fingerprint": "e7785826fd3c09be", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-04d8fbf0a2df37b0", "level": "note", "message": {"text": "Very large file: backend/routes/listings.js (2494 lines)"}, "properties": {"repobilityId": "80417c77f4c2f5d5", "scanner": "scanner-primary", "fingerprint": "04d8fbf0a2df37b0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-50dbeedcf10a8ee8", "level": "note", "message": {"text": "Very large file: backend/routes/upload.js (1984 lines)"}, "properties": {"repobilityId": "7a854a926caa496a", "scanner": "scanner-primary", "fingerprint": "50dbeedcf10a8ee8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5a1122fec8e72722", "level": "note", "message": {"text": "Very large file: backend/routes/chats.js (2770 lines)"}, "properties": {"repobilityId": "e2f574eed2202ddd", "scanner": "scanner-primary", "fingerprint": "5a1122fec8e72722", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8c5e85363e9b84ee", "level": "note", "message": {"text": "Very large file: backend/services/feedService.js (1452 lines)"}, "properties": {"repobilityId": "736a101f96fbec19", "scanner": "scanner-primary", "fingerprint": "8c5e85363e9b84ee", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4fe92d868de589ab", "level": "note", "message": {"text": "Very large file: backend/stripe/stripeService.js (1982 lines)"}, "properties": {"repobilityId": "0a454b9a8824ab39", "scanner": "scanner-primary", "fingerprint": "4fe92d868de589ab", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-11448d8cb86e12ac", "level": "note", "message": {"text": "Very large file: backend/stripe/stripeWebhooks.js (2281 lines)"}, "properties": {"repobilityId": "d77bbf60f6f6d3a6", "scanner": "scanner-primary", "fingerprint": "11448d8cb86e12ac", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ea3b5e389d8c9c0f", "level": "note", "message": {"text": "Low test-to-source ratio"}, "properties": {"repobilityId": "ef7b2552cc00a375", "scanner": "scanner-primary", "fingerprint": "ea3b5e389d8c9c0f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["tests"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "d652c68a48bfb619", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-d70a7762dfca3ba4", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: frontend/apps/web/package.json"}, "properties": {"repobilityId": "345a3ff9fba32dd8", "scanner": "scanner-primary", "fingerprint": "d70a7762dfca3ba4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/apps/web/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-93386cc7ad4f4e59", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: frontend/packages/ui-utils/package.json"}, "properties": {"repobilityId": "acf2f4ad25d7dc82", "scanner": "scanner-primary", "fingerprint": "93386cc7ad4f4e59", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/packages/ui-utils/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-25adbed1250e42ef", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: frontend/packages/types/package.json"}, "properties": {"repobilityId": "64ea6f6bb2e721c8", "scanner": "scanner-primary", "fingerprint": "25adbed1250e42ef", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/packages/types/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1b87f458637c3f2b", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: frontend/packages/api/package.json"}, "properties": {"repobilityId": "4e42d7d63d5c2814", "scanner": "scanner-primary", "fingerprint": "1b87f458637c3f2b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/packages/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-552f197b91f106ee", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: frontend/packages/utils/package.json"}, "properties": {"repobilityId": "f7b03ee425503da8", "scanner": "scanner-primary", "fingerprint": "552f197b91f106ee", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/packages/utils/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-10aa94e8cdbac449", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: frontend/packages/theme/package.json"}, "properties": {"repobilityId": "524fcd6f3adb73ec", "scanner": "scanner-primary", "fingerprint": "10aa94e8cdbac449", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/packages/theme/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3a092b5c39e242a1", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: backend/package.json"}, "properties": {"repobilityId": "fc853e57ce7048c4", "scanner": "scanner-primary", "fingerprint": "3a092b5c39e242a1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "771d428c67f5200e", "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": "ec2540408866f8f3", "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": "1cbe8e7c9fee7354", "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": "8c1ae9ecc90c505a", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "38d99c431a7e7265", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "a0fefb0364a6f904", "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": "55ffb52a80019e63", "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": "62c80aecb551b5cb", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-2ce473963d125d61", "level": "none", "message": {"text": "Commented-code block (6 lines) in render-new-designs-batch2.mjs:16"}, "properties": {"repobilityId": "07f6aa64d2b3edd4", "scanner": "scanner-primary", "fingerprint": "2ce473963d125d61", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eab776e8abb5f7f4", "level": "none", "message": {"text": "Commented-code block (5 lines) in render-new-designs.mjs:15"}, "properties": {"repobilityId": "75e138635645997c", "scanner": "scanner-primary", "fingerprint": "eab776e8abb5f7f4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d03fe2fedad8cc0b", "level": "none", "message": {"text": "Commented-code block (9 lines) in render-t6-parity.mjs:1"}, "properties": {"repobilityId": "36bf970d7ac4da63", "scanner": "scanner-primary", "fingerprint": "d03fe2fedad8cc0b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-05d6ee02d9d8f2d3", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/apps/web/tests/startFunnel.test.tsx:1"}, "properties": {"repobilityId": "fc571c999e48295a", "scanner": "scanner-primary", "fingerprint": "05d6ee02d9d8f2d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b09eb6d2f9c87b0", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/tests/placeGroupDetail.test.tsx:1"}, "properties": {"repobilityId": "3af22dbb3eaf1e42", "scanner": "scanner-primary", "fingerprint": "9b09eb6d2f9c87b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-34cc315e96acc25a", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/apps/web/tests/neighborMessage.test.tsx:1"}, "properties": {"repobilityId": "5271d13d000a105a", "scanner": "scanner-primary", "fingerprint": "34cc315e96acc25a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bdbc82bb98b6b3e0", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/apps/web/tests/placePulseStream.test.tsx:1"}, "properties": {"repobilityId": "fd05915b4ec0c7de", "scanner": "scanner-primary", "fingerprint": "bdbc82bb98b6b3e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c76542271b96e1d4", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/tests/identityFirewallWeb.test.tsx:62"}, "properties": {"repobilityId": "b8f0eacc60a040b0", "scanner": "scanner-primary", "fingerprint": "c76542271b96e1d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b6d25c6634a8e06", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/tests/e2e/homeOnboarding.spec.ts:9"}, "properties": {"repobilityId": "5a321da9fc7c839d", "scanner": "scanner-primary", "fingerprint": "4b6d25c6634a8e06", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5ace91999a338237", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/types/mailbox.ts:8"}, "properties": {"repobilityId": "e93a00aa100238e4", "scanner": "scanner-primary", "fingerprint": "5ace91999a338237", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a2ce491226ce98b", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/components/AudienceZoneHeader.tsx:3"}, "properties": {"repobilityId": "ee9bf14a78d5a3a6", "scanner": "scanner-primary", "fingerprint": "9a2ce491226ce98b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-15e0b7f8abad0dff", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/components/AppShell.tsx:635"}, "properties": {"repobilityId": "393ef373d89cb6a2", "scanner": "scanner-primary", "fingerprint": "15e0b7f8abad0dff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d540cf36b7bb4927", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/components/place/VerifyPromptSheet.tsx:4"}, "properties": {"repobilityId": "dd6ce7b9f8ed8f6a", "scanner": "scanner-primary", "fingerprint": "d540cf36b7bb4927", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e0bf44f85abd3a05", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/components/place/pendingPlace.ts:4"}, "properties": {"repobilityId": "6b1ef6888a50d179", "scanner": "scanner-primary", "fingerprint": "e0bf44f85abd3a05", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-71afc02571082b7b", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/VerifiedSuccess.tsx:4"}, "properties": {"repobilityId": "88e8e4c32567435a", "scanner": "scanner-primary", "fingerprint": "71afc02571082b7b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e3c73feb60cf54a5", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/components/place/PlaceDashboardView.tsx:4"}, "properties": {"repobilityId": "b2c1d88661319c18", "scanner": "scanner-primary", "fingerprint": "e3c73feb60cf54a5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1894690884c9c07f", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/PendingPlaceSaver.tsx:4"}, "properties": {"repobilityId": "8c15446289a4c640", "scanner": "scanner-primary", "fingerprint": "1894690884c9c07f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eb9b7919ebce963e", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/PlaceIdentitySection.tsx:8"}, "properties": {"repobilityId": "1a9c37c58fbd30a7", "scanner": "scanner-primary", "fingerprint": "eb9b7919ebce963e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-84fdf053dae3e0a0", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/AddressAutocomplete.tsx:4"}, "properties": {"repobilityId": "5d44d5cd8bd228d0", "scanner": "scanner-primary", "fingerprint": "84fdf053dae3e0a0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0a000b003551d895", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/StartFunnel.tsx:4"}, "properties": {"repobilityId": "172ead3680ac8495", "scanner": "scanner-primary", "fingerprint": "0a000b003551d895", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-edafe1dd4f24b069", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/PlaceDashboardSkeleton.tsx:1"}, "properties": {"repobilityId": "62b828277fff3b9b", "scanner": "scanner-primary", "fingerprint": "edafe1dd4f24b069", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-22c317d6f5c2dce8", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/components/place/PlaceShell.tsx:4"}, "properties": {"repobilityId": "969d5ed358b044b3", "scanner": "scanner-primary", "fingerprint": "22c317d6f5c2dce8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b78f24a3246dfa24", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/components/place/PlaceNavRail.tsx:4"}, "properties": {"repobilityId": "96ae5a9e3a1599b2", "scanner": "scanner-primary", "fingerprint": "b78f24a3246dfa24", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-07d6288c9cda8c7b", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/components/place/PlaceDashboard.tsx:4"}, "properties": {"repobilityId": "95bb63be15afd9e0", "scanner": "scanner-primary", "fingerprint": "07d6288c9cda8c7b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1c97fb4abe1472af", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/presentation.tsx:4"}, "properties": {"repobilityId": "d46a22d8e6213f76", "scanner": "scanner-primary", "fingerprint": "1c97fb4abe1472af", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dd8bfcf17a15c31b", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/detail/fields.tsx:1"}, "properties": {"repobilityId": "91754d5fd0a13c92", "scanner": "scanner-primary", "fingerprint": "dd8bfcf17a15c31b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-18eec89e529c23d2", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/apps/web/src/components/place/detail/YourHomeDetail.tsx:1"}, "properties": {"repobilityId": "dede2facdecdf23f", "scanner": "scanner-primary", "fingerprint": "18eec89e529c23d2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-896c71d5e56aa27f", "level": "none", "message": {"text": "Commented-code block (10 lines) in frontend/apps/web/src/components/place/detail/CivicDetail.tsx:1"}, "properties": {"repobilityId": "6b11ae9d6d1176a0", "scanner": "scanner-primary", "fingerprint": "896c71d5e56aa27f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d515fbe62495a766", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/components/place/detail/BlockDetail.tsx:1"}, "properties": {"repobilityId": "61685e44cbc47540", "scanner": "scanner-primary", "fingerprint": "d515fbe62495a766", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3194dc215131a947", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/detail/useLocalDraft.ts:6"}, "properties": {"repobilityId": "d7de8469e7b9d37e", "scanner": "scanner-primary", "fingerprint": "3194dc215131a947", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41ec817bab1b4f72", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/components/place/detail/PlaceSectionDetail.tsx:4"}, "properties": {"repobilityId": "d8239df15eb6549d", "scanner": "scanner-primary", "fingerprint": "41ec817bab1b4f72", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-95ec7173b7f66e68", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/apps/web/src/components/place/detail/RiskDetail.tsx:1"}, "properties": {"repobilityId": "36149290f6cc3c8d", "scanner": "scanner-primary", "fingerprint": "95ec7173b7f66e68", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-49d87cf96705735d", "level": "note", "message": {"text": "Legacy-named symbol `mailjson_v1` in frontend/apps/web/src/components/place/detail/IdentityDetail.tsx:186"}, "properties": {"repobilityId": "8f8821b8be06d90d", "scanner": "scanner-primary", "fingerprint": "49d87cf96705735d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9fdc927fd80f1b37", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/components/place/detail/IdentityDetail.tsx:1"}, "properties": {"repobilityId": "348b2f532469fe44", "scanner": "scanner-primary", "fingerprint": "9fdc927fd80f1b37", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-73a74977dd52ff9e", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/components/place/detail/MoneyDetail.tsx:1"}, "properties": {"repobilityId": "44086ca3323a50f1", "scanner": "scanner-primary", "fingerprint": "73a74977dd52ff9e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-af7339d3c33e5088", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/apps/web/src/components/place/detail/TodayDetail.tsx:1"}, "properties": {"repobilityId": "57793acb189b0763", "scanner": "scanner-primary", "fingerprint": "af7339d3c33e5088", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2f57b11a373642d7", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/apps/web/src/components/place/verify-residency/VerifyResidency.tsx:1"}, "properties": {"repobilityId": "8482bc8f0145f7a9", "scanner": "scanner-primary", "fingerprint": "2f57b11a373642d7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1e1c10ff25724f49", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/components/place/pulse/ranking.ts:4"}, "properties": {"repobilityId": "7db1fe8ba6ec413c", "scanner": "scanner-primary", "fingerprint": "1e1c10ff25724f49", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-635af037263ce5fd", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/components/place/pulse/PulseStreamView.tsx:4"}, "properties": {"repobilityId": "e237ad81e80b699d", "scanner": "scanner-primary", "fingerprint": "635af037263ce5fd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eaef9ee6e6c14bb4", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/components/place/pulse/PulseStream.tsx:4"}, "properties": {"repobilityId": "7e24cceebc8d04df", "scanner": "scanner-primary", "fingerprint": "eaef9ee6e6c14bb4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-98b3de77d71baf03", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/neighbor-message/NeighborMessageReceivedView.tsx:4"}, "properties": {"repobilityId": "7024d4839a706e49", "scanner": "scanner-primary", "fingerprint": "98b3de77d71baf03", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-72854525a0eea3b4", "level": "none", "message": {"text": "Commented-code block (10 lines) in frontend/apps/web/src/components/place/neighbor-message/NeighborMessageCompose.tsx:4"}, "properties": {"repobilityId": "b6cc6663a4c0c152", "scanner": "scanner-primary", "fingerprint": "72854525a0eea3b4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aa662eb782a2ff11", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/place/neighbor-message/icons.ts:4"}, "properties": {"repobilityId": "9add010ff224cd03", "scanner": "scanner-primary", "fingerprint": "aa662eb782a2ff11", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-441d44f293599d07", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/components/ui/FloatingPromoModal.tsx:3"}, "properties": {"repobilityId": "41367e52f8340001", "scanner": "scanner-primary", "fingerprint": "441d44f293599d07", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2be4049dfde85195", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/ui/promo-modal-store.ts:1"}, "properties": {"repobilityId": "24e83068e6aed8b7", "scanner": "scanner-primary", "fingerprint": "2be4049dfde85195", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8637fc6a2e056870", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/magic-task-v2/MagicTaskComposerV2.tsx:157"}, "properties": {"repobilityId": "37c69394c52e5abf", "scanner": "scanner-primary", "fingerprint": "8637fc6a2e056870", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e12bd86b8c60bcdc", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/feed/PostComposer.tsx:279"}, "properties": {"repobilityId": "46e1757664cd6e39", "scanner": "scanner-primary", "fingerprint": "e12bd86b8c60bcdc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c23e6480f8c74050", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/components/home/settings/TransferAdminWizard.tsx:8"}, "properties": {"repobilityId": "85eeaa5a8d99b183", "scanner": "scanner-primary", "fingerprint": "c23e6480f8c74050", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-762bff725f9aee09", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/apps/web/src/components/archetypes/index.ts:1"}, "properties": {"repobilityId": "e49e04f2264b455a", "scanner": "scanner-primary", "fingerprint": "762bff725f9aee09", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-24883cb1e3b2444b", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/archetypes/detail/headers/ProfileHeader.tsx:1"}, "properties": {"repobilityId": "36078ee408ab94f3", "scanner": "scanner-primary", "fingerprint": "24883cb1e3b2444b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-edffeb9d60d4911d", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/components/archetypes/hub/HubArchetype.tsx:16"}, "properties": {"repobilityId": "f95dfc97540df87e", "scanner": "scanner-primary", "fingerprint": "edffeb9d60d4911d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-43b6c516704aa0a4", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/components/archetypes/place/DensityCard.tsx:1"}, "properties": {"repobilityId": "3a3a1ee224ad8094", "scanner": "scanner-primary", "fingerprint": "43b6c516704aa0a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b322844517defcfb", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/archetypes/place/Group.tsx:1"}, "properties": {"repobilityId": "5fd2ff1b7176ae55", "scanner": "scanner-primary", "fingerprint": "b322844517defcfb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad247956e06cbcf3", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/archetypes/place/PlaceSwitcher.tsx:4"}, "properties": {"repobilityId": "2aa358947828c1fd", "scanner": "scanner-primary", "fingerprint": "ad247956e06cbcf3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3e12da33139db4a0", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/components/archetypes/place/detail.tsx:1"}, "properties": {"repobilityId": "a87e19001ae4f405", "scanner": "scanner-primary", "fingerprint": "3e12da33139db4a0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ade7c41d6d03f126", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/archetypes/place/PlaceHeader.tsx:1"}, "properties": {"repobilityId": "e260cc3e48a8d01f", "scanner": "scanner-primary", "fingerprint": "ade7c41d6d03f126", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e3ca88c706871edc", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/archetypes/place/primitives.tsx:4"}, "properties": {"repobilityId": "128d664c24e591e3", "scanner": "scanner-primary", "fingerprint": "e3ca88c706871edc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-43f7e17d36f98605", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/archetypes/place/index.ts:1"}, "properties": {"repobilityId": "54eae088e91e1ebb", "scanner": "scanner-primary", "fingerprint": "43f7e17d36f98605", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-708e5078cfe5edb9", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/components/archetypes/place/LockedCard.tsx:1"}, "properties": {"repobilityId": "f040d062b475f1c3", "scanner": "scanner-primary", "fingerprint": "708e5078cfe5edb9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8f8cf416b25f8c98", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/apps/web/src/components/archetypes/place/HeroCard.tsx:1"}, "properties": {"repobilityId": "cf76f26171e995a8", "scanner": "scanner-primary", "fingerprint": "8f8cf416b25f8c98", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca4dd46cd711d795", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/components/archetypes/place/VerifyBanner.tsx:1"}, "properties": {"repobilityId": "2b8d89de81ac4cf6", "scanner": "scanner-primary", "fingerprint": "ca4dd46cd711d795", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-838d8c04f76186c0", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/apps/web/src/components/archetypes/list/ListArchetype.tsx:1"}, "properties": {"repobilityId": "7c6245c935233b91", "scanner": "scanner-primary", "fingerprint": "838d8c04f76186c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-16313e41da6999bf", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/components/archetypes/primitives/ValidatedField.tsx:1"}, "properties": {"repobilityId": "37cbc1ee1954a1a2", "scanner": "scanner-primary", "fingerprint": "16313e41da6999bf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c8e4cde174ef5820", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/components/archetypes/primitives/ArchetypePageHeader.tsx:1"}, "properties": {"repobilityId": "b03660514764df74", "scanner": "scanner-primary", "fingerprint": "c8e4cde174ef5820", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-52568824c72fe427", "level": "none", "message": {"text": "Commented-code block (10 lines) in frontend/apps/web/src/components/archetypes/mailboxDetail/MailboxItemDetailArchetype.tsx:4"}, "properties": {"repobilityId": "eb58984b9d8e807a", "scanner": "scanner-primary", "fingerprint": "52568824c72fe427", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c050c19596e87a9e", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/components/archetypes/wizard/WizardArchetype.tsx:4"}, "properties": {"repobilityId": "88ae34b42f21e264", "scanner": "scanner-primary", "fingerprint": "c050c19596e87a9e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-24f99dd913c23319", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/apps/web/src/components/map/BaseMap.tsx:104"}, "properties": {"repobilityId": "9f3b33410a2da886", "scanner": "scanner-primary", "fingerprint": "24f99dd913c23319", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a28b87d9b966606f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/apps/web/src/components/map/OfflineIndicator.tsx:43"}, "properties": {"repobilityId": "1cf3ce2d6a3369da", "scanner": "scanner-primary", "fingerprint": "a28b87d9b966606f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7c7c22147ef04add", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/app/shared/[token]/page.tsx:11"}, "properties": {"repobilityId": "1b08fc366dd329a0", "scanner": "scanner-primary", "fingerprint": "7c7c22147ef04add", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-74975f5dd3378807", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/app/persona/[personaHandle]/AudienceProfileClient.tsx:242"}, "properties": {"repobilityId": "4d831056fa0ecf80", "scanner": "scanner-primary", "fingerprint": "74975f5dd3378807", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c04f8f8a8cf99377", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/app/verify-residency/page.tsx:1"}, "properties": {"repobilityId": "811d7070c65503d9", "scanner": "scanner-primary", "fingerprint": "c04f8f8a8cf99377", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8558895b3d3556ad", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/app/verify-residency/[code]/page.tsx:1"}, "properties": {"repobilityId": "f0a197361f9427c5", "scanner": "scanner-primary", "fingerprint": "8558895b3d3556ad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f52dc2ec029fe604", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/app/dev/layout.tsx:1"}, "properties": {"repobilityId": "f7041b18ed841dfe", "scanner": "scanner-primary", "fingerprint": "f52dc2ec029fe604", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d0904796183cf0f", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/app/dev/place/page.tsx:3"}, "properties": {"repobilityId": "9ada70708f3c03db", "scanner": "scanner-primary", "fingerprint": "0d0904796183cf0f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0385c7e3069fda5c", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/app/dev/place-pulse/page.tsx:3"}, "properties": {"repobilityId": "c0dccf60c0618381", "scanner": "scanner-primary", "fingerprint": "0385c7e3069fda5c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-357812e6fb2f638e", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/app/dev/place-detail/page.tsx:3"}, "properties": {"repobilityId": "70b050f46942b392", "scanner": "scanner-primary", "fingerprint": "357812e6fb2f638e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-619d5e91f57ff673", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/app/dev/place-dashboard/page.tsx:3"}, "properties": {"repobilityId": "67cc8bc5c10e8ecc", "scanner": "scanner-primary", "fingerprint": "619d5e91f57ff673", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-413a354c6263deed", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/app/dev/place-neighbor-message/page.tsx:3"}, "properties": {"repobilityId": "c0f60359a3c3b9bf", "scanner": "scanner-primary", "fingerprint": "413a354c6263deed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb2f3471dc4099af", "level": "note", "message": {"text": "Legacy-named symbol `mailjson_v1` in frontend/apps/web/src/app/(app)/app/mailbox/_components/ComposeMailModal.tsx:253"}, "properties": {"repobilityId": "5e46f94e64c1bfcd", "scanner": "scanner-primary", "fingerprint": "cb2f3471dc4099af", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-20cac4b377ecc518", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/app/(app)/app/marketplace/constants.ts:1"}, "properties": {"repobilityId": "c6781cde288aadc5", "scanner": "scanner-primary", "fingerprint": "20cac4b377ecc518", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-03dc1921e316ab44", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/app/(app)/app/place/page.tsx:6"}, "properties": {"repobilityId": "e259e73c07abd0ca", "scanner": "scanner-primary", "fingerprint": "03dc1921e316ab44", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d9f1f032392e3aa5", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/app/(app)/app/place/pulse/page.tsx:3"}, "properties": {"repobilityId": "284b013463f1c1d1", "scanner": "scanner-primary", "fingerprint": "d9f1f032392e3aa5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-da132f1c088e2c8f", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/app/(app)/app/place/[section]/page.tsx:3"}, "properties": {"repobilityId": "38d075275b032e76", "scanner": "scanner-primary", "fingerprint": "da132f1c088e2c8f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a16e880627bacade", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/app/(app)/app/place/neighbor-message/page.tsx:3"}, "properties": {"repobilityId": "e5c7dd530fc07252", "scanner": "scanner-primary", "fingerprint": "a16e880627bacade", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1de4fa1be1d02974", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/app/(app)/app/place/neighbor-message/[id]/page.tsx:3"}, "properties": {"repobilityId": "7cefa2e06e635246", "scanner": "scanner-primary", "fingerprint": "1de4fa1be1d02974", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-24f465b89623ff0b", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/app/(app)/app/persona/broadcast/page.tsx:52"}, "properties": {"repobilityId": "3d37b9b09efdebad", "scanner": "scanner-primary", "fingerprint": "24f465b89623ff0b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc2f4113978fc51c", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/app/(app)/app/persona/[handle]/follow/page.tsx:5"}, "properties": {"repobilityId": "20eee20afb0fd210", "scanner": "scanner-primary", "fingerprint": "bc2f4113978fc51c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a04f2fdad4fb74bd", "level": "note", "message": {"text": "Legacy-named symbol `claim_phase_v2` in frontend/apps/web/src/app/(app)/app/admin/review-claims/page.tsx:169"}, "properties": {"repobilityId": "6930bd3bb46bf7a6", "scanner": "scanner-primary", "fingerprint": "a04f2fdad4fb74bd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-22b27ae28bbfbd72", "level": "note", "message": {"text": "Legacy-named symbol `claim_phase_v2` in frontend/apps/web/src/app/(app)/app/homes/[id]/owners/review-claim/page.tsx:133"}, "properties": {"repobilityId": "704a5752dab2521a", "scanner": "scanner-primary", "fingerprint": "22b27ae28bbfbd72", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e6f6fd73c47ced03", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/app/(app)/app/audience/manage/tiers/page.tsx:3"}, "properties": {"repobilityId": "6227ff3165fc48b9", "scanner": "scanner-primary", "fingerprint": "e6f6fd73c47ced03", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c7ca8cf303982e0b", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/app/(app)/app/audience/manage/blocks/page.tsx:3"}, "properties": {"repobilityId": "413a75b297120a0e", "scanner": "scanner-primary", "fingerprint": "c7ca8cf303982e0b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-700e308a8895269e", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/apps/web/src/app/(app)/app/audience/membership/[personaId]/page.tsx:3"}, "properties": {"repobilityId": "a2cf5c9f48ea5d8b", "scanner": "scanner-primary", "fingerprint": "700e308a8895269e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b2d0d7ed67a813ff", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/app/(app)/app/audience/setup/page.tsx:3"}, "properties": {"repobilityId": "90cb486589946430", "scanner": "scanner-primary", "fingerprint": "b2d0d7ed67a813ff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a50301275eee1a05", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/app/(app)/app/support-trains/new/page.tsx:26"}, "properties": {"repobilityId": "b92b0965a7d7f14e", "scanner": "scanner-primary", "fingerprint": "a50301275eee1a05", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c33857c851a9c6f5", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/app/_components/HeroSection.tsx:1"}, "properties": {"repobilityId": "8b37d67a9b3106ac", "scanner": "scanner-primary", "fingerprint": "c33857c851a9c6f5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d080f91d4a5d403d", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/app/start/page.tsx:1"}, "properties": {"repobilityId": "e5b337a4c56b1d17", "scanner": "scanner-primary", "fingerprint": "d080f91d4a5d403d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-19170273782acbd0", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/apps/web/src/app/child-safety/page.tsx:4"}, "properties": {"repobilityId": "e004def7b3636dd3", "scanner": "scanner-primary", "fingerprint": "19170273782acbd0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-838db2630f57aad7", "level": "note", "message": {"text": "Legacy-named symbol `audienceProfileLegacy` in frontend/apps/web/src/lib/identityLabels.ts:38"}, "properties": {"repobilityId": "df5cfe51ab73c787", "scanner": "scanner-primary", "fingerprint": "838db2630f57aad7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-33855a0fbf5b73fb", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/apps/web/src/lib/identityLabels.ts:54"}, "properties": {"repobilityId": "ad01eafe1cba7c1d", "scanner": "scanner-primary", "fingerprint": "33855a0fbf5b73fb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-393b755d26b3eceb", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/apps/web/src/hooks/useChatMessages.ts:54"}, "properties": {"repobilityId": "67a0074014e9a679", "scanner": "scanner-primary", "fingerprint": "393b755d26b3eceb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3b8ef25e1533c038", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/apps/web/src/hooks/usePromoTriggers.ts:199"}, "properties": {"repobilityId": "f1790264211822f8", "scanner": "scanner-primary", "fingerprint": "3b8ef25e1533c038", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-69131795496e7e25", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/packages/ui-utils/src/status.ts:1"}, "properties": {"repobilityId": "c0126b727d6e1cd2", "scanner": "scanner-primary", "fingerprint": "69131795496e7e25", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c173c663879e012d", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/packages/ui-utils/src/compose-payload-builder.ts:1"}, "properties": {"repobilityId": "c9d60f7bc60e0ed6", "scanner": "scanner-primary", "fingerprint": "c173c663879e012d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8b4518b4af6efe26", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/packages/ui-utils/src/stationery.ts:1"}, "properties": {"repobilityId": "089f62e00282ffcf", "scanner": "scanner-primary", "fingerprint": "8b4518b4af6efe26", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-00cab13e7a44fc85", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/packages/types/src/gig.ts:1"}, "properties": {"repobilityId": "927b16d61abe28b8", "scanner": "scanner-primary", "fingerprint": "00cab13e7a44fc85", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c5287b0b79c5d32", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/packages/types/src/identity.ts:1"}, "properties": {"repobilityId": "748a967389e97a1d", "scanner": "scanner-primary", "fingerprint": "7c5287b0b79c5d32", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f783c5901e1a1109", "level": "note", "message": {"text": "Legacy-named symbol `find_gigs_nearby_v2` in frontend/packages/types/src/index.ts:1446"}, "properties": {"repobilityId": "86815be5088c661d", "scanner": "scanner-primary", "fingerprint": "f783c5901e1a1109", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a2927d0968e2264c", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/packages/types/src/index.ts:1"}, "properties": {"repobilityId": "f2d8b5479756dcc0", "scanner": "scanner-primary", "fingerprint": "a2927d0968e2264c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ed6bbae190496497", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/packages/types/src/listing.ts:1"}, "properties": {"repobilityId": "5e68530da6bf4629", "scanner": "scanner-primary", "fingerprint": "ed6bbae190496497", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ce1d295a5b077e83", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/packages/types/src/homeIntelligence.ts:1"}, "properties": {"repobilityId": "8fb1cd8bcd8e81b0", "scanner": "scanner-primary", "fingerprint": "ce1d295a5b077e83", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ec355284dd05d3f3", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/packages/types/src/placeIntelligence.ts:9"}, "properties": {"repobilityId": "63ce1e5454b90744", "scanner": "scanner-primary", "fingerprint": "ec355284dd05d3f3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1921822f22464acd", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/packages/types/src/home.ts:1"}, "properties": {"repobilityId": "452d73ca6dc75d32", "scanner": "scanner-primary", "fingerprint": "1921822f22464acd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-919d20675f77c6cb", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/packages/types/src/entityTypes.ts:1"}, "properties": {"repobilityId": "131862cc14012074", "scanner": "scanner-primary", "fingerprint": "919d20675f77c6cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c487d6182e788f7", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/packages/types/src/wallet.ts:1"}, "properties": {"repobilityId": "2cc2b1de069d9e47", "scanner": "scanner-primary", "fingerprint": "0c487d6182e788f7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a637141ca0bc2c23", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/packages/types/src/business.ts:1"}, "properties": {"repobilityId": "c2b198c42712523c", "scanner": "scanner-primary", "fingerprint": "a637141ca0bc2c23", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0b5fc5a25453bbbb", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/packages/types/src/supportTrain.ts:1"}, "properties": {"repobilityId": "0a58ecde4343178b", "scanner": "scanner-primary", "fingerprint": "0b5fc5a25453bbbb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d5735066a113dd1d", "level": "note", "message": {"text": "Legacy-named symbol `mailjson_v1` in frontend/packages/types/src/mailCompose.ts:120"}, "properties": {"repobilityId": "fbaa16e95a09e6cc", "scanner": "scanner-primary", "fingerprint": "d5735066a113dd1d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1a7effdc4d1f3655", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/packages/types/src/mailCompose.ts:1"}, "properties": {"repobilityId": "a1fe19e5f6cae393", "scanner": "scanner-primary", "fingerprint": "1a7effdc4d1f3655", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-680833c55b1ed541", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/packages/api/src/client.ts:1"}, "properties": {"repobilityId": "b2a639083b6c60fd", "scanner": "scanner-primary", "fingerprint": "680833c55b1ed541", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6809d2eafc65385", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/packages/api/src/endpoints/auth.ts:1"}, "properties": {"repobilityId": "527e98dbbca1e52d", "scanner": "scanner-primary", "fingerprint": "d6809d2eafc65385", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9f2b1241da03c771", "level": "note", "message": {"text": "Legacy-named symbol `period_unused` in frontend/packages/api/src/endpoints/personaMembership.ts:87"}, "properties": {"repobilityId": "ea970c1b2bf0d66a", "scanner": "scanner-primary", "fingerprint": "9f2b1241da03c771", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-086393a8b9e8a325", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/packages/api/src/endpoints/personaMembership.ts:1"}, "properties": {"repobilityId": "67ea9d3022779560", "scanner": "scanner-primary", "fingerprint": "086393a8b9e8a325", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8fbf24eb75f3a0fe", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/packages/api/src/endpoints/landlord.ts:1"}, "properties": {"repobilityId": "3026cc4edf1a969f", "scanner": "scanner-primary", "fingerprint": "8fbf24eb75f3a0fe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5d21247671a2ff5f", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/packages/api/src/endpoints/homeProfile.ts:1"}, "properties": {"repobilityId": "60f88d581799a628", "scanner": "scanner-primary", "fingerprint": "5d21247671a2ff5f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-65aebb624b159982", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/packages/api/src/endpoints/residencyLetters.ts:4"}, "properties": {"repobilityId": "1ccd3558dd1e22f8", "scanner": "scanner-primary", "fingerprint": "65aebb624b159982", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-143c3708e6e2c690", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/packages/api/src/endpoints/mailboxV2Phase3.ts:1"}, "properties": {"repobilityId": "9dcc0729c7563fa5", "scanner": "scanner-primary", "fingerprint": "143c3708e6e2c690", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5ae968ba844db661", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/packages/api/src/endpoints/personaDms.ts:1"}, "properties": {"repobilityId": "1fdace110d7a5507", "scanner": "scanner-primary", "fingerprint": "5ae968ba844db661", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c3a07013e03750c8", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/packages/api/src/endpoints/personas.ts:240"}, "properties": {"repobilityId": "7934ff23de979c2d", "scanner": "scanner-primary", "fingerprint": "c3a07013e03750c8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ee6a74a3dbaebf42", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/packages/api/src/endpoints/personaBlocks.ts:1"}, "properties": {"repobilityId": "4a35971855cfcf40", "scanner": "scanner-primary", "fingerprint": "ee6a74a3dbaebf42", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a039b8aedfd21523", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/packages/api/src/endpoints/addressValidation.ts:1"}, "properties": {"repobilityId": "16ff38e17b48eb44", "scanner": "scanner-primary", "fingerprint": "a039b8aedfd21523", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bb6dad3e5fec54ff", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/packages/api/src/endpoints/bids.ts:1"}, "properties": {"repobilityId": "11f4a54a6ca2f85e", "scanner": "scanner-primary", "fingerprint": "bb6dad3e5fec54ff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-537ac25a2fbf44b1", "level": "none", "message": {"text": "Commented-code block (11 lines) in frontend/packages/api/src/endpoints/neighborMessages.ts:4"}, "properties": {"repobilityId": "5eb241ca6d291271", "scanner": "scanner-primary", "fingerprint": "537ac25a2fbf44b1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b16b7b2954c5d7e8", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/packages/api/src/endpoints/tenant.ts:1"}, "properties": {"repobilityId": "8d66e059db424265", "scanner": "scanner-primary", "fingerprint": "b16b7b2954c5d7e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-29c07b2be6e4d6a1", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/packages/api/src/endpoints/featureFlags.ts:1"}, "properties": {"repobilityId": "613f4b0b3027dd9e", "scanner": "scanner-primary", "fingerprint": "29c07b2be6e4d6a1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-26b3b1ccd0fa86ca", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/packages/api/src/endpoints/place.ts:4"}, "properties": {"repobilityId": "f01fd49cea5b8ee2", "scanner": "scanner-primary", "fingerprint": "26b3b1ccd0fa86ca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3b899667c3fc97db", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/packages/api/src/endpoints/personaTiers.ts:1"}, "properties": {"repobilityId": "075b6a1a3f009357", "scanner": "scanner-primary", "fingerprint": "3b899667c3fc97db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b5d532b7f4160f8d", "level": "note", "message": {"text": "Legacy-named symbol `mailjson_v1` in frontend/packages/api/src/endpoints/mailbox.ts:91"}, "properties": {"repobilityId": "5ac1681b9b6a5dda", "scanner": "scanner-primary", "fingerprint": "b5d532b7f4160f8d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8615614450c76902", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/packages/api/src/endpoints/mailCompose.ts:1"}, "properties": {"repobilityId": "3a3bdcf23d0957f1", "scanner": "scanner-primary", "fingerprint": "8615614450c76902", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a046d3769570d75d", "level": "note", "message": {"text": "Legacy-named symbol `claim_phase_v2` in frontend/packages/api/src/endpoints/homeOwnership.ts:57"}, "properties": {"repobilityId": "e205addd260a733f", "scanner": "scanner-primary", "fingerprint": "a046d3769570d75d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-cdd3e4c62ad3abf4", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/packages/theme/tailwind.cjs:1"}, "properties": {"repobilityId": "51d2bb8dd5dbd333", "scanner": "scanner-primary", "fingerprint": "cdd3e4c62ad3abf4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-03cffec1f9207061", "level": "none", "message": {"text": "Commented-code block (8 lines) in reference/address anchored features/place-money-detail.jsx:1"}, "properties": {"repobilityId": "75e32ee5ef792fb1", "scanner": "scanner-primary", "fingerprint": "03cffec1f9207061", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e9dfb727dcdd9418", "level": "none", "message": {"text": "Commented-code block (6 lines) in reference/address anchored features/place-launch.jsx:1"}, "properties": {"repobilityId": "1825d678f9113bb4", "scanner": "scanner-primary", "fingerprint": "e9dfb727dcdd9418", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1bc757dd094bd6f", "level": "none", "message": {"text": "Commented-code block (8 lines) in reference/address anchored features/place-softwall.jsx:1"}, "properties": {"repobilityId": "55051fdb0b1dfd66", "scanner": "scanner-primary", "fingerprint": "e1bc757dd094bd6f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d2fc40ab94c2d678", "level": "none", "message": {"text": "Commented-code block (6 lines) in reference/address anchored features/place-risk-detail.jsx:1"}, "properties": {"repobilityId": "f6f21248b6d897a5", "scanner": "scanner-primary", "fingerprint": "d2fc40ab94c2d678", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4778e8ec440dd4b2", "level": "none", "message": {"text": "Commented-code block (7 lines) in reference/address anchored features/place-address.jsx:1"}, "properties": {"repobilityId": "f5e1e39613d7448f", "scanner": "scanner-primary", "fingerprint": "4778e8ec440dd4b2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-227d350db9e3d11d", "level": "none", "message": {"text": "Commented-code block (9 lines) in reference/address anchored features/place-civic-detail.jsx:1"}, "properties": {"repobilityId": "a882e46b768205d4", "scanner": "scanner-primary", "fingerprint": "227d350db9e3d11d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8eb7dfe549aedbe7", "level": "none", "message": {"text": "Commented-code block (9 lines) in reference/address anchored features/place-verify.jsx:1"}, "properties": {"repobilityId": "856f2672fe33387c", "scanner": "scanner-primary", "fingerprint": "8eb7dfe549aedbe7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7f27231abe5c9c20", "level": "none", "message": {"text": "Commented-code block (6 lines) in reference/address anchored features/place-home-detail.jsx:1"}, "properties": {"repobilityId": "000b62902876f118", "scanner": "scanner-primary", "fingerprint": "7f27231abe5c9c20", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f27c6ce381c01947", "level": "none", "message": {"text": "Commented-code block (6 lines) in reference/address anchored features/place-preview.jsx:1"}, "properties": {"repobilityId": "223524f0dc4906d6", "scanner": "scanner-primary", "fingerprint": "f27c6ce381c01947", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d5e137e6d1fb319e", "level": "none", "message": {"text": "Commented-code block (10 lines) in reference/address anchored features/place-verify-pending.jsx:1"}, "properties": {"repobilityId": "7f654485c4a9ffd8", "scanner": "scanner-primary", "fingerprint": "d5e137e6d1fb319e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6a4b20a7e89fe3c", "level": "none", "message": {"text": "Commented-code block (8 lines) in reference/address anchored features/place-identity-detail.jsx:1"}, "properties": {"repobilityId": "363fc1d07a609f0f", "scanner": "scanner-primary", "fingerprint": "d6a4b20a7e89fe3c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-291097ebc2d5c444", "level": "none", "message": {"text": "Commented-code block (8 lines) in reference/address anchored features/place-region.jsx:1"}, "properties": {"repobilityId": "4a042f075f41968d", "scanner": "scanner-primary", "fingerprint": "291097ebc2d5c444", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e455b9d58ffacc9d", "level": "none", "message": {"text": "Commented-code block (8 lines) in reference/address anchored features/place-verify-done.jsx:1"}, "properties": {"repobilityId": "58ae86fc78290ea7", "scanner": "scanner-primary", "fingerprint": "e455b9d58ffacc9d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9cb55bacc9de1128", "level": "none", "message": {"text": "Commented-code block (8 lines) in reference/address anchored features/place-block-detail.jsx:1"}, "properties": {"repobilityId": "f05f9d0d7bce304c", "scanner": "scanner-primary", "fingerprint": "9cb55bacc9de1128", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-77f36245f16b0965", "level": "none", "message": {"text": "Commented-code block (8 lines) in reference/address anchored features/place-dashboard-claimed.jsx:1"}, "properties": {"repobilityId": "3b303d0f92341173", "scanner": "scanner-primary", "fingerprint": "77f36245f16b0965", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d779e1c6fcf86e7a", "level": "none", "message": {"text": "Commented-code block (8 lines) in reference/address anchored features/place-pulse-stream.jsx:1"}, "properties": {"repobilityId": "7e641416430bf9e0", "scanner": "scanner-primary", "fingerprint": "d779e1c6fcf86e7a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1d0cd089c4a9f1a", "level": "none", "message": {"text": "Commented-code block (6 lines) in reference/address anchored features/place-today-detail.jsx:1"}, "properties": {"repobilityId": "6939b58c66f496a5", "scanner": "scanner-primary", "fingerprint": "f1d0cd089c4a9f1a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-33108a69dbf4e7df", "level": "none", "message": {"text": "Commented-code block (9 lines) in reference/address anchored features/place-message-received.jsx:1"}, "properties": {"repobilityId": "630c0b748e57ee6c", "scanner": "scanner-primary", "fingerprint": "33108a69dbf4e7df", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-158d7c2e3998f20e", "level": "none", "message": {"text": "Commented-code block (6 lines) in reference/address anchored features/place-switcher.jsx:1"}, "properties": {"repobilityId": "f6b26934a0066f6a", "scanner": "scanner-primary", "fingerprint": "158d7c2e3998f20e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ae0a4ea1884ef8d", "level": "none", "message": {"text": "Commented-code block (8 lines) in reference/address anchored features/place-verify-failed.jsx:1"}, "properties": {"repobilityId": "162cf9504f448cbd", "scanner": "scanner-primary", "fingerprint": "1ae0a4ea1884ef8d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a09bd99d8205ec63", "level": "none", "message": {"text": "Commented-code block (8 lines) in reference/address anchored features/place-message-compose.jsx:1"}, "properties": {"repobilityId": "402ece9816caf053", "scanner": "scanner-primary", "fingerprint": "a09bd99d8205ec63", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f00c70249fed4bf2", "level": "none", "message": {"text": "Commented-code block (6 lines) in Chat_conversation/design-canvas.jsx:2"}, "properties": {"repobilityId": "ef2ff20c0fd4bbeb", "scanner": "scanner-primary", "fingerprint": "f00c70249fed4bf2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-af7e1ebd512610d1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 Chat_conversation/design-canvas.jsx:128"}, "properties": {"repobilityId": "ddefce9809cd159a", "scanner": "scanner-primary", "fingerprint": "af7e1ebd512610d1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7438ade07d4beaf6", "level": "none", "message": {"text": "Commented-code block (6 lines) in docs/design/new/nav-drawer-launcher-frames.jsx:1"}, "properties": {"repobilityId": "0ecb2253c039faab", "scanner": "scanner-primary", "fingerprint": "7438ade07d4beaf6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6e89674fd4bf0073", "level": "none", "message": {"text": "Commented-code block (8 lines) in docs/design/new/set-password-frames.jsx:1"}, "properties": {"repobilityId": "b0dc35391b76acd3", "scanner": "scanner-primary", "fingerprint": "6e89674fd4bf0073", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2cca63ea97184e8d", "level": "none", "message": {"text": "Commented-code block (7 lines) in docs/design/new/verify-email-frames.jsx:1"}, "properties": {"repobilityId": "2b71f4d82de4b15d", "scanner": "scanner-primary", "fingerprint": "2cca63ea97184e8d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8a617706d0d86e1f", "level": "none", "message": {"text": "Commented-code block (6 lines) in docs/design/new/delivery-proof-frames.jsx:1"}, "properties": {"repobilityId": "5129110d5419cb97", "scanner": "scanner-primary", "fingerprint": "8a617706d0d86e1f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-22421cdcb5432b12", "level": "none", "message": {"text": "Commented-code block (6 lines) in docs/design/new/audience-frames.jsx:1"}, "properties": {"repobilityId": "6ac88009e27e2107", "scanner": "scanner-primary", "fingerprint": "22421cdcb5432b12", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-26924ae2b83d0257", "level": "none", "message": {"text": "Commented-code block (5 lines) in docs/design/new/beacon-shell.jsx:1"}, "properties": {"repobilityId": "99f0f949488ce758", "scanner": "scanner-primary", "fingerprint": "26924ae2b83d0257", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9dbe5a1c636003b1", "level": "none", "message": {"text": "Commented-code block (5 lines) in docs/design/new/following-frames.jsx:1"}, "properties": {"repobilityId": "0171600fd2770b57", "scanner": "scanner-primary", "fingerprint": "9dbe5a1c636003b1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1abea6bd92b5ecfe", "level": "none", "message": {"text": "Commented-code block (7 lines) in docs/design/new/gig-picker-frames.jsx:1"}, "properties": {"repobilityId": "15704a5a7ee8c853", "scanner": "scanner-primary", "fingerprint": "1abea6bd92b5ecfe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-13e6e9bcc807d9c5", "level": "none", "message": {"text": "Commented-code block (6 lines) in docs/design/new/nav-drawer-frames.jsx:1"}, "properties": {"repobilityId": "bb168fc8527efe68", "scanner": "scanner-primary", "fingerprint": "13e6e9bcc807d9c5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-94b25fb3522161c0", "level": "none", "message": {"text": "Commented-code block (5 lines) in docs/lighthouse-t5/run.mjs:2"}, "properties": {"repobilityId": "a8cb72f3341873cb", "scanner": "scanner-primary", "fingerprint": "94b25fb3522161c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e9058d8bea71f4d8", "level": "none", "message": {"text": "Commented-code block (5 lines) in docs/designs/A10/earn-frames.jsx:1"}, "properties": {"repobilityId": "92bab401959bfffc", "scanner": "scanner-primary", "fingerprint": "e9058d8bea71f4d8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-34eefc96ed5ff3d0", "level": "none", "message": {"text": "Commented-code block (6 lines) in docs/designs/A10/business-owner-frames.jsx:1"}, "properties": {"repobilityId": "47e791c8ce1ec7c2", "scanner": "scanner-primary", "fingerprint": "34eefc96ed5ff3d0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-65870a39bbe6ad28", "level": "none", "message": {"text": "Commented-code block (7 lines) in docs/designs/A17/coupon.jsx:1"}, "properties": {"repobilityId": "3390a1cd33bc2ca2", "scanner": "scanner-primary", "fingerprint": "65870a39bbe6ad28", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c266deb52cf05cb7", "level": "none", "message": {"text": "Commented-code block (7 lines) in docs/designs/A17/community.jsx:1"}, "properties": {"repobilityId": "100ff696149009b2", "scanner": "scanner-primary", "fingerprint": "c266deb52cf05cb7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-20945de9269de978", "level": "none", "message": {"text": "Commented-code block (9 lines) in docs/designs/A17/translation.jsx:1"}, "properties": {"repobilityId": "f3a1feb6225d5b3f", "scanner": "scanner-primary", "fingerprint": "20945de9269de978", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-694a51fc2342c9a9", "level": "none", "message": {"text": "Commented-code block (10 lines) in docs/designs/A17/package.jsx:1"}, "properties": {"repobilityId": "163e2746e124259f", "scanner": "scanner-primary", "fingerprint": "694a51fc2342c9a9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0cc912f7c276c12b", "level": "none", "message": {"text": "Commented-code block (7 lines) in docs/designs/A17/certified.jsx:1"}, "properties": {"repobilityId": "bc6f7a06ca6ac28e", "scanner": "scanner-primary", "fingerprint": "0cc912f7c276c12b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b5132646a175541a", "level": "none", "message": {"text": "Commented-code block (8 lines) in docs/designs/A17/gig.jsx:1"}, "properties": {"repobilityId": "2af1e5c03d88e43f", "scanner": "scanner-primary", "fingerprint": "b5132646a175541a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-14c481eb4283ac56", "level": "none", "message": {"text": "Commented-code block (11 lines) in docs/designs/A17/records.jsx:10"}, "properties": {"repobilityId": "a2847db0ebd67c43", "scanner": "scanner-primary", "fingerprint": "14c481eb4283ac56", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e4f88ac8c4aee928", "level": "none", "message": {"text": "Commented-code block (9 lines) in docs/designs/A17/tasks.jsx:1"}, "properties": {"repobilityId": "7a5a999366d2ebdd", "scanner": "scanner-primary", "fingerprint": "e4f88ac8c4aee928", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5cee4a2461c3d482", "level": "none", "message": {"text": "Commented-code block (10 lines) in docs/designs/A17/unboxing.jsx:1"}, "properties": {"repobilityId": "cf3cad2e5efae4b2", "scanner": "scanner-primary", "fingerprint": "5cee4a2461c3d482", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-493dd8c6f5636ae0", "level": "none", "message": {"text": "Commented-code block (8 lines) in docs/designs/A17/stamps.jsx:1"}, "properties": {"repobilityId": "5fb0c4961a02f4a8", "scanner": "scanner-primary", "fingerprint": "493dd8c6f5636ae0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b98b3d851c760830", "level": "none", "message": {"text": "Commented-code block (6 lines) in docs/designs/A17/design-canvas.jsx:2"}, "properties": {"repobilityId": "5a8e1f9daf3a726f", "scanner": "scanner-primary", "fingerprint": "b98b3d851c760830", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e5249322208777fc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/designs/A17/design-canvas.jsx:128"}, "properties": {"repobilityId": "8a873f4689584321", "scanner": "scanner-primary", "fingerprint": "e5249322208777fc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-46c212585bdceafa", "level": "none", "message": {"text": "Commented-code block (9 lines) in docs/designs/A17/memory.jsx:1"}, "properties": {"repobilityId": "79a1a9dca57eb271", "scanner": "scanner-primary", "fingerprint": "46c212585bdceafa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c9b519b96a950988", "level": "none", "message": {"text": "Commented-code block (14 lines) in docs/designs/A17/party.jsx:1"}, "properties": {"repobilityId": "89fcf85541b7ae18", "scanner": "scanner-primary", "fingerprint": "c9b519b96a950988", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-43b5839e678c0a32", "level": "none", "message": {"text": "Commented-code block (6 lines) in docs/designs/A14/notifications-frames.jsx:1"}, "properties": {"repobilityId": "0ceee69b4bdaf71e", "scanner": "scanner-primary", "fingerprint": "43b5839e678c0a32", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-20dc6515e7a71a24", "level": "none", "message": {"text": "Commented-code block (5 lines) in docs/designs/A14/payments-frames.jsx:1"}, "properties": {"repobilityId": "939b6cf075e6e6b5", "scanner": "scanner-primary", "fingerprint": "20dc6515e7a71a24", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-270f025824842be4", "level": "none", "message": {"text": "Commented-code block (5 lines) in docs/designs/A14/privacy-frames.jsx:1"}, "properties": {"repobilityId": "ce0b7f74b981e615", "scanner": "scanner-primary", "fingerprint": "270f025824842be4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6e3d9dfdd6fad592", "level": "none", "message": {"text": "Commented-code block (5 lines) in docs/designs/A14/global-settings-frames.jsx:1"}, "properties": {"repobilityId": "8d26a116db90cdf1", "scanner": "scanner-primary", "fingerprint": "6e3d9dfdd6fad592", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-015610543879465c", "level": "none", "message": {"text": "Commented-code block (5 lines) in docs/designs/A14/blocked-frames.jsx:1"}, "properties": {"repobilityId": "e2d12e9f6e34a430", "scanner": "scanner-primary", "fingerprint": "015610543879465c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-903ed06c250a4a64", "level": "none", "message": {"text": "Commented-code block (6 lines) in docs/designs/A14/vacation-frames.jsx:5"}, "properties": {"repobilityId": "504b7e339ad1a1f8", "scanner": "scanner-primary", "fingerprint": "903ed06c250a4a64", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f0a614bd1af76ae4", "level": "none", "message": {"text": "Commented-code block (8 lines) in docs/designs/A13/post-gig-v1-frames.jsx:4"}, "properties": {"repobilityId": "31dadb6cd1518de0", "scanner": "scanner-primary", "fingerprint": "f0a614bd1af76ae4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e53c1cd8a89bbbf5", "level": "none", "message": {"text": "Commented-code block (5 lines) in docs/designs/A13/change-password-frames.jsx:4"}, "properties": {"repobilityId": "4a3d910bd41c857b", "scanner": "scanner-primary", "fingerprint": "e53c1cd8a89bbbf5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4de79c731384a5cb", "level": "none", "message": {"text": "Commented-code block (5 lines) in docs/designs/A13/share-home-frames.jsx:1"}, "properties": {"repobilityId": "512fc863182b081b", "scanner": "scanner-primary", "fingerprint": "4de79c731384a5cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6df679c417ec7570", "level": "none", "message": {"text": "Commented-code block (5 lines) in docs/designs/A13/review-claim-frames.jsx:1"}, "properties": {"repobilityId": "8c77cdec536b2986", "scanner": "scanner-primary", "fingerprint": "6df679c417ec7570", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2668d24dbc87f1fa", "level": "none", "message": {"text": "Commented-code block (7 lines) in docs/designs/A13/invite-home-frames.jsx:1"}, "properties": {"repobilityId": "858ee4eef9485e8f", "scanner": "scanner-primary", "fingerprint": "2668d24dbc87f1fa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c183898e002c61e", "level": "none", "message": {"text": "Commented-code block (7 lines) in docs/designs/A13/property-details-frames.jsx:1"}, "properties": {"repobilityId": "f8062365212d60d0", "scanner": "scanner-primary", "fingerprint": "3c183898e002c61e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6207135ca6d5a374", "level": "none", "message": {"text": "Commented-code block (5 lines) in docs/designs/A13/transfer-frames.jsx:1"}, "properties": {"repobilityId": "c131c229623e26a2", "scanner": "scanner-primary", "fingerprint": "6207135ca6d5a374", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f8256e58980a629d", "level": "none", "message": {"text": "Commented-code block (5 lines) in docs/designs/A13/disambiguate-frames.jsx:4"}, "properties": {"repobilityId": "8ed877fb7d7f8608", "scanner": "scanner-primary", "fingerprint": "f8256e58980a629d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0bc9ddf818a3dff4", "level": "none", "message": {"text": "Commented-code block (5 lines) in docs/designs/A13/add-guest-frames.jsx:1"}, "properties": {"repobilityId": "18747e084d72c4c7", "scanner": "scanner-primary", "fingerprint": "0bc9ddf818a3dff4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ef3fd45babce057c", "level": "none", "message": {"text": "Commented-code block (7 lines) in docs/designs/A13/mail-day-frames.jsx:4"}, "properties": {"repobilityId": "c5ea59858ee51bbc", "scanner": "scanner-primary", "fingerprint": "ef3fd45babce057c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-52f30e05ae519b2b", "level": "none", "message": {"text": "Commented-code block (5 lines) in docs/designs/A13/professional-profile-frames.jsx:4"}, "properties": {"repobilityId": "e30ac82898f7efe0", "scanner": "scanner-primary", "fingerprint": "52f30e05ae519b2b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fea212bb59522122", "level": "none", "message": {"text": "Commented-code block (10 lines) in docs/designs/A13/edit-persona-frames.jsx:12"}, "properties": {"repobilityId": "0870133197e1974b", "scanner": "scanner-primary", "fingerprint": "fea212bb59522122", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c1fe4e5941e55b8f", "level": "none", "message": {"text": "Commented-code block (5 lines) in docs/lighthouse-t6/run.mjs:2"}, "properties": {"repobilityId": "7df3736fb362efc2", "scanner": "scanner-primary", "fingerprint": "c1fe4e5941e55b8f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6aca6549b771e1dd", "level": "none", "message": {"text": "Commented-code block (6 lines) in tools/t5-screenshots/me-frames.mjs:1"}, "properties": {"repobilityId": "64e5d398d998f201", "scanner": "scanner-primary", "fingerprint": "6aca6549b771e1dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-92b22bba356abe60", "level": "none", "message": {"text": "Commented-code block (5 lines) in tools/t5-screenshots/bills-v2.mjs:1"}, "properties": {"repobilityId": "d617380704cf627d", "scanner": "scanner-primary", "fingerprint": "92b22bba356abe60", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-257413259e2c9982", "level": "none", "message": {"text": "Commented-code block (6 lines) in tools/t5-screenshots/mytasks-v2.mjs:6"}, "properties": {"repobilityId": "580589084190ec91", "scanner": "scanner-primary", "fingerprint": "257413259e2c9982", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3d0d0ace7360e4b0", "level": "none", "message": {"text": "Commented-code block (5 lines) in pantopus-seeder/src/config/constants.py:115"}, "properties": {"repobilityId": "ae688de10ffe8e9e", "scanner": "scanner-primary", "fingerprint": "3d0d0ace7360e4b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6b23b90067660141", "level": "none", "message": {"text": "Commented-code block (7 lines) in pantopus-seeder/src/config/sources_config.py:12"}, "properties": {"repobilityId": "cf52f79b4a19f421", "scanner": "scanner-primary", "fingerprint": "6b23b90067660141", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9fe0027292b4a8c0", "level": "note", "message": {"text": "Legacy-named symbol `rest_v1` in pantopus-seeder/src/sources/on_this_day.py:6"}, "properties": {"repobilityId": "3cfa39f05d41b273", "scanner": "scanner-primary", "fingerprint": "9fe0027292b4a8c0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ea4e244b268aa55d", "level": "none", "message": {"text": "Commented-code block (7 lines) in pantopus-seeder/src/handlers/sports_national_fetcher.py:42"}, "properties": {"repobilityId": "05a99fb83df52c25", "scanner": "scanner-primary", "fingerprint": "ea4e244b268aa55d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96f041bdce4ff0d0", "level": "none", "message": {"text": "Commented-code block (5 lines) in pantopus-seeder/src/handlers/sports_poster.py:156"}, "properties": {"repobilityId": "73a85bf999ca570a", "scanner": "scanner-primary", "fingerprint": "96f041bdce4ff0d0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a31fb917a34afe63", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/app.js:360"}, "properties": {"repobilityId": "2a4f6ad10cbdcd71", "scanner": "scanner-primary", "fingerprint": "a31fb917a34afe63", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3b1ff8a53411a8cf", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/tests/homePrivacy.test.js:1"}, "properties": {"repobilityId": "8badc9da97659fbd", "scanner": "scanner-primary", "fingerprint": "3b1ff8a53411a8cf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-98ef5378199787d7", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/tests/paysCriticalRoutes.test.js:1"}, "properties": {"repobilityId": "0e7f5bf212a5bf18", "scanner": "scanner-primary", "fingerprint": "98ef5378199787d7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-12d115d3efd2c61e", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/mailDay.test.js:1"}, "properties": {"repobilityId": "2fd808ff4962020d", "scanner": "scanner-primary", "fingerprint": "12d115d3efd2c61e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-93eb6ae5c7107a15", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/tests/guestPass.test.js:1"}, "properties": {"repobilityId": "97b006732327d2cc", "scanner": "scanner-primary", "fingerprint": "93eb6ae5c7107a15", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-adc0f08a7952ac49", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/tests/lockdown.test.js:1"}, "properties": {"repobilityId": "ae6d74014ef3993c", "scanner": "scanner-primary", "fingerprint": "adc0f08a7952ac49", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-263b96c2f127ed64", "level": "none", "message": {"text": "Commented-code block (9 lines) in backend/tests/transferRecovery.test.js:1"}, "properties": {"repobilityId": "896ee00549eeaf77", "scanner": "scanner-primary", "fingerprint": "263b96c2f127ed64", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e3dc85591786b099", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/visibilityPolicy.test.js:1"}, "properties": {"repobilityId": "6511c9a26620c556", "scanner": "scanner-primary", "fingerprint": "e3dc85591786b099", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba4da3cf1707f391", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/tests/placeIntelligence.endpoint.test.js:1"}, "properties": {"repobilityId": "ab5f88897dafa4c4", "scanner": "scanner-primary", "fingerprint": "ba4da3cf1707f391", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8f3454ea2d816640", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/tests/scopedGrant.test.js:1"}, "properties": {"repobilityId": "6ec2c64b2217e012", "scanner": "scanner-primary", "fingerprint": "8f3454ea2d816640", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8533982f342ca10d", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/tests/homeMaintenance.test.js:1"}, "properties": {"repobilityId": "d89b8b6d03d6ecb5", "scanner": "scanner-primary", "fingerprint": "8533982f342ca10d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-66904af95e6432fe", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/paymentOps.test.js:1"}, "properties": {"repobilityId": "e8f04c029148b7f6", "scanner": "scanner-primary", "fingerprint": "66904af95e6432fe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1b2e1bb2a65fb670", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/homePermissions.test.js:1"}, "properties": {"repobilityId": "59c8eab95f003e46", "scanner": "scanner-primary", "fingerprint": "1b2e1bb2a65fb670", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4cfd25aa634155f4", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/tests/checkoutIntent.test.js:1"}, "properties": {"repobilityId": "49657b3c46273c9b", "scanner": "scanner-primary", "fingerprint": "4cfd25aa634155f4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-319bd0fe83aef152", "level": "none", "message": {"text": "Commented-code block (8 lines) in backend/tests/tipMobileParams.test.js:1"}, "properties": {"repobilityId": "7a4d26b4ed7924a6", "scanner": "scanner-primary", "fingerprint": "319bd0fe83aef152", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c3415eb8271dab92", "level": "none", "message": {"text": "Commented-code block (10 lines) in backend/tests/leakyPipe.test.js:1"}, "properties": {"repobilityId": "9ca461e660b948e2", "scanner": "scanner-primary", "fingerprint": "c3415eb8271dab92", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e897f700717f7158", "level": "none", "message": {"text": "Commented-code block (9 lines) in backend/tests/scaOffSession.test.js:1"}, "properties": {"repobilityId": "895a69962c41bafa", "scanner": "scanner-primary", "fingerprint": "e897f700717f7158", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-efcf4524a6251d6f", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/tests/gigCancellation.test.js:1"}, "properties": {"repobilityId": "c515a60af61b9497", "scanner": "scanner-primary", "fingerprint": "efcf4524a6251d6f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-edc4a3df50783693", "level": "none", "message": {"text": "Commented-code block (12 lines) in backend/tests/fullPaymentLifecycle.test.js:1"}, "properties": {"repobilityId": "b10d3acdb4fc6486", "scanner": "scanner-primary", "fingerprint": "edc4a3df50783693", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0425e12982f18402", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/businessPermissions.test.js:1"}, "properties": {"repobilityId": "9f9fbf37ca6dfa27", "scanner": "scanner-primary", "fingerprint": "0425e12982f18402", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5c4e5d4fdd894a5f", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/tests/withdrawalIdempotency.test.js:1"}, "properties": {"repobilityId": "ff6e4fb8f44dd684", "scanner": "scanner-primary", "fingerprint": "5c4e5d4fdd894a5f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-43f5f35cfc228404", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/tests/seatPermissions.test.js:1"}, "properties": {"repobilityId": "d9825eafbf0b199c", "scanner": "scanner-primary", "fingerprint": "43f5f35cfc228404", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f0430a5afd76c486", "level": "none", "message": {"text": "Commented-code block (8 lines) in backend/tests/paymentReliability.test.js:1"}, "properties": {"repobilityId": "644e9465c2080bde", "scanner": "scanner-primary", "fingerprint": "f0430a5afd76c486", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-006352dbbab6885f", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/tests/postTransferRefund.test.js:1"}, "properties": {"repobilityId": "96999a17e4aa3063", "scanner": "scanner-primary", "fingerprint": "006352dbbab6885f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-892686717b9c607a", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/paymentStateMachine.test.js:1"}, "properties": {"repobilityId": "2515ca6cdbe7bb2c", "scanner": "scanner-primary", "fingerprint": "892686717b9c607a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1780fd7b3f2fc84c", "level": "none", "message": {"text": "Commented-code block (9 lines) in backend/tests/bidAcceptancePayment.test.js:1"}, "properties": {"repobilityId": "18b9d9bf3bb98a82", "scanner": "scanner-primary", "fingerprint": "1780fd7b3f2fc84c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-92057a9b837faeac", "level": "none", "message": {"text": "Commented-code block (10 lines) in backend/tests/connectWithdrawRoutes.test.js:1"}, "properties": {"repobilityId": "2aa1d873eec27136", "scanner": "scanner-primary", "fingerprint": "92057a9b837faeac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b471ce8e08525088", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/tests/homeProfileV2.test.js:1"}, "properties": {"repobilityId": "72177c36324a3153", "scanner": "scanner-primary", "fingerprint": "b471ce8e08525088", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b207bbbbc533c0a6", "level": "none", "message": {"text": "Commented-code block (8 lines) in backend/tests/scaOnSession.test.js:1"}, "properties": {"repobilityId": "03350b7d62a62441", "scanner": "scanner-primary", "fingerprint": "b207bbbbc533c0a6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-35c9b0227f02aa0a", "level": "none", "message": {"text": "Commented-code block (9 lines) in backend/tests/captureRetry.test.js:1"}, "properties": {"repobilityId": "597be45a3d5d0daa", "scanner": "scanner-primary", "fingerprint": "35c9b0227f02aa0a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fb857a57e1940a13", "level": "none", "message": {"text": "Commented-code block (10 lines) in backend/tests/timeTravel.test.js:1"}, "properties": {"repobilityId": "45496c1fccba7fd1", "scanner": "scanner-primary", "fingerprint": "fb857a57e1940a13", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cadd1b2bd9eedd58", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/tests/webhookIdempotency.test.js:1"}, "properties": {"repobilityId": "987daa8374ae9ad7", "scanner": "scanner-primary", "fingerprint": "cadd1b2bd9eedd58", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-941c58030de3866e", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/tests/discoveryScoring.test.js:1"}, "properties": {"repobilityId": "b0df2070e5e2903d", "scanner": "scanner-primary", "fingerprint": "941c58030de3866e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9f492e52e769993e", "level": "none", "message": {"text": "Commented-code block (8 lines) in backend/tests/refundAuthorization.test.js:1"}, "properties": {"repobilityId": "637901530c5cf40d", "scanner": "scanner-primary", "fingerprint": "9f492e52e769993e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8d4493af156a4dfa", "level": "note", "message": {"text": "Legacy-named symbol `claim_phase_v2` in backend/tests/integration/schema-validation.test.js:128"}, "properties": {"repobilityId": "b1b8146a1fbe6201", "scanner": "scanner-primary", "fingerprint": "8d4493af156a4dfa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d3ef12d26274f802", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/tests/integration/identityCenter.viewAs.test.js:185"}, "properties": {"repobilityId": "c0225864e936233d", "scanner": "scanner-primary", "fingerprint": "d3ef12d26274f802", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a16a14e2ce5f0da", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/integration/audienceProfile.e2e.test.js:46"}, "properties": {"repobilityId": "b82f6e7c9f445b12", "scanner": "scanner-primary", "fingerprint": "9a16a14e2ce5f0da", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b537deb65ddc82d5", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/tests/integration/personaTier.migration.test.js:147"}, "properties": {"repobilityId": "f65be6c7141dc2bb", "scanner": "scanner-primary", "fingerprint": "b537deb65ddc82d5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f004b676b24b9e87", "level": "note", "message": {"text": "Legacy-named symbol `parcel_shadow_v1` in backend/tests/unit/parcelIntelProvider.test.js:160"}, "properties": {"repobilityId": "01a8dabfbd9679b5", "scanner": "scanner-primary", "fingerprint": "f004b676b24b9e87", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-44f7835500f0d0cc", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/tests/unit/legacyUiTermsRemoved.test.js:95"}, "properties": {"repobilityId": "c2dd7655c3cafe33", "scanner": "scanner-primary", "fingerprint": "44f7835500f0d0cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b5f8a7b7aa198b10", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/unit/authorityResolution.test.js:1"}, "properties": {"repobilityId": "89d5133de7482c31", "scanner": "scanner-primary", "fingerprint": "b5f8a7b7aa198b10", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-193e313f0ffb5a0b", "level": "note", "message": {"text": "Legacy-named symbol `address_verification_v1` in backend/tests/unit/mailVendorService.test.js:589"}, "properties": {"repobilityId": "b7277d85686c7c53", "scanner": "scanner-primary", "fingerprint": "193e313f0ffb5a0b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7fe744ac6765027e", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/tests/unit/mailVendorService.test.js:4"}, "properties": {"repobilityId": "f14adcb22e6bd8c4", "scanner": "scanner-primary", "fingerprint": "7fe744ac6765027e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b03e3dadb3308c8", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/unit/personaBlockPropagation.test.js:226"}, "properties": {"repobilityId": "41eb0ad146f9e1e2", "scanner": "scanner-primary", "fingerprint": "7b03e3dadb3308c8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7aab089eca300666", "level": "note", "message": {"text": "Legacy-named symbol `find_gigs_nearby_v2` in backend/tests/unit/gigLocationFiltering.test.js:134"}, "properties": {"repobilityId": "6021c21b9869344b", "scanner": "scanner-primary", "fingerprint": "7aab089eca300666", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-442764054d990bd0", "level": "note", "message": {"text": "Legacy-named symbol `places_v1` in backend/tests/unit/canonicalAddressService.test.js:74"}, "properties": {"repobilityId": "5899b922fe0de18f", "scanner": "scanner-primary", "fingerprint": "442764054d990bd0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2b2a25b2e8e3452b", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/unit/canonicalAddressDedup.test.js:4"}, "properties": {"repobilityId": "97ee07ecd4cb39a5", "scanner": "scanner-primary", "fingerprint": "2b2a25b2e8e3452b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c6152d17c32b73f8", "level": "note", "message": {"text": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/homeOwnershipPhase2Compat.test.js:128"}, "properties": {"repobilityId": "c9151ea532bd0fcb", "scanner": "scanner-primary", "fingerprint": "c6152d17c32b73f8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f60050c308a10020", "level": "note", "message": {"text": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/reconcileHomeHouseholdResolution.test.js:32"}, "properties": {"repobilityId": "fce7bc4aa15e0686", "scanner": "scanner-primary", "fingerprint": "f60050c308a10020", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0b7f33408d386dcc", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/tests/unit/verifyTokenCache.test.js:113"}, "properties": {"repobilityId": "c47202bcc35a404c", "scanner": "scanner-primary", "fingerprint": "0b7f33408d386dcc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1096acfc812f0c90", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/tests/unit/landlordAuthorityPipeline.test.js:4"}, "properties": {"repobilityId": "622cf32e08a85eb4", "scanner": "scanner-primary", "fingerprint": "1096acfc812f0c90", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f799001ac9d1c6d3", "level": "none", "message": {"text": "Commented-code block (8 lines) in backend/tests/unit/identityFirewallPrivacy.test.js:823"}, "properties": {"repobilityId": "e906800a8398a523", "scanner": "scanner-primary", "fingerprint": "f799001ac9d1c6d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-35681a6f60511a65", "level": "note", "message": {"text": "Legacy-named symbol `places_v1` in backend/tests/unit/addressPlaceProviderShadow.test.js:84"}, "properties": {"repobilityId": "6223ed677555e143", "scanner": "scanner-primary", "fingerprint": "35681a6f60511a65", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-eb5aff4330ea05d2", "level": "note", "message": {"text": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/homeInviteTokens.test.js:267"}, "properties": {"repobilityId": "99df3db1ca691292", "scanner": "scanner-primary", "fingerprint": "eb5aff4330ea05d2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-fcb4478774c53706", "level": "note", "message": {"text": "Legacy-named symbol `period_unused` in backend/tests/unit/personaMembershipLifecycle.test.js:454"}, "properties": {"repobilityId": "8194538094fec5b0", "scanner": "scanner-primary", "fingerprint": "fcb4478774c53706", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2adab0d59ea1cb48", "level": "note", "message": {"text": "Legacy-named symbol `places_v1` in backend/tests/unit/addressDecisionEngineProviderEnforcement.test.js:56"}, "properties": {"repobilityId": "276d71448ae63d9f", "scanner": "scanner-primary", "fingerprint": "2adab0d59ea1cb48", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-13aac12adf49a98a", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/tests/unit/occupancyAttachPipeline.test.js:4"}, "properties": {"repobilityId": "b5a33c8f2ead7500", "scanner": "scanner-primary", "fingerprint": "13aac12adf49a98a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2eda75faa092333d", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/tests/unit/homePermissions.test.js:1"}, "properties": {"repobilityId": "8e53de569401470c", "scanner": "scanner-primary", "fingerprint": "2eda75faa092333d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eb7df0d4cf470e51", "level": "note", "message": {"text": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/homeClaimComparisonService.test.js:47"}, "properties": {"repobilityId": "c688ccba60f0c3e4", "scanner": "scanner-primary", "fingerprint": "eb7df0d4cf470e51", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2d9e4ed31968200f", "level": "note", "message": {"text": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/expireInitiatedHomeClaims.test.js:28"}, "properties": {"repobilityId": "1e2b590bb3b9a704", "scanner": "scanner-primary", "fingerprint": "2d9e4ed31968200f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a110d5a84554a0cb", "level": "note", "message": {"text": "Legacy-named symbol `price_member_v1` in backend/tests/unit/personaWebhooks.test.js:96"}, "properties": {"repobilityId": "fb1788ccfd3d1c43", "scanner": "scanner-primary", "fingerprint": "a110d5a84554a0cb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0f05f864f6bc9b89", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/tests/unit/legacyIdentityAliasesRemoved.test.js:172"}, "properties": {"repobilityId": "02cb578d3dd5eade", "scanner": "scanner-primary", "fingerprint": "0f05f864f6bc9b89", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6bd8573a07e55807", "level": "note", "message": {"text": "Legacy-named symbol `places_v1` in backend/tests/unit/addressDecisionEngineParcelEnforcement.test.js:58"}, "properties": {"repobilityId": "2f75667dd6673d16", "scanner": "scanner-primary", "fingerprint": "6bd8573a07e55807", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-92e8b82166f9d9d0", "level": "note", "message": {"text": "Legacy-named symbol `us_enrichment_secondary_v1` in backend/tests/unit/homeCheckAddress.test.js:123"}, "properties": {"repobilityId": "1885204d14bcb646", "scanner": "scanner-primary", "fingerprint": "92e8b82166f9d9d0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-aa41aa7339f0f2c1", "level": "note", "message": {"text": "Legacy-named symbol `us_enrichment_secondary_v1` in backend/tests/unit/secondaryAddressProvider.test.js:119"}, "properties": {"repobilityId": "5087cccfc9da52b3", "scanner": "scanner-primary", "fingerprint": "aa41aa7339f0f2c1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2ae1e4efbdb31063", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/tests/unit/safeCreatorSelect.test.js:177"}, "properties": {"repobilityId": "d88cdd90810becad", "scanner": "scanner-primary", "fingerprint": "2ae1e4efbdb31063", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f4cfe033ac78e5dc", "level": "note", "message": {"text": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/homeClaimCompatService.test.js:35"}, "properties": {"repobilityId": "6a0f2adb85fa6d99", "scanner": "scanner-primary", "fingerprint": "f4cfe033ac78e5dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c6e47edc3240f034", "level": "note", "message": {"text": "Legacy-named symbol `us_enrichment_secondary_v1` in backend/tests/unit/addressValidationRoutes.test.js:316"}, "properties": {"repobilityId": "2938014f096dac7d", "scanner": "scanner-primary", "fingerprint": "c6e47edc3240f034", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7925dd3de0bf1d66", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/unit/businessPermissions.test.js:1"}, "properties": {"repobilityId": "ba38171af02f44d6", "scanner": "scanner-primary", "fingerprint": "7925dd3de0bf1d66", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3072fcbd5b4fcec6", "level": "note", "message": {"text": "Legacy-named symbol `places_v1` in backend/tests/unit/addressPlaceProviderEnforcement.test.js:94"}, "properties": {"repobilityId": "7aa21c2ca2da7b84", "scanner": "scanner-primary", "fingerprint": "3072fcbd5b4fcec6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2309df3e337cd776", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/unit/featureFlag.test.js:123"}, "properties": {"repobilityId": "4c1ad4c38ff51287", "scanner": "scanner-primary", "fingerprint": "2309df3e337cd776", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-66db9daeebb51acd", "level": "note", "message": {"text": "Legacy-named symbol `find_listings_nearby_v2` in backend/tests/unit/listingsRemoteRegression.test.js:5"}, "properties": {"repobilityId": "b1369d1eb2c926de", "scanner": "scanner-primary", "fingerprint": "66db9daeebb51acd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6cfeca54528ea966", "level": "note", "message": {"text": "Legacy-named symbol `places_v1` in backend/tests/unit/placeClassificationProvider.test.js:96"}, "properties": {"repobilityId": "caa6565eeeb7fc80", "scanner": "scanner-primary", "fingerprint": "6cfeca54528ea966", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-05bd6e6f24fc297b", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/unit/normalizeAddress.test.js:1"}, "properties": {"repobilityId": "2f58b18b502345ba", "scanner": "scanner-primary", "fingerprint": "05bd6e6f24fc297b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7f4a771333847d7e", "level": "note", "message": {"text": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/homeClaimRoutingService.test.js:84"}, "properties": {"repobilityId": "53db81390e3f103c", "scanner": "scanner-primary", "fingerprint": "7f4a771333847d7e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f01eab26489d194a", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/tests/unit/geoLocationE2E.test.js:4"}, "properties": {"repobilityId": "2f4424a68c88c469", "scanner": "scanner-primary", "fingerprint": "f01eab26489d194a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9c77cfd947d5ee5f", "level": "note", "message": {"text": "Legacy-named symbol `parcel_shadow_v1` in backend/tests/unit/addressParcelProviderShadow.test.js:104"}, "properties": {"repobilityId": "848776d5ab63f817", "scanner": "scanner-primary", "fingerprint": "9c77cfd947d5ee5f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ada23e2f8c491ce1", "level": "none", "message": {"text": "Commented-code block (9 lines) in backend/tests/unit/mailVerificationPipeline.test.js:4"}, "properties": {"repobilityId": "d91f0ace295fbd47", "scanner": "scanner-primary", "fingerprint": "ada23e2f8c491ce1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ee349457874a9c53", "level": "note", "message": {"text": "Legacy-named symbol `find_gigs_nearby_v2` in backend/tests/unit/gigBrowseSections.test.js:326"}, "properties": {"repobilityId": "ca4f996bdee60ac6", "scanner": "scanner-primary", "fingerprint": "ee349457874a9c53", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-27bf1016638eb48f", "level": "note", "message": {"text": "Legacy-named symbol `places_v1` in backend/tests/unit/addressUnitIntelligenceEnforcement.test.js:90"}, "properties": {"repobilityId": "48338a980578718f", "scanner": "scanner-primary", "fingerprint": "27bf1016638eb48f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6cfb08f1d471eccf", "level": "note", "message": {"text": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/homeOwnershipCompareRoute.test.js:82"}, "properties": {"repobilityId": "e8f6918055a011a6", "scanner": "scanner-primary", "fingerprint": "6cfb08f1d471eccf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-769b02d37c567702", "level": "note", "message": {"text": "Legacy-named symbol `fan_old` in backend/tests/unit/personaTier.routes.test.js:349"}, "properties": {"repobilityId": "dd08c3192540a212", "scanner": "scanner-primary", "fingerprint": "769b02d37c567702", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-299ef73edfab5794", "level": "note", "message": {"text": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/homeClaimReadFlags.test.js:87"}, "properties": {"repobilityId": "9ebf7ca5a8970ca0", "scanner": "scanner-primary", "fingerprint": "299ef73edfab5794", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1670442835571ff2", "level": "note", "message": {"text": "Legacy-named symbol `price_member_v1` in backend/tests/unit/personaPayments.test.js:287"}, "properties": {"repobilityId": "ba84a5f0a2ec1d4e", "scanner": "scanner-primary", "fingerprint": "1670442835571ff2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-408d3c459a3b203c", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/tests/unit/personaPayments.test.js:14"}, "properties": {"repobilityId": "32db06073acc7c9b", "scanner": "scanner-primary", "fingerprint": "408d3c459a3b203c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a043c47051e1ab07", "level": "note", "message": {"text": "Legacy-named symbol `us_enrichment_secondary_v1` in backend/tests/unit/addressDecisionEngine.test.js:306"}, "properties": {"repobilityId": "712d976fe700c28d", "scanner": "scanner-primary", "fingerprint": "a043c47051e1ab07", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a1a594c29c60d375", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/unit/feedIdentityAuthors.test.js:166"}, "properties": {"repobilityId": "309402b730d82f5e", "scanner": "scanner-primary", "fingerprint": "a1a594c29c60d375", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab6f6ec112c20f14", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/unit/verifyTokenCookie.test.js:4"}, "properties": {"repobilityId": "4b19a58b7733e553", "scanner": "scanner-primary", "fingerprint": "ab6f6ec112c20f14", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf947521a02f841f", "level": "note", "message": {"text": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/adminOwnershipChallengeReview.test.js:94"}, "properties": {"repobilityId": "8b82e780244335a6", "scanner": "scanner-primary", "fingerprint": "cf947521a02f841f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e8f3e7df463559d8", "level": "note", "message": {"text": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/homeSecurityPolicy.test.js:63"}, "properties": {"repobilityId": "a53ecf525e8427ee", "scanner": "scanner-primary", "fingerprint": "e8f3e7df463559d8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-dde1428038ee674b", "level": "note", "message": {"text": "Legacy-named symbol `parcel_shadow_v1` in backend/tests/unit/addressParcelProviderEnforcement.test.js:95"}, "properties": {"repobilityId": "5e27646b3d2cda27", "scanner": "scanner-primary", "fingerprint": "dde1428038ee674b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-96b9732e952eb181", "level": "note", "message": {"text": "Legacy-named symbol `claim_phase_v2` in backend/tests/unit/landlordAuthorityService.test.js:137"}, "properties": {"repobilityId": "badffce812da7661", "scanner": "scanner-primary", "fingerprint": "96b9732e952eb181", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-741d7c6111d4fd3d", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/tests/unit/privacy/serializerForbiddenKeys.test.js:49"}, "properties": {"repobilityId": "fa82d438dd6fc19e", "scanner": "scanner-primary", "fingerprint": "741d7c6111d4fd3d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fc0560fb425c2cef", "level": "note", "message": {"text": "Legacy-named symbol `places_v1` in backend/tests/fixtures/addressVerificationGroundTruthCorpus.js:57"}, "properties": {"repobilityId": "7543ed9fad4e8ddd", "scanner": "scanner-primary", "fingerprint": "fc0560fb425c2cef", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5d57eed4fc3fd5d3", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/tests/__mocks__/supabaseAdmin.js:1"}, "properties": {"repobilityId": "96f5e99a5e29fcf7", "scanner": "scanner-primary", "fingerprint": "5d57eed4fc3fd5d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7f79a1f26134f58d", "level": "none", "message": {"text": "Commented-code block (12 lines) in backend/tests/__mocks__/stripeFactory.js:10"}, "properties": {"repobilityId": "7d0e040eff7dfa96", "scanner": "scanner-primary", "fingerprint": "7f79a1f26134f58d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2033ad8a48c9a41f", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/tests/__mocks__/stripe.js:1"}, "properties": {"repobilityId": "8e2892332beda905", "scanner": "scanner-primary", "fingerprint": "2033ad8a48c9a41f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-62bb2133e98896bb", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/tests/e2e/chatSocket.test.js:409"}, "properties": {"repobilityId": "a0a17d3fcba40906", "scanner": "scanner-primary", "fingerprint": "62bb2133e98896bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a99ab12423303608", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/middleware/csrfProtection.js:4"}, "properties": {"repobilityId": "ee6d8cdffd736bea", "scanner": "scanner-primary", "fingerprint": "a99ab12423303608", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ca49e96e8b3dd46", "level": "note", "message": {"text": "Legacy-named symbol `tagged_legacy` in backend/scripts/geocode-provenance-backfill.js:74"}, "properties": {"repobilityId": "1d2a64df89279fa5", "scanner": "scanner-primary", "fingerprint": "1ca49e96e8b3dd46", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-39c67e22f249cba0", "level": "note", "message": {"text": "Legacy-named symbol `get_neighborhood_feed_v2` in backend/scripts/identity-firewall-migration-smoke.js:277"}, "properties": {"repobilityId": "28230e7ac7e39081", "scanner": "scanner-primary", "fingerprint": "39c67e22f249cba0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b54ca00337de4380", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/scripts/ci/check-legacy-identity-aliases.js:39"}, "properties": {"repobilityId": "da8a6616fddf7d75", "scanner": "scanner-primary", "fingerprint": "b54ca00337de4380", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-123977ec4f039f95", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/scripts/ci/check-creator-select.js:42"}, "properties": {"repobilityId": "ec67ccd874edcda9", "scanner": "scanner-primary", "fingerprint": "123977ec4f039f95", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c8b2da80be7f833f", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/utils/personaQuotas.js:3"}, "properties": {"repobilityId": "a0d7f319e9611894", "scanner": "scanner-primary", "fingerprint": "c8b2da80be7f833f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-09e19c255c4f2c05", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/utils/csrf.js:4"}, "properties": {"repobilityId": "eb12c49c8d3bc8ab", "scanner": "scanner-primary", "fingerprint": "09e19c255c4f2c05", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b5b0165fc0d8b972", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/utils/identityProfiles.js:4"}, "properties": {"repobilityId": "e4304b75bd07dd92", "scanner": "scanner-primary", "fingerprint": "b5b0165fc0d8b972", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-afd55a763e8e7a83", "level": "none", "message": {"text": "Commented-code block (13 lines) in backend/routes/neighborMessages.js:4"}, "properties": {"repobilityId": "3892baaa61739014", "scanner": "scanner-primary", "fingerprint": "afd55a763e8e7a83", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-207a6e82467bce6b", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/routes/blocks.js:52"}, "properties": {"repobilityId": "1e996c8d2bad83d0", "scanner": "scanner-primary", "fingerprint": "207a6e82467bce6b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-40afc51b54881326", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/routes/mailCompose.js:1"}, "properties": {"repobilityId": "5d773a38f1a39599", "scanner": "scanner-primary", "fingerprint": "40afc51b54881326", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f4bd40ccf2a38cb7", "level": "note", "message": {"text": "Legacy-named symbol `claim_phase_v2` in backend/routes/home.js:1551"}, "properties": {"repobilityId": "43ffeb086184f5f8", "scanner": "scanner-primary", "fingerprint": "f4bd40ccf2a38cb7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bf13a7a37903c8f1", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/routes/location.js:1"}, "properties": {"repobilityId": "6fd054128589278c", "scanner": "scanner-primary", "fingerprint": "bf13a7a37903c8f1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-588286a84b56ab11", "level": "note", "message": {"text": "Legacy-named symbol `claim_phase_v2` in backend/routes/admin.js:21"}, "properties": {"repobilityId": "c654e2091e40649a", "scanner": "scanner-primary", "fingerprint": "588286a84b56ab11", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-cb5ef869e9328520", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/routes/admin.js:1"}, "properties": {"repobilityId": "be80bf1907e9732a", "scanner": "scanner-primary", "fingerprint": "cb5ef869e9328520", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-37f0cd2908b32528", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/routes/wallet.js:6"}, "properties": {"repobilityId": "5ed9e3319831237e", "scanner": "scanner-primary", "fingerprint": "37f0cd2908b32528", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-84ca458dd913dd3a", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/routes/public.js:14"}, "properties": {"repobilityId": "69dffee596ab5620", "scanner": "scanner-primary", "fingerprint": "84ca458dd913dd3a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3672d35e61434595", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/routes/supportTrains.js:2285"}, "properties": {"repobilityId": "597e98d1ffc3dec5", "scanner": "scanner-primary", "fingerprint": "3672d35e61434595", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ce33080ca454a763", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/routes/posts.js:884"}, "properties": {"repobilityId": "9ac9d12aaa60dfcb", "scanner": "scanner-primary", "fingerprint": "ce33080ca454a763", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-93ea1bf5b287c954", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/routes/landlordTenant.js:84"}, "properties": {"repobilityId": "d56c1c3eb5f56b40", "scanner": "scanner-primary", "fingerprint": "93ea1bf5b287c954", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1515cb4dd6926c78", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/routes/transactionReviews.js:1"}, "properties": {"repobilityId": "da9a5bc5572bad84", "scanner": "scanner-primary", "fingerprint": "1515cb4dd6926c78", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ac918fbf460af752", "level": "note", "message": {"text": "Legacy-named symbol `find_gigs_nearby_v2` in backend/routes/gigs.js:1842"}, "properties": {"repobilityId": "50d5507bcf8c8219", "scanner": "scanner-primary", "fingerprint": "ac918fbf460af752", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-feb6e545374bcb04", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/routes/gigs.js:171"}, "properties": {"repobilityId": "fc11e84f993c1695", "scanner": "scanner-primary", "fingerprint": "feb6e545374bcb04", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f71e0899d7eb8b7c", "level": "note", "message": {"text": "Legacy-named symbol `period_unused` in backend/routes/personaMembership.js:238"}, "properties": {"repobilityId": "93a25e72957664b7", "scanner": "scanner-primary", "fingerprint": "f71e0899d7eb8b7c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c0059d479d0d85e5", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/routes/personaMembership.js:3"}, "properties": {"repobilityId": "1941be63ad37fccd", "scanner": "scanner-primary", "fingerprint": "c0059d479d0d85e5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b9b0b57564d1f2f", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/routes/broadcastChannels.js:258"}, "properties": {"repobilityId": "d3ec0966513f96fe", "scanner": "scanner-primary", "fingerprint": "4b9b0b57564d1f2f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de50f6b26fa30f7d", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/routes/personaTiers.js:11"}, "properties": {"repobilityId": "8027d13b92910e0c", "scanner": "scanner-primary", "fingerprint": "de50f6b26fa30f7d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b11ba6422596c90", "level": "note", "message": {"text": "Legacy-named symbol `mailjson_v1` in backend/routes/mailbox.js:74"}, "properties": {"repobilityId": "fce3b303f492c2fb", "scanner": "scanner-primary", "fingerprint": "9b11ba6422596c90", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-72b07b634fe8476b", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/routes/personaBlocks.js:3"}, "properties": {"repobilityId": "cf519aace4c4a0f0", "scanner": "scanner-primary", "fingerprint": "72b07b634fe8476b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-554d785d027e1d59", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/routes/residencyLetters.js:4"}, "properties": {"repobilityId": "8e7de937e6b9e1c9", "scanner": "scanner-primary", "fingerprint": "554d785d027e1d59", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f0b98aa8bab4f082", "level": "none", "message": {"text": "Commented-code block (10 lines) in backend/routes/hub.js:1"}, "properties": {"repobilityId": "24adb3fc1ed05772", "scanner": "scanner-primary", "fingerprint": "f0b98aa8bab4f082", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-71c90bfccad3cc44", "level": "none", "message": {"text": "Commented-code block (8 lines) in backend/routes/personaDms.js:12"}, "properties": {"repobilityId": "832a5dee7c9ea2c6", "scanner": "scanner-primary", "fingerprint": "71c90bfccad3cc44", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-64bd9dab7fb96f83", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/routes/identityCenter.js:294"}, "properties": {"repobilityId": "a29f0aa1b60cfe9b", "scanner": "scanner-primary", "fingerprint": "64bd9dab7fb96f83", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a828520b259cd994", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/routes/paymentOps.js:35"}, "properties": {"repobilityId": "97cfe7fe30ebb927", "scanner": "scanner-primary", "fingerprint": "a828520b259cd994", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e99403ba3e984c01", "level": "none", "message": {"text": "Commented-code block (8 lines) in backend/routes/personas.js:413"}, "properties": {"repobilityId": "06b2265bc3c5675c", "scanner": "scanner-primary", "fingerprint": "e99403ba3e984c01", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-031e41574b1fabf1", "level": "note", "message": {"text": "Legacy-named symbol `claim_phase_v2` in backend/routes/homeOwnership.js:262"}, "properties": {"repobilityId": "e43e5827feef5c81", "scanner": "scanner-primary", "fingerprint": "031e41574b1fabf1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b793c3aa632fa6ae", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/routes/internal.js:1"}, "properties": {"repobilityId": "277026f1ee35c3c1", "scanner": "scanner-primary", "fingerprint": "b793c3aa632fa6ae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d33ea6d875452530", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/routes/users.js:2830"}, "properties": {"repobilityId": "a1e999f644162fc7", "scanner": "scanner-primary", "fingerprint": "d33ea6d875452530", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-48a36706995ebf66", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/routes/mailboxV2Phase3.js:1"}, "properties": {"repobilityId": "5f33f8ec13e436ae", "scanner": "scanner-primary", "fingerprint": "48a36706995ebf66", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c9ca3a52d9982888", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/routes/pays.js:605"}, "properties": {"repobilityId": "9401bc743af20272", "scanner": "scanner-primary", "fingerprint": "c9ca3a52d9982888", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f3bd8584c4135ab2", "level": "note", "message": {"text": "Legacy-named symbol `find_listings_nearby_v2` in backend/routes/listings.js:811"}, "properties": {"repobilityId": "fedbc84fc10dc55e", "scanner": "scanner-primary", "fingerprint": "f3bd8584c4135ab2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c2b4069e98869671", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/routes/listings.js:50"}, "properties": {"repobilityId": "de6cd1b173f32cea", "scanner": "scanner-primary", "fingerprint": "c2b4069e98869671", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ac8690e33f7179aa", "level": "note", "message": {"text": "Legacy-named symbol `claim_phase_v2` in backend/routes/upload.js:1406"}, "properties": {"repobilityId": "cfe288dea99637f1", "scanner": "scanner-primary", "fingerprint": "ac8690e33f7179aa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-fb2ec45560750c73", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/routes/chats.js:707"}, "properties": {"repobilityId": "2d9db76dd9f4ac55", "scanner": "scanner-primary", "fingerprint": "fb2ec45560750c73", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0ca31fae576a0325", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/serializers/placeIntelligenceSerializer.js:4"}, "properties": {"repobilityId": "9b2798faa12090e2", "scanner": "scanner-primary", "fingerprint": "0ca31fae576a0325", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a11757e1d5ab76b4", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/serializers/identitySerializers.js:5"}, "properties": {"repobilityId": "9f0b346488799e08", "scanner": "scanner-primary", "fingerprint": "a11757e1d5ab76b4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-493a3b7796ae1a7c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 backend/services/placeSectionCache.js:18"}, "properties": {"repobilityId": "09d34f6b72932811", "scanner": "scanner-primary", "fingerprint": "493a3b7796ae1a7c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-63f125e92ff569f7", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/services/personaTierService.js:53"}, "properties": {"repobilityId": "175f6b7f6dbfeaf3", "scanner": "scanner-primary", "fingerprint": "63f125e92ff569f7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-90efd42ca2bb2855", "level": "note", "message": {"text": "Legacy-named symbol `claim_phase_v2` in backend/services/homeClaimComparisonService.js:33"}, "properties": {"repobilityId": "84ec80c3f15a911b", "scanner": "scanner-primary", "fingerprint": "90efd42ca2bb2855", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f2c22e2275581b5d", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/services/feedService.js:104"}, "properties": {"repobilityId": "17c3e91d370d8171", "scanner": "scanner-primary", "fingerprint": "f2c22e2275581b5d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a45c741de82c397f", "level": "none", "message": {"text": "Commented-code block (14 lines) in backend/services/personaSubscriptionLifecycleService.js:3"}, "properties": {"repobilityId": "d915786fcf43ed89", "scanner": "scanner-primary", "fingerprint": "a45c741de82c397f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cbcb7b9ef56413df", "level": "note", "message": {"text": "Legacy-named symbol `claim_phase_v2` in backend/services/homeClaimMergeService.js:21"}, "properties": {"repobilityId": "07815f8f48315b51", "scanner": "scanner-primary", "fingerprint": "cbcb7b9ef56413df", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a6533d12dd95c103", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/services/earningsService.js:1"}, "properties": {"repobilityId": "0aedc3e8c8225204", "scanner": "scanner-primary", "fingerprint": "a6533d12dd95c103", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d0aba2e8ae3e7a5e", "level": "none", "message": {"text": "Commented-code block (9 lines) in backend/services/emailService.js:882"}, "properties": {"repobilityId": "bc94b2bf8de65cd7", "scanner": "scanner-primary", "fingerprint": "d0aba2e8ae3e7a5e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1c10d93086f6f27a", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/services/placeSectionAdapters.js:132"}, "properties": {"repobilityId": "5de0f4d751db9b74", "scanner": "scanner-primary", "fingerprint": "1c10d93086f6f27a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dd0cc94126425e54", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 backend/services/placeSectionAdapters.js:576"}, "properties": {"repobilityId": "edb13ec95ed644ff", "scanner": "scanner-primary", "fingerprint": "dd0cc94126425e54", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b9b1284612e1e21a", "level": "none", "message": {"text": "Commented-code block (16 lines) in backend/services/personaBlockService.js:7"}, "properties": {"repobilityId": "19490aa040f292a9", "scanner": "scanner-primary", "fingerprint": "b9b1284612e1e21a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c276e6f78ca8d059", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 backend/services/propertyDataService.js:32"}, "properties": {"repobilityId": "ddfb6c896c1a1bdf", "scanner": "scanner-primary", "fingerprint": "c276e6f78ca8d059", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-12c44e5f44d1dc3a", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/services/businessMembershipService.js:4"}, "properties": {"repobilityId": "215874d97f105412", "scanner": "scanner-primary", "fingerprint": "12c44e5f44d1dc3a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ff46bbcde7adabc6", "level": "none", "message": {"text": "Commented-code block (11 lines) in backend/services/personaPaymentsService.js:8"}, "properties": {"repobilityId": "61fe21b5bd25c1d8", "scanner": "scanner-primary", "fingerprint": "ff46bbcde7adabc6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c43d509aa288c443", "level": "note", "message": {"text": "Legacy-named symbol `claim_phase_v2` in backend/services/homeClaimRoutingService.js:56"}, "properties": {"repobilityId": "4630b26c3af3efd4", "scanner": "scanner-primary", "fingerprint": "c43d509aa288c443", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f53da230c0920fa7", "level": "none", "message": {"text": "Commented-code block (12 lines) in backend/services/personaDmService.js:10"}, "properties": {"repobilityId": "eeacae7b6d6a6831", "scanner": "scanner-primary", "fingerprint": "f53da230c0920fa7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7994dbe98a631d23", "level": "none", "message": {"text": "Commented-code block (19 lines) in backend/services/notificationService.js:24"}, "properties": {"repobilityId": "2699ef5dd02962ab", "scanner": "scanner-primary", "fingerprint": "7994dbe98a631d23", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6b0421bffaef04e1", "level": "none", "message": {"text": "Commented-code block (11 lines) in backend/services/placeIntelligenceService.js:4"}, "properties": {"repobilityId": "a67028f95b88e6f3", "scanner": "scanner-primary", "fingerprint": "6b0421bffaef04e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b42d58fb7e1acfb9", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/services/notificationTemplateRegistry.js:106"}, "properties": {"repobilityId": "33a8bc3e7dfddcf0", "scanner": "scanner-primary", "fingerprint": "b42d58fb7e1acfb9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-02d500a76ee1a271", "level": "note", "message": {"text": "Legacy-named symbol `claim_phase_v2` in backend/services/homeClaimCompatService.js:51"}, "properties": {"repobilityId": "d19d04fe9ab3274e", "scanner": "scanner-primary", "fingerprint": "02d500a76ee1a271", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9f9983da3636e502", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/services/monthlyReceiptService.js:1"}, "properties": {"repobilityId": "d8837e271edadc5d", "scanner": "scanner-primary", "fingerprint": "9f9983da3636e502", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c59dbed123e27ad1", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/services/alertingService.js:6"}, "properties": {"repobilityId": "0d77be72a790679f", "scanner": "scanner-primary", "fingerprint": "c59dbed123e27ad1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8403f9f40034b20a", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/services/walletService.js:5"}, "properties": {"repobilityId": "4fee58469493a345", "scanner": "scanner-primary", "fingerprint": "8403f9f40034b20a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-295bc74bcd64aac0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 backend/services/external/airNow.js:120"}, "properties": {"repobilityId": "dc3a0e1ac17a424b", "scanner": "scanner-primary", "fingerprint": "295bc74bcd64aac0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-140ac284b472eb93", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 backend/services/external/noaa.js:90"}, "properties": {"repobilityId": "101a85e5b1394880", "scanner": "scanner-primary", "fingerprint": "140ac284b472eb93", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6d3421ae40be7575", "level": "note", "message": {"text": "Legacy-named symbol `address_verification_v1` in backend/services/addressValidation/mailVerificationService.js:204"}, "properties": {"repobilityId": "fcfa866e5f771afa", "scanner": "scanner-primary", "fingerprint": "6d3421ae40be7575", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ecafc0c8e3b8427d", "level": "note", "message": {"text": "Legacy-named symbol `places_v1` in backend/services/addressValidation/placeClassificationProvider.js:202"}, "properties": {"repobilityId": "8a0850f097484d23", "scanner": "scanner-primary", "fingerprint": "ecafc0c8e3b8427d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-62465f398145bd1f", "level": "note", "message": {"text": "Legacy-named symbol `us_enrichment_secondary_v1` in backend/services/addressValidation/secondaryAddressProvider.js:122"}, "properties": {"repobilityId": "2e94dbf185887fc4", "scanner": "scanner-primary", "fingerprint": "62465f398145bd1f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8f9d2aa3b7125e39", "level": "note", "message": {"text": "Legacy-named symbol `parcel_shadow_v1` in backend/services/addressValidation/parcelIntelProvider.js:162"}, "properties": {"repobilityId": "5b120c74b890977f", "scanner": "scanner-primary", "fingerprint": "8f9d2aa3b7125e39", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e050c3d6d44d3694", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/services/ai/tools.js:325"}, "properties": {"repobilityId": "0d51f8c5ded2d795", "scanner": "scanner-primary", "fingerprint": "e050c3d6d44d3694", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-26e10089e7fed8ed", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/services/ai/neighborhoodProfileService.js:431"}, "properties": {"repobilityId": "01e91f584168a2ab", "scanner": "scanner-primary", "fingerprint": "26e10089e7fed8ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-74c48e95530244e7", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/services/ai/propertyIntelligenceService.js:30"}, "properties": {"repobilityId": "7b4f567e8c320b4d", "scanner": "scanner-primary", "fingerprint": "74c48e95530244e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ba9e8dba236e5a6", "level": "note", "message": {"text": "Legacy-named symbol `find_listings_nearby_v2` in backend/services/marketplace/marketplaceService.js:5"}, "properties": {"repobilityId": "832e03ecdf88d6c3", "scanner": "scanner-primary", "fingerprint": "1ba9e8dba236e5a6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-40ab98618fdc2f8d", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/services/gig/affinityService.js:7"}, "properties": {"repobilityId": "5e7b80b201995500", "scanner": "scanner-primary", "fingerprint": "40ab98618fdc2f8d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a349435cbb42d027", "level": "note", "message": {"text": "Legacy-named symbol `find_gigs_nearby_v2` in backend/services/gig/clusterService.js:41"}, "properties": {"repobilityId": "7f16ed3cdd950e05", "scanner": "scanner-primary", "fingerprint": "a349435cbb42d027", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ee9678b6f0cd6274", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/services/gig/rankingService.js:4"}, "properties": {"repobilityId": "d1541bf62dfd3459", "scanner": "scanner-primary", "fingerprint": "ee9678b6f0cd6274", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c14e8f4278b34f5a", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/services/place/densityReader.js:33"}, "properties": {"repobilityId": "b73e360f73ec0693", "scanner": "scanner-primary", "fingerprint": "c14e8f4278b34f5a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c91b5686870be766", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 backend/services/geo/mapboxProvider.js:150"}, "properties": {"repobilityId": "7019021756a1a885", "scanner": "scanner-primary", "fingerprint": "c91b5686870be766", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cd4437c2bd153193", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 backend/services/context/providers/weatherkit.js:292"}, "properties": {"repobilityId": "bfb51533746d0365", "scanner": "scanner-primary", "fingerprint": "cd4437c2bd153193", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4826bddb200441dd", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/stripe/paymentStateMachine.js:1"}, "properties": {"repobilityId": "7afc710c0b1fceec", "scanner": "scanner-primary", "fingerprint": "4826bddb200441dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4323a9b9a4709ed6", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/stripe/stripeService.js:1"}, "properties": {"repobilityId": "e005399b4a474870", "scanner": "scanner-primary", "fingerprint": "4323a9b9a4709ed6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-36ec7f92fa181509", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/stripe/stripeWebhooks.js:5"}, "properties": {"repobilityId": "e9101b4b502868e6", "scanner": "scanner-primary", "fingerprint": "36ec7f92fa181509", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a00a7b31662d945a", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/stripe/disputeService.js:5"}, "properties": {"repobilityId": "9de4ca4757f32233", "scanner": "scanner-primary", "fingerprint": "a00a7b31662d945a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-776d28503ae3849a", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/jobs/mailDayNotification.js:1"}, "properties": {"repobilityId": "f5c83e6e0923e71d", "scanner": "scanner-primary", "fingerprint": "776d28503ae3849a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb3cc58e6bc863d7", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/jobs/communityModeration.js:1"}, "properties": {"repobilityId": "7b24e4690b5674c0", "scanner": "scanner-primary", "fingerprint": "cb3cc58e6bc863d7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9059d61c83a48f6c", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/jobs/retryCaptureFailures.js:1"}, "properties": {"repobilityId": "92cdff1311d39cb8", "scanner": "scanner-primary", "fingerprint": "9059d61c83a48f6c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cd263cb55267647a", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/jobs/vacationHoldExpiry.js:1"}, "properties": {"repobilityId": "5b6ec9596bfb62e5", "scanner": "scanner-primary", "fingerprint": "cd263cb55267647a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf4bab19a7cb9350", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/jobs/expireGigs.js:1"}, "properties": {"repobilityId": "c8477c90efd16fae", "scanner": "scanner-primary", "fingerprint": "cf4bab19a7cb9350", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e4d7f50e991a343d", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/jobs/refreshDiscoveryCache.js:1"}, "properties": {"repobilityId": "ff70eb782ee8805b", "scanner": "scanner-primary", "fingerprint": "e4d7f50e991a343d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-068b2513e19e2ff4", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/jobs/stampAwarder.js:1"}, "properties": {"repobilityId": "6356afa09924aae3", "scanner": "scanner-primary", "fingerprint": "068b2513e19e2ff4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ea6d343ce88bd670", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/jobs/expirePendingPaymentBids.js:1"}, "properties": {"repobilityId": "6d92d565b4f29d7a", "scanner": "scanner-primary", "fingerprint": "ea6d343ce88bd670", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-713a6caf40dcb82a", "level": "note", "message": {"text": "Legacy-named symbol `claim_phase_v2` in backend/jobs/expireInitiatedHomeClaims.js:14"}, "properties": {"repobilityId": "1152d99bcba48a6b", "scanner": "scanner-primary", "fingerprint": "713a6caf40dcb82a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-eae519b848b5af26", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/jobs/computeReputation.js:1"}, "properties": {"repobilityId": "79579375e896ed3f", "scanner": "scanner-primary", "fingerprint": "eae519b848b5af26", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7972a5341a3fc836", "level": "none", "message": {"text": "Commented-code block (8 lines) in backend/jobs/mailInterruptNotification.js:1"}, "properties": {"repobilityId": "bed6d894464715fa", "scanner": "scanner-primary", "fingerprint": "7972a5341a3fc836", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1ed7417ef529d12", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/jobs/monthlyReceiptJob.js:1"}, "properties": {"repobilityId": "c22eef2cf75663cb", "scanner": "scanner-primary", "fingerprint": "f1ed7417ef529d12", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b52fb4be9790a29", "level": "none", "message": {"text": "Commented-code block (9 lines) in backend/jobs/earnRiskReview.js:1"}, "properties": {"repobilityId": "c7bd5c1da5fde820", "scanner": "scanner-primary", "fingerprint": "7b52fb4be9790a29", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-26637da15d26fb79", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/jobs/computeAvgResponseTime.js:77"}, "properties": {"repobilityId": "85accdc7ccd3cab5", "scanner": "scanner-primary", "fingerprint": "26637da15d26fb79", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0085ae13227ec0be", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/jobs/mailPartyExpiry.js:1"}, "properties": {"repobilityId": "aa27ee4f7832b790", "scanner": "scanner-primary", "fingerprint": "0085ae13227ec0be", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ecf412bcde8b903", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/jobs/processPendingTransfers.js:1"}, "properties": {"repobilityId": "5025e2edad8b63c3", "scanner": "scanner-primary", "fingerprint": "1ecf412bcde8b903", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4cd4a26351fd5c84", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/jobs/trustAnomalyDetection.js:14"}, "properties": {"repobilityId": "4aa0bbfea1689e09", "scanner": "scanner-primary", "fingerprint": "4cd4a26351fd5c84", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-71f9ce3e9a0870d5", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/jobs/autoRemindWorker.js:6"}, "properties": {"repobilityId": "7ec10cf55cf65dae", "scanner": "scanner-primary", "fingerprint": "71f9ce3e9a0870d5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6e0fe4030b0687af", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/jobs/processClaimWindows.js:1"}, "properties": {"repobilityId": "75481d3152897cf4", "scanner": "scanner-primary", "fingerprint": "6e0fe4030b0687af", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6808e299633dde83", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/jobs/billBenchmarkRefresh.js:1"}, "properties": {"repobilityId": "616294448f5caae0", "scanner": "scanner-primary", "fingerprint": "6808e299633dde83", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2a67ad52cd10faef", "level": "none", "message": {"text": "Commented-code block (8 lines) in backend/jobs/vaultWeeklyDigest.js:1"}, "properties": {"repobilityId": "6166cab7eb690bbe", "scanner": "scanner-primary", "fingerprint": "2a67ad52cd10faef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a4c621e33c5d4230", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/jobs/expireListings.js:1"}, "properties": {"repobilityId": "39dda9a9730a9a3e", "scanner": "scanner-primary", "fingerprint": "a4c621e33c5d4230", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-df40a8e96f42784d", "level": "none", "message": {"text": "Commented-code block (15 lines) in backend/jobs/index.js:6"}, "properties": {"repobilityId": "ea6ee5a124cd60d2", "scanner": "scanner-primary", "fingerprint": "df40a8e96f42784d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a9eb4e3416a23b0e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 backend/jobs/chatRedactionJob.js:9"}, "properties": {"repobilityId": "56983e32b88bedef", "scanner": "scanner-primary", "fingerprint": "a9eb4e3416a23b0e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bb638a8b79434892", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/jobs/expireOffers.js:1"}, "properties": {"repobilityId": "8824eb73b5757c7c", "scanner": "scanner-primary", "fingerprint": "bb638a8b79434892", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a8338454ebb0e363", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/jobs/authorizeUpcomingGigs.js:1"}, "properties": {"repobilityId": "bc2be595a772ed53", "scanner": "scanner-primary", "fingerprint": "a8338454ebb0e363", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3f202066e597285", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/jobs/mailEscrowExpiry.js:1"}, "properties": {"repobilityId": "289d4e40f06db44d", "scanner": "scanner-primary", "fingerprint": "d3f202066e597285", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6a6444aabc0c875", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/jobs/supportTrainReminders.js:6"}, "properties": {"repobilityId": "4ce8f226472245ca", "scanner": "scanner-primary", "fingerprint": "d6a6444aabc0c875", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3b5eba59879008c9", "level": "note", "message": {"text": "104 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "a4a1409b07b00517", "scanner": "scanner-primary", "fingerprint": "3b5eba59879008c9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "88e4bf99b1918094", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "b834e86d700beebe", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "dee3176c9a6c6df3", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "b1a911d526158ee9", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-3d99b0a9c9b90ee2", "level": "error", "message": {"text": "Dangling fetch: GET https://data.openstates.org/people/current/${st}.csv (backend/services/placeSectionAdapters.js:576)"}, "properties": {"repobilityId": "519a986036d169ee", "scanner": "scanner-primary", "fingerprint": "3d99b0a9c9b90ee2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-143f13e597069f84", "level": "error", "message": {"text": "Dangling fetch: POST https://events.pagerduty.com/v2/enqueue (backend/services/alertingService.js:121)"}, "properties": {"repobilityId": "b8fbf519eb38e3f8", "scanner": "scanner-primary", "fingerprint": "143f13e597069f84", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-99ddefa1f80a557d", "level": "error", "message": {"text": "Dangling fetch: GET /app/notifications (frontend/apps/web/src/components/AppShell.tsx:301)"}, "properties": {"repobilityId": "53470cdff3696199", "scanner": "scanner-primary", "fingerprint": "99ddefa1f80a557d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-10439a061521b94c", "level": "error", "message": {"text": "Dangling fetch: GET /app/hub (frontend/apps/web/src/components/AppShell.tsx:644)"}, "properties": {"repobilityId": "a3ba3df7aa2536f7", "scanner": "scanner-primary", "fingerprint": "10439a061521b94c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4ace6e8a9fa20b38", "level": "error", "message": {"text": "Dangling fetch: GET /app/place (frontend/apps/web/src/components/AppShell.tsx:655)"}, "properties": {"repobilityId": "6bacf79bf2c56a8a", "scanner": "scanner-primary", "fingerprint": "4ace6e8a9fa20b38", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-98eacdd6179f54ab", "level": "error", "message": {"text": "Dangling fetch: GET /app/feed (frontend/apps/web/src/components/AppShell.tsx:667)"}, "properties": {"repobilityId": "653dcb6f9e49ddfb", "scanner": "scanner-primary", "fingerprint": "98eacdd6179f54ab", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8513012239530038", "level": "error", "message": {"text": "Dangling fetch: GET /app/gigs (frontend/apps/web/src/components/AppShell.tsx:670)"}, "properties": {"repobilityId": "468a81a139574019", "scanner": "scanner-primary", "fingerprint": "8513012239530038", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c067735ee17cdbd0", "level": "error", "message": {"text": "Dangling fetch: GET /app/marketplace (frontend/apps/web/src/components/AppShell.tsx:673)"}, "properties": {"repobilityId": "47586002972d88e6", "scanner": "scanner-primary", "fingerprint": "c067735ee17cdbd0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-87969eed6ac40d0e", "level": "error", "message": {"text": "Dangling fetch: GET /app/chat (frontend/apps/web/src/components/AppShell.tsx:677)"}, "properties": {"repobilityId": "8ae142a5704a3d56", "scanner": "scanner-primary", "fingerprint": "87969eed6ac40d0e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c1d99fbacf716e78", "level": "error", "message": {"text": "Dangling fetch: GET /app/audience (frontend/apps/web/src/components/AppShell.tsx:689)"}, "properties": {"repobilityId": "c7a842b7d607fb51", "scanner": "scanner-primary", "fingerprint": "c1d99fbacf716e78", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-aafff3b18a1d7d52", "level": "error", "message": {"text": "Dangling fetch: POST /api/activities/support-trains/${supportTrainId}/slots/${slotId}/guest-reserve (frontend/apps/web/src/components/public-share/GuestSignupModal.tsx:91)"}, "properties": {"repobilityId": "a32885f74f4f4a3c", "scanner": "scanner-primary", "fingerprint": "aafff3b18a1d7d52", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cc39aff249d4a308", "level": "note", "message": {"text": "Unused endpoint: USE /api/webhooks/stripe"}, "properties": {"repobilityId": "4ca76dc58c685158", "scanner": "scanner-primary", "fingerprint": "cc39aff249d4a308", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-78c1101d0434b3b8", "level": "note", "message": {"text": "Unused endpoint: USE /api/v1/webhooks/lob"}, "properties": {"repobilityId": "7117038327480c2f", "scanner": "scanner-primary", "fingerprint": "78c1101d0434b3b8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-938ed6d35eaa090b", "level": "note", "message": {"text": "Unused endpoint: USE /api/internal/email-inbound"}, "properties": {"repobilityId": "caa897efc5c7ab8d", "scanner": "scanner-primary", "fingerprint": "938ed6d35eaa090b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5baa8971ebe192a1", "level": "note", "message": {"text": "Unused endpoint: GET /"}, "properties": {"repobilityId": "6bd1f091a9ff7a96", "scanner": "scanner-primary", "fingerprint": "5baa8971ebe192a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3d88fbb12d43299d", "level": "note", "message": {"text": "Unused endpoint: GET /api/health/metrics"}, "properties": {"repobilityId": "ca764985fda42c4a", "scanner": "scanner-primary", "fingerprint": "3d88fbb12d43299d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-dde3adb27bf7eebe", "level": "note", "message": {"text": "Unused endpoint: USE /api"}, "properties": {"repobilityId": "c70c4b39abbcbf3e", "scanner": "scanner-primary", "fingerprint": "dde3adb27bf7eebe", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f8242ba07247d2f8", "level": "note", "message": {"text": "Unused endpoint: USE /api/payments"}, "properties": {"repobilityId": "6250aa016ed84ff6", "scanner": "scanner-primary", "fingerprint": "f8242ba07247d2f8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5d917f1d5d77d899", "level": "note", "message": {"text": "Unused endpoint: USE /api/wallet"}, "properties": {"repobilityId": "f8326351dd44ec31", "scanner": "scanner-primary", "fingerprint": "5d917f1d5d77d899", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1be44d2cc9b65154", "level": "note", "message": {"text": "Unused endpoint: USE /api/posts"}, "properties": {"repobilityId": "243dfb654d067ad0", "scanner": "scanner-primary", "fingerprint": "1be44d2cc9b65154", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-001e9cd655ce8831", "level": "note", "message": {"text": "Unused endpoint: USE /api/listings"}, "properties": {"repobilityId": "9bc366531bdc3d14", "scanner": "scanner-primary", "fingerprint": "001e9cd655ce8831", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6bc67f1b28354b74", "level": "note", "message": {"text": "Unused endpoint: USE /api/reviews"}, "properties": {"repobilityId": "303724bf347ce58c", "scanner": "scanner-primary", "fingerprint": "6bc67f1b28354b74", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-efd1cab9257139e8", "level": "note", "message": {"text": "Unused endpoint: USE /api/homes"}, "properties": {"repobilityId": "414f137f59eb8f4f", "scanner": "scanner-primary", "fingerprint": "efd1cab9257139e8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b75cba749f04049f", "level": "note", "message": {"text": "Unused endpoint: USE /api/users/login"}, "properties": {"repobilityId": "f7f5682b2c5c7811", "scanner": "scanner-primary", "fingerprint": "b75cba749f04049f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1c4b9cf5663d27d9", "level": "note", "message": {"text": "Unused endpoint: USE /api/users/register"}, "properties": {"repobilityId": "890e9fd824af68b4", "scanner": "scanner-primary", "fingerprint": "1c4b9cf5663d27d9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-446fe4b6ad1a4ff9", "level": "note", "message": {"text": "Unused endpoint: USE /api/public"}, "properties": {"repobilityId": "59eeb95f2d4c063f", "scanner": "scanner-primary", "fingerprint": "446fe4b6ad1a4ff9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4ff40cb10f7c8519", "level": "note", "message": {"text": "Unused endpoint: USE /api/users"}, "properties": {"repobilityId": "e4e8225cba750d03", "scanner": "scanner-primary", "fingerprint": "4ff40cb10f7c8519", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a5f92d493ba35eb3", "level": "note", "message": {"text": "Unused endpoint: USE /api/gigs"}, "properties": {"repobilityId": "57bf55713d1d5330", "scanner": "scanner-primary", "fingerprint": "a5f92d493ba35eb3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bb4908c31f69d0c0", "level": "note", "message": {"text": "Unused endpoint: USE /api/v2"}, "properties": {"repobilityId": "03ea5f14fcdde025", "scanner": "scanner-primary", "fingerprint": "bb4908c31f69d0c0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-470984750ed2645a", "level": "note", "message": {"text": "Unused endpoint: USE /api/mailbox/compose"}, "properties": {"repobilityId": "eb8c7648a307657a", "scanner": "scanner-primary", "fingerprint": "470984750ed2645a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-acb5e11a59bc1c9a", "level": "note", "message": {"text": "Unused endpoint: USE /api/mailbox"}, "properties": {"repobilityId": "17c4d1dc0b56666a", "scanner": "scanner-primary", "fingerprint": "acb5e11a59bc1c9a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1eab9008dd711d05", "level": "note", "message": {"text": "Unused endpoint: USE /api/mailbox/v2/mailday"}, "properties": {"repobilityId": "f30ab77364b5c173", "scanner": "scanner-primary", "fingerprint": "1eab9008dd711d05", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9ee858b9d5ab9660", "level": "note", "message": {"text": "Unused endpoint: USE /api/mailbox/v2"}, "properties": {"repobilityId": "773799661f8df991", "scanner": "scanner-primary", "fingerprint": "9ee858b9d5ab9660", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-520f30def3d3d945", "level": "note", "message": {"text": "Unused endpoint: USE /api/mailbox/v2/p2"}, "properties": {"repobilityId": "7bcc3c32aed532b3", "scanner": "scanner-primary", "fingerprint": "520f30def3d3d945", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-33239beecf80ef6f", "level": "note", "message": {"text": "Unused endpoint: USE /api/mailbox/v2/p3"}, "properties": {"repobilityId": "13ca17516566117d", "scanner": "scanner-primary", "fingerprint": "33239beecf80ef6f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8283be3be1b67ea9", "level": "note", "message": {"text": "Unused endpoint: USE /api/sports"}, "properties": {"repobilityId": "c26952c23c085375", "scanner": "scanner-primary", "fingerprint": "8283be3be1b67ea9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-15662ab348abba6b", "level": "note", "message": {"text": "Unused endpoint: USE /api/files"}, "properties": {"repobilityId": "60c2fc819cdeada2", "scanner": "scanner-primary", "fingerprint": "15662ab348abba6b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2b92dc87a4256298", "level": "note", "message": {"text": "Unused endpoint: USE /api/chat"}, "properties": {"repobilityId": "ea588b31660749e2", "scanner": "scanner-primary", "fingerprint": "2b92dc87a4256298", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-46c26a891155c272", "level": "note", "message": {"text": "Unused endpoint: USE /api/debug"}, "properties": {"repobilityId": "8488d78ae5c4c1b0", "scanner": "scanner-primary", "fingerprint": "46c26a891155c272", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-190b4119129801a1", "level": "note", "message": {"text": "Unused endpoint: USE /api/geo"}, "properties": {"repobilityId": "d6759a6cba59434e", "scanner": "scanner-primary", "fingerprint": "190b4119129801a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b2b25e50fd321f7d", "level": "note", "message": {"text": "Unused endpoint: USE /api/offers"}, "properties": {"repobilityId": "643fd21fb2b21e46", "scanner": "scanner-primary", "fingerprint": "b2b25e50fd321f7d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c3a8b7932f72b92f", "level": "note", "message": {"text": "Unused endpoint: USE /api/notifications"}, "properties": {"repobilityId": "141d7ed860b6fb90", "scanner": "scanner-primary", "fingerprint": "c3a8b7932f72b92f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6f643fbf10ab5803", "level": "note", "message": {"text": "Unused endpoint: USE /api/upload"}, "properties": {"repobilityId": "3791f3d46c2864c0", "scanner": "scanner-primary", "fingerprint": "6f643fbf10ab5803", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-00b5de7626c81cef", "level": "note", "message": {"text": "Unused endpoint: USE /api/transaction-reviews"}, "properties": {"repobilityId": "6ec451facc5cddf9", "scanner": "scanner-primary", "fingerprint": "00b5de7626c81cef", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-58156be878bd515a", "level": "note", "message": {"text": "Unused endpoint: USE /api/businesses"}, "properties": {"repobilityId": "52f445b83a40785d", "scanner": "scanner-primary", "fingerprint": "58156be878bd515a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b23b3e44e550d072", "level": "note", "message": {"text": "Unused endpoint: USE /api/b"}, "properties": {"repobilityId": "370e3916dcf0aa13", "scanner": "scanner-primary", "fingerprint": "b23b3e44e550d072", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-18d1c34099a11702", "level": "note", "message": {"text": "Unused endpoint: USE /api/relationships"}, "properties": {"repobilityId": "dccd7c0da1245e1e", "scanner": "scanner-primary", "fingerprint": "18d1c34099a11702", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4f3b91235806ffaa", "level": "note", "message": {"text": "Unused endpoint: USE /api/privacy"}, "properties": {"repobilityId": "bf4bcbc23ca9bf66", "scanner": "scanner-primary", "fingerprint": "4f3b91235806ffaa", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-11aa99b3cb3c9679", "level": "note", "message": {"text": "Unused endpoint: USE /api/local-profiles"}, "properties": {"repobilityId": "a2cd9372a1070fa9", "scanner": "scanner-primary", "fingerprint": "11aa99b3cb3c9679", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e1e384f2b41833e6", "level": "note", "message": {"text": "Unused endpoint: USE /api/identity-center"}, "properties": {"repobilityId": "1c0db72af9fdbdf8", "scanner": "scanner-primary", "fingerprint": "e1e384f2b41833e6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3b576bc2ccdd2b15", "level": "note", "message": {"text": "Unused endpoint: USE /api/identity"}, "properties": {"repobilityId": "f8a170dbe489b480", "scanner": "scanner-primary", "fingerprint": "3b576bc2ccdd2b15", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0c4508fcc5f55c3a", "level": "note", "message": {"text": "Unused endpoint: USE /api/personas/:id/tiers"}, "properties": {"repobilityId": "0e88277782db0579", "scanner": "scanner-primary", "fingerprint": "0c4508fcc5f55c3a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-84026a387692d696", "level": "note", "message": {"text": "Unused endpoint: USE /api/personas/:id/payments"}, "properties": {"repobilityId": "23d66723f6035c15", "scanner": "scanner-primary", "fingerprint": "84026a387692d696", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0cb54c614402353e", "level": "note", "message": {"text": "Unused endpoint: USE /api/personas/:id/dms"}, "properties": {"repobilityId": "cda943877786d510", "scanner": "scanner-primary", "fingerprint": "0cb54c614402353e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e2f679e02f3f09e1", "level": "note", "message": {"text": "Unused endpoint: USE /api/personas/:id/membership"}, "properties": {"repobilityId": "03a9503ea27fb539", "scanner": "scanner-primary", "fingerprint": "e2f679e02f3f09e1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c2f6d57e7da1c4dd", "level": "note", "message": {"text": "Unused endpoint: USE /api/personas/:id"}, "properties": {"repobilityId": "7de444aa67026c42", "scanner": "scanner-primary", "fingerprint": "c2f6d57e7da1c4dd", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-52d9753f51477a16", "level": "note", "message": {"text": "Unused endpoint: USE /api/personas"}, "properties": {"repobilityId": "9647dc7c05000323", "scanner": "scanner-primary", "fingerprint": "52d9753f51477a16", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7e18b3d5481ebb7e", "level": "note", "message": {"text": "Unused endpoint: USE /api/broadcast"}, "properties": {"repobilityId": "5f3b89d30af02f45", "scanner": "scanner-primary", "fingerprint": "7e18b3d5481ebb7e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4ad91b5641328a9a", "level": "note", "message": {"text": "Unused endpoint: USE /api/professional"}, "properties": {"repobilityId": "c178a54757574c55", "scanner": "scanner-primary", "fingerprint": "4ad91b5641328a9a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-646386c047bee8dd", "level": "note", "message": {"text": "Unused endpoint: USE /api/hub"}, "properties": {"repobilityId": "3b2a46d0b3564c10", "scanner": "scanner-primary", "fingerprint": "646386c047bee8dd", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-448cb055ad3dd1d0", "level": "note", "message": {"text": "Unused endpoint: USE /api/location"}, "properties": {"repobilityId": "0c22bfc96ae7ab6a", "scanner": "scanner-primary", "fingerprint": "448cb055ad3dd1d0", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}