{"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-88bb8e2207c71584", "name": "Stray `console.log` in TS/JS \u2014 packages/relayer/load-test.ts:36", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/relayer/load-test.ts:36"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-49062a521b1f385c", "name": "Stray `console.log` in TS/JS \u2014 packages/relayer/scripts/testSecondaryListing.ts:43", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/relayer/scripts/testSecondaryListing.ts:43"}, "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-32cfc0660f76f08c", "name": "Stray `console.log` in TS/JS \u2014 packages/relayer/src/ws.ts:183", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/relayer/src/ws.ts:183"}, "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-3e57ace0d60bbcf2", "name": "Stray `console.log` in TS/JS \u2014 packages/relayer/src/botExample.ts:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/relayer/src/botExample.ts:23"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7b92da9a8adb6d4c", "name": "Stray `console.log` in TS/JS \u2014 packages/relayer/src/instrument.ts:11", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/relayer/src/instrument.ts:11"}, "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-dc485f7f92cf5e14", "name": "Stray `console.log` in TS/JS \u2014 packages/relayer/src/server.ts:106", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/relayer/src/server.ts:106"}, "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-7f08c59963b20276", "name": "Stray `console.log` in TS/JS \u2014 packages/relayer/src/secondaryMarketHandlers.ts:153", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/relayer/src/secondaryMarketHandlers.ts:153"}, "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-f1c784f9cf67139c", "name": "TODO/FIXME marker in shipping code \u2014 packages/relayer/src/sim.ts:63", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/relayer/src/sim.ts:63"}, "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-1a5ef24d3b54f2e5", "name": "Stray `console.log` in TS/JS \u2014 packages/relayer/src/loadtest/reporter.ts:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/relayer/src/loadtest/reporter.ts:23"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1280105a793ad22f", "name": "Stray `console.log` in TS/JS \u2014 packages/relayer/src/loadtest/scenarios/apiThroughput.ts:55", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/relayer/src/loadtest/scenarios/apiThroughput.ts: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-edc6150b75e92d95", "name": "Stray `console.log` in TS/JS \u2014 packages/relayer/src/loadtest/scenarios/escrowAuction.ts:48", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/relayer/src/loadtest/scenarios/escrowAuction.ts:48"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-237613fd7bd67a38", "name": "Stray `console.log` in TS/JS \u2014 packages/relayer/src/loadtest/scenarios/mixedWorkload.ts:59", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/relayer/src/loadtest/scenarios/mixedWorkload.ts:59"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4e6001a5ad8a95c2", "name": "Stray `console.log` in TS/JS \u2014 packages/relayer/src/handlers/escrow.ts:71", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/relayer/src/handlers/escrow.ts:71"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d7b5396853338801", "name": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/recoverMissingPredictions.ts:105", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/recoverMissingPredictions.ts:105"}, "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-3b21cb8d94361538", "name": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/inspectConditionGroupEventCollisions.ts:130", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/inspectConditionGroupEventCollisions.ts:130"}, "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-24113140a6669c10", "name": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/checkVaultFlowConsistency.ts:93", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/checkVaultFlowConsistency.ts:93"}, "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-96a42ec079df0155", "name": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/checkVaultSponsorship.ts:73", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/checkVaultSponsorship.ts:73"}, "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-015c911e27ec14d2", "name": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/backfillVaultFlows.ts:99", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/backfillVaultFlows.ts:99"}, "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-acf7472a396af525", "name": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/backfillConditionGroupEvent.ts:309", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/backfillConditionGroupEvent.ts:309"}, "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-01f4c3bb3969d3a2", "name": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/backfillConditionGroupBaskets.ts:111", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/backfillConditionGroupBaskets.ts:111"}, "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-d9af895ecc52ce77", "name": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/checkVaultTransfers.ts:116", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/checkVaultTransfers.ts:116"}, "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-aecda660d7cda1b6", "name": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/verifyTimingPlugin.ts:127", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/verifyTimingPlugin.ts:127"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6b5c68247af65818", "name": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/mergeConditionGroupDuplicates.ts:363", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/mergeConditionGroupDuplicates.ts:363"}, "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-63bdad818856bbaf", "name": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/backfillClaimLogIndex.ts:63", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/backfillClaimLogIndex.ts:63"}, "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-5cfdbe6771498193", "name": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/scanLegacySessionKeyData.ts:216", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/scanLegacySessionKeyData.ts:216"}, "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-0f9ff9c2a0f62c57", "name": "Stray `console.log` in TS/JS \u2014 packages/api/src/scripts/compareProtocolStats.ts:140", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/api/src/scripts/compareProtocolStats.ts:140"}, "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-e72691f4d4ffe28b", "name": "Stray `console.log` in TS/JS \u2014 packages/api/src/scripts/emitSchema.ts:20", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/api/src/scripts/emitSchema.ts:20"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-17318ca6c561af4c", "name": "TODO/FIXME marker in shipping code \u2014 packages/api/src/graphql/v2/startApolloServer.ts:53", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/api/src/graphql/v2/startApolloServer.ts:53"}, "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-d8b47d010d70b503", "name": "TODO/FIXME marker in shipping code \u2014 packages/api/src/runtime/middleware.ts:16", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/api/src/runtime/middleware.ts:16"}, "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-7e782f564b16ecfe", "name": "Stray `console.log` in TS/JS \u2014 packages/api/src/core/instrument.ts:39", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/api/src/core/instrument.ts:39"}, "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-e4a1446013d54036", "name": "`truncate` class without `title=` for hover reveal \u2014 packages/ui/components/PredictionListItem.tsx:56", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/ui/components/PredictionListItem.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-39695d339aba5e92", "name": "Stray `console.log` in TS/JS \u2014 packages/ui/stories/ui/Form.stories.tsx:227", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/ui/stories/ui/Form.stories.tsx:227"}, "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-d0c0f455b8b7a57a", "name": "Stray `console.log` in TS/JS \u2014 packages/app/sentry.server.config.ts:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/app/sentry.server.config.ts:14"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-559d0e833a86b090", "name": "Stray `console.log` in TS/JS \u2014 packages/app/sentry.client.config.ts:65", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/app/sentry.client.config.ts:65"}, "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-92b0b8731038089b", "name": "Stray `console.log` in TS/JS \u2014 packages/app/sentry.edge.config.ts:19", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/app/sentry.edge.config.ts:19"}, "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-afaf5a9437055c30", "name": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/layout/DepositBridgeRow.tsx:108", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/layout/DepositBridgeRow.tsx:108"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a53bd7bd001eb34a", "name": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/layout/BungeeBridgePanel.tsx:658", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/layout/BungeeBridgePanel.tsx:658"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f87e61bfcd8379dc", "name": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/analytics/OpenInterestByCategoryChart.t", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/analytics/OpenInterestByCategoryChart.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-a22d83db188fa938", "name": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/shared/PicksPopover.tsx:83", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/shared/PicksPopover.tsx:83"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4618240c40a98c53", "name": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/shared/StackedPredictions.tsx:167", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/shared/StackedPredictions.tsx:167"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-89228120a5fd4adc", "name": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/shared/PicksSummary.tsx:157", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/shared/PicksSummary.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-888375152ac19b92", "name": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/shared/CommandMenu.tsx:304", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/shared/CommandMenu.tsx:304"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9085d967afa57979", "name": "Stray `console.log` in TS/JS \u2014 packages/app/src/components/shared/ConsoleMessage.tsx:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/app/src/components/shared/ConsoleMessage.tsx:15"}, "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-00b0d2fbeec59a26", "name": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/stream/MessageGroupRow.tsx:81", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/stream/MessageGroupRow.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-570a569193a9cd24", "name": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/stream/MessageRow.tsx:42", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/stream/MessageRow.tsx:42"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-59da61d9d9f913bf", "name": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/markets/QuestionsTable.tsx:212", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/markets/QuestionsTable.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-352d0c4be7fa17c0", "name": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/markets/question/CombinedPredictionsLis", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/markets/question/CombinedPredictionsList.tsx:165"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bc080f694c97b419", "name": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/markets/CreatePositionForm/PositionForm", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/markets/CreatePositionForm/PositionForm.tsx:827"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-45cce56ebf6f8644", "name": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/markets/polymarket/MarketCard.tsx:181", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/markets/polymarket/MarketCard.tsx:181"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-66d468ee7581dd12", "name": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/conditions/ConditionSelect.tsx:126", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/conditions/ConditionSelect.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-ac2433347387412c", "name": "Stray `console.log` in TS/JS \u2014 packages/app/src/lib/auction/bidLogger.ts:37", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/app/src/lib/auction/bidLogger.ts:37"}, "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-897ec064b5c837c9", "name": "Stray `console.log` in TS/JS \u2014 packages/app/src/lib/mesh/PeerConnection.ts:64", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/app/src/lib/mesh/PeerConnection.ts: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-9b9a44865ef8e46d", "name": "Stray `console.log` in TS/JS \u2014 packages/app/src/lib/mesh/PeerManager.ts:69", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/app/src/lib/mesh/PeerManager.ts:69"}, "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-d3df93a992d2ac8f", "name": "Stray `console.log` in TS/JS \u2014 packages/app/src/lib/session/sessionKeyManager.ts:1341", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/app/src/lib/session/sessionKeyManager.ts:1341"}, "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-93a5edd7306b1e1b", "name": "Stray `console.log` in TS/JS \u2014 packages/app/src/hooks/blockchain/useSapienceWriteContract.ts:390", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/app/src/hooks/blockchain/useSapienceWriteContract.ts:390"}, "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-be86a090547b6404", "name": "Stray `console.log` in TS/JS \u2014 packages/app/src/hooks/forms/usePositionProgress.ts:38", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/app/src/hooks/forms/usePositionProgress.ts:38"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0fc286972de87e57", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/scripts/settle-pyth.ts:207", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/scripts/settle-pyth.ts:207"}, "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-7854443f6fb1f8ee", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/scripts/settle-manual.ts:199", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/scripts/settle-manual.ts:199"}, "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-0958e5a266c87a49", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/scripts/update-condition.ts:120", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/scripts/update-condition.ts:120"}, "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-78bba19558488911", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/scripts/settle-polymarket.ts:180", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/scripts/settle-polymarket.ts:180"}, "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-fefbca7bbade0561", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/scripts/add-events.ts:74", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/scripts/add-events.ts:74"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-494da623fefda242", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/scripts/lib/groups.js:61", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/scripts/lib/groups.js:61"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-183e1bc122ccb752", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/misc/backfill-condition-similar-markets.ts:55", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/misc/backfill-condition-similar-markets.ts: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-f92867ebe8dd2d1b", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/misc/fix-category.ts:73", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/misc/fix-category.ts:73"}, "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-0bf4bf088dbeb309", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/misc/backfill-similar-markets.ts:56", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/misc/backfill-similar-markets.ts:56"}, "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-10d8b74ea942b07c", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/prices-and-1d-7d-volume/index.ts:41", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/prices-and-1d-7d-volume/index.ts:41"}, "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-32f0966e743a8ce8", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/generate/api.ts:147", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/generate/api.ts:147"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1d68dd539eb709ff", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/generate/grouping.ts:364", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/generate/grouping.ts:364"}, "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-f2f2dfed25e63101", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/generate/tags.ts:133", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/generate/tags.ts: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-c635a0ed7793e23c", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/generate/from-event-slugs.ts:83", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/generate/from-event-slugs.ts:83"}, "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-3d4e6f7a21e36b29", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/generate/index.ts:28", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/generate/index.ts:28"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-170611d9aa301d56", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/generate/market.ts:32", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/generate/market.ts: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-987eb10908bf5b3f", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/generate/pipeline/index.ts:194", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/generate/pipeline/index.ts:194"}, "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-c20de899f5f3422a", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/generate/pipeline/filters/neg-risk-basket.ts:69", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/generate/pipeline/filters/neg-risk-basket.ts:69"}, "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-34c7aeaca2699232", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/generate/pipeline/filters/exclude-existing.ts:161", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/generate/pipeline/filters/exclude-existing.ts:161"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d33a94bc461a68b0", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/labeler/fetch-llm-endtimes.ts:74", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/labeler/fetch-llm-endtimes.ts:74"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f60b4581c264bf1c", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/labeler/score.ts:293", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/labeler/score.ts:293"}, "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-a9e5ce1ccf707478", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/labeler/fetch.ts:26", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/labeler/fetch.ts: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-f5647ce32ebfaf67", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/labeler/validate-game.ts:37", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/labeler/validate-game.ts:37"}, "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-234a9f047c3b2de6", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/labeler/fetch-weather.ts:112", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/labeler/fetch-weather.ts: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-1ff1c985c8a55161", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/labeler/fetch-corpus.ts:231", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/labeler/fetch-corpus.ts:231"}, "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-0b246ae3a6fbb6b5", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/labeler/server.ts:456", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/labeler/server.ts:456"}, "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-9f6912f6eb06305e", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/labeler/fetch-sports.ts:126", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/labeler/fetch-sports.ts:126"}, "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-6e1d641347f2652e", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/refresh-imminent-tag/index.ts:57", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/refresh-imminent-tag/index.ts:57"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5c6e8f81e5313d55", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/utils/safety.ts:55", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/utils/safety.ts: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-467299d7af399702", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/utils/log.ts:13", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/utils/log.ts:13"}, "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-d151763df234db28", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/utils/fetch.ts:35", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/utils/fetch.ts:35"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e3e9da700bd14515", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/relist/index.ts:39", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/relist/index.ts:39"}, "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-5199c77512c4e20a", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/relist/market.ts:34", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/relist/market.ts:34"}, "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-fa5bb156cc272db2", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/polygon/client.ts:163", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/polygon/client.ts:163"}, "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-49cdf3fabdc2e529", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/refresh-metadata/index.ts:50", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/refresh-metadata/index.ts:50"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-077cca9d0f96170b", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/refresh-metadata/fetch.ts:135", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/refresh-metadata/fetch.ts:135"}, "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-5d49bdfd6674201e", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/cleanup/api.ts:126", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/cleanup/api.ts:126"}, "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-70d529470c199077", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/cleanup/index.ts:53", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/cleanup/index.ts:53"}, "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-e11b62d2e6681f0b", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/refresh-volume/index.ts:70", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/refresh-volume/index.ts:70"}, "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-b8a8c4c5923745bb", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/llm/openrouter.ts:146", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/llm/openrouter.ts:146"}, "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-bffc626a635ead15", "name": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/llm/enrichment.ts:122", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/llm/enrichment.ts:122"}, "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-1d41b1c942f2c58a", "name": "Stray `console.log` in TS/JS \u2014 packages/sdk/scripts/settlePythMarkets.ts:662", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sdk/scripts/settlePythMarkets.ts:662"}, "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-96d921ae3744daa7", "name": "Stray `console.log` in TS/JS \u2014 starters/market-maker/src/index.ts:49", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 starters/market-maker/src/index.ts:49"}, "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-13744f23cf7e9af5", "name": "Stray `console.log` in TS/JS \u2014 starters/market-maker/src/strategies/PythStrategy.ts:94", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 starters/market-maker/src/strategies/PythStrategy.ts:94"}, "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-d63da3583b14afc0", "name": "Dockerfile runs as root: Dockerfile", "shortDescription": {"text": "Dockerfile runs as root: 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-93e02e0d67c8f3e8", "name": "Docker base image is tag-pinned but not digest-pinned: node:22-slim", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:22-slim"}, "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-35e8cab3b496a970", "name": "Insecure pattern 'node_child_process' in packages/api/scripts/snapshotTestDb.ts:15", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/api/scripts/snapshotTestDb.ts:15"}, "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-71c4d0333c37c1bb", "name": "Insecure pattern 'cors_wildcard' in packages/api/src/routes/tokenlist.ts:23", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in packages/api/src/routes/tokenlist.ts:23"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-07626e2156ddfc62", "name": "Insecure pattern 'node_child_process' in packages/app/scripts/build-static.mjs:15", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/app/scripts/build-static.mjs:15"}, "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-5a8e318bd7e3e8de", "name": "Insecure pattern 'cors_wildcard' in packages/app/scripts/build-static.mjs:178", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in packages/app/scripts/build-static.mjs:178"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5d56594df913eb9c", "name": "Insecure pattern 'node_child_process' in packages/app/scripts/pin-ipfs.mjs:17", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/app/scripts/pin-ipfs.mjs:17"}, "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-bc57ff84fdb099c1", "name": "Insecure pattern 'local_storage_auth_token' in packages/app/src/components/shared/chat/useChatConnection.ts:196", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in packages/app/src/components/shared/chat/useChatConnection.ts:196"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-136caf272777c998", "name": "Insecure pattern 'node_child_process' in packages/market-keeper/scripts/lib/groups.js:24", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/market-keeper/scripts/lib/groups.js:24"}, "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-bfc42ac315156f4a", "name": "Insecure pattern 'direct_innerhtml_assignment' in packages/market-keeper/src/labeler/index.html:653", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in packages/market-keeper/src/labeler/index.html:653"}, "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-71c4bbafd1fa47c5", "name": "GitHub Action tracks a moving branch", "shortDescription": {"text": "GitHub Action tracks a moving branch"}, "fullDescription": {"text": "sozonome/workflows/.github/workflows/update-license.yml@main 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": "high", "confidence": 1.0}}, {"id": "scanner-cb639d9a10a47b23", "name": "package.json defines install-time lifecycle scripts", "shortDescription": {"text": "package.json defines install-time lifecycle scripts"}, "fullDescription": {"text": "preinstall/install/postinstall/prepare scripts execute during dependency installation. Review them carefully for network calls, obfuscation, shell execution, or credential access."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dde24f6d83466d4c", "name": "package.json defines install-time lifecycle scripts", "shortDescription": {"text": "package.json defines install-time lifecycle scripts"}, "fullDescription": {"text": "preinstall/install/postinstall/prepare scripts execute during dependency installation. Review them carefully for network calls, obfuscation, shell execution, or credential access."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ebb27852500cdd10", "name": "package.json defines install-time lifecycle scripts", "shortDescription": {"text": "package.json defines install-time lifecycle scripts"}, "fullDescription": {"text": "preinstall/install/postinstall/prepare scripts execute during dependency installation. Review them carefully for network calls, obfuscation, shell execution, or credential access."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-12d44c6c852cd257", "name": "Very large file: packages/api/src/routes/conditions.ts (1627 lines)", "shortDescription": {"text": "Very large file: packages/api/src/routes/conditions.ts (1627 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-9925de0ad628a207", "name": "Very large file: packages/api/src/routes/conditions.test.ts (1887 lines)", "shortDescription": {"text": "Very large file: packages/api/src/routes/conditions.test.ts (1887 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-fd1e57cc7f029452", "name": "Very large file: packages/api/src/workers/indexers/__tests__/predictionMarketEscrowIndexer.test.ts (1483 lines)", "shortDescription": {"text": "Very large file: packages/api/src/workers/indexers/__tests__/predictionMarketEscrowIndexer.test.ts (1483 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-05cdee330cacd10a", "name": "Very large file: packages/app/src/lib/session/sessionKeyManager.ts (1540 lines)", "shortDescription": {"text": "Very large file: packages/app/src/lib/session/sessionKeyManager.ts (1540 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-35aec99349c86f13", "name": "Very large file: packages/protocol/src/scripts/deploy/deploy.sh (1556 lines)", "shortDescription": {"text": "Very large file: packages/protocol/src/scripts/deploy/deploy.sh (1556 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-189aac939f98bfbe", "name": "Very large file: packages/sdk/types/graphql.ts (2442 lines)", "shortDescription": {"text": "Very large file: packages/sdk/types/graphql.ts (2442 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-0983bbe4b9cab701", "name": "Very large file: packages/sdk/types/graphql.v2.ts (2105 lines)", "shortDescription": {"text": "Very large file: packages/sdk/types/graphql.v2.ts (2105 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-6343e109294e89fb", "name": "Node manifest has dependencies but no lockfile: packages/relayer/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/relayer/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-0a0634ffe3eb1107", "name": "Node manifest has dependencies but no lockfile: packages/api/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: 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-68e2735c194d3d3d", "name": "Node manifest has dependencies but no lockfile: packages/docs/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/docs/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-50218c90b43393bb", "name": "Node manifest has dependencies but no lockfile: packages/ui/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/ui/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-4bf95f042f6cdfd9", "name": "Node manifest has dependencies but no lockfile: packages/app/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/app/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-a2c5c0bbcd68dc62", "name": "Node manifest has dependencies but no lockfile: packages/edge-cache/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/edge-cache/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-1b3d0fa3fe79a342", "name": "Node manifest has dependencies but no lockfile: packages/protocol/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/protocol/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-5e1aca123da0088d", "name": "Node manifest has dependencies but no lockfile: packages/market-keeper/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/market-keeper/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-ae014485ab255591", "name": "Node manifest has dependencies but no lockfile: packages/sdk/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/sdk/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 792 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 144 placeholder/mock markers across 62 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-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 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-122f91b7f2906dc4", "name": "Agent authority lacks a verifier contract: .claude/settings.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/settings.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e725d2ab884fbd49", "name": "Multiple root agent instruction files without precedence", "shortDescription": {"text": "Multiple root agent instruction files without precedence"}, "fullDescription": {"text": "The repo has multiple top-level AI-coder instruction files. Without precedence rules, different agents may follow different policies."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-94f9afa79a2aa2e3", "name": "Commented-code block (5 lines) in packages/relayer/src/secondaryMarketHandlers.ts:233", "shortDescription": {"text": "Commented-code block (5 lines) in packages/relayer/src/secondaryMarketHandlers.ts:233"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d31f701cf48589c3", "name": "Commented-code block (5 lines) in packages/relayer/src/handlers/escrow.ts:165", "shortDescription": {"text": "Commented-code block (5 lines) in packages/relayer/src/handlers/escrow.ts:165"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-381a61f7987eebcf", "name": "Commented-code block (9 lines) in packages/api/vitest.contract.config.ts:28", "shortDescription": {"text": "Commented-code block (9 lines) in packages/api/vitest.contract.config.ts:28"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a62f6bbd41fb0093", "name": "Commented-code block (7 lines) in packages/api/test/contract/operations/openInterestByCategory.test.ts:13", "shortDescription": {"text": "Commented-code block (7 lines) in packages/api/test/contract/operations/openInterestByCategory.test.ts:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a9386ae44dc658ab", "name": "Commented-code block (7 lines) in packages/api/test/contract/operations/openInterestByTimeToResolution.test.ts:14", "shortDescription": {"text": "Commented-code block (7 lines) in packages/api/test/contract/operations/openInterestByTimeToResolution.test.ts:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4df9bc5caae0f620", "name": "Commented-code block (5 lines) in packages/api/test/contract/operations/questions.test.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in packages/api/test/contract/operations/questions.test.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-10e248d0f499266e", "name": "Commented-code block (9 lines) in packages/api/test/contract/parity/conditions.pair.test.ts:140", "shortDescription": {"text": "Commented-code block (9 lines) in packages/api/test/contract/parity/conditions.pair.test.ts:140"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ae8e0920d72fb0a6", "name": "Legacy-named symbol `isLegacy` in packages/api/test/contract/parity/predictions.pair.test.ts:29", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in packages/api/test/contract/parity/predictions.pair.test.ts:29"}, "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-625bcdf7a81994b8", "name": "Commented-code block (8 lines) in packages/api/test/contract/parity/questions.pair.test.ts:596", "shortDescription": {"text": "Commented-code block (8 lines) in packages/api/test/contract/parity/questions.pair.test.ts:596"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-88e1ac4e47f8c25c", "name": "Legacy-named symbol `isLegacy` in packages/api/test/contract/parity/positions.pair.test.ts:84", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in packages/api/test/contract/parity/positions.pair.test.ts: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-b5c4ac8509a7486c", "name": "Commented-code block (7 lines) in packages/api/test/contract/parity/positions.pair.test.ts:145", "shortDescription": {"text": "Commented-code block (7 lines) in packages/api/test/contract/parity/positions.pair.test.ts:145"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-36704d8c674c81c6", "name": "Legacy-named symbol `isLegacy` in packages/api/test/contract/parity/accountActivity.pair.test.ts:32", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in packages/api/test/contract/parity/accountActivity.pair.test.ts: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-70ca9c54086957da", "name": "Commented-code block (5 lines) in packages/api/test/contract/parity/accountActivity.pair.test.ts:363", "shortDescription": {"text": "Commented-code block (5 lines) in packages/api/test/contract/parity/accountActivity.pair.test.ts:363"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bd3d0ea2d49d82ab", "name": "Legacy-named symbol `isLegacy` in packages/api/test/contract/parity/pickConfigsByTokens.pair.test.ts:46", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in packages/api/test/contract/parity/pickConfigsByTokens.pair.test.ts:46"}, "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-9578c78943d609f3", "name": "Legacy-named symbol `isLegacy` in packages/api/scripts/recoverMissingPredictions.ts:70", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in packages/api/scripts/recoverMissingPredictions.ts:70"}, "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-3f5ba88fae14a149", "name": "Commented-code block (7 lines) in packages/api/scripts/recoverMissingPredictions.ts:63", "shortDescription": {"text": "Commented-code block (7 lines) in packages/api/scripts/recoverMissingPredictions.ts:63"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6271d3165f8c602b", "name": "Commented-code block (10 lines) in packages/api/scripts/inspectConditionGroupEventCollisions.ts:83", "shortDescription": {"text": "Commented-code block (10 lines) in packages/api/scripts/inspectConditionGroupEventCollisions.ts:83"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a38092166f46afd2", "name": "Commented-code block (5 lines) in packages/api/scripts/snapshotTestDb.ts:32", "shortDescription": {"text": "Commented-code block (5 lines) in packages/api/scripts/snapshotTestDb.ts:32"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-db0a0d2ea2c455d1", "name": "Commented-code block (8 lines) in packages/api/scripts/backfillConditionGroupEvent.ts:63", "shortDescription": {"text": "Commented-code block (8 lines) in packages/api/scripts/backfillConditionGroupEvent.ts:63"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-961493c8e60e0fd4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/api/scripts/backfillConditionGroupEvent.ts:185", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/api/scripts/backfillConditionGroupEvent.ts:185"}, "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-cb5a6f1a12c9ee85", "name": "Commented-code block (6 lines) in packages/api/scripts/backfillConditionGroupBaskets.ts:115", "shortDescription": {"text": "Commented-code block (6 lines) in packages/api/scripts/backfillConditionGroupBaskets.ts:115"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-640875058dafbc6d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/api/scripts/backfillConditionGroupBaskets.ts:77", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/api/scripts/backfillConditionGroupBaskets.ts:77"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ddcd6434f35d3c22", "name": "Commented-code block (6 lines) in packages/api/scripts/mergeConditionGroupDuplicates.ts:100", "shortDescription": {"text": "Commented-code block (6 lines) in packages/api/scripts/mergeConditionGroupDuplicates.ts:100"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0f463c9700993fe0", "name": "Legacy-named symbol `includeLegacy` in packages/api/scripts/scanLegacySessionKeyData.ts:24", "shortDescription": {"text": "Legacy-named symbol `includeLegacy` in packages/api/scripts/scanLegacySessionKeyData.ts:24"}, "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-c3b9eb8a96dd2d72", "name": "Commented-code block (6 lines) in packages/api/src/scripts/fixResolverTypesOmit.cjs:26", "shortDescription": {"text": "Commented-code block (6 lines) in packages/api/src/scripts/fixResolverTypesOmit.cjs: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-16a2310680123349", "name": "Commented-code block (7 lines) in packages/api/src/scripts/compareProtocolStats.ts:27", "shortDescription": {"text": "Commented-code block (7 lines) in packages/api/src/scripts/compareProtocolStats.ts:27"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c55dfa70651104c9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/api/src/scripts/compareProtocolStats.ts:109", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/api/src/scripts/compareProtocolStats.ts:109"}, "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-f19bca6dc0c02f30", "name": "Commented-code block (5 lines) in packages/api/src/lib/utils.ts:47", "shortDescription": {"text": "Commented-code block (5 lines) in packages/api/src/lib/utils.ts:47"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-31bfd64db826d1ed", "name": "Commented-code block (11 lines) in packages/api/src/routes/conditions.ts:58", "shortDescription": {"text": "Commented-code block (11 lines) in packages/api/src/routes/conditions.ts:58"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bf0f4990b8cd27ea", "name": "Commented-code block (6 lines) in packages/api/src/routes/conditionGroups.ts:297", "shortDescription": {"text": "Commented-code block (6 lines) in packages/api/src/routes/conditionGroups.ts:297"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dc34178e196b4982", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/api/src/routes/conditions.test.ts:891", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/api/src/routes/conditions.test.ts:891"}, "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-137a00886d120c61", "name": "Commented-code block (5 lines) in packages/api/src/routes/referrals.ts:388", "shortDescription": {"text": "Commented-code block (5 lines) in packages/api/src/routes/referrals.ts:388"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f520ea6a841bdbfd", "name": "Commented-code block (5 lines) in packages/api/src/routes/helpers/conditionGroupIdentity.ts:136", "shortDescription": {"text": "Commented-code block (5 lines) in packages/api/src/routes/helpers/conditionGroupIdentity.ts:136"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7037a1bc7261f810", "name": "Legacy-named symbol `isLegacy` in packages/api/src/workers/indexers/conditionSettledIndexer.ts:54", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in packages/api/src/workers/indexers/conditionSettledIndexer.ts:54"}, "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-0fe8326a2ff52d1a", "name": "Legacy-named symbol `isLegacy` in packages/api/src/workers/indexers/secondaryMarketIndexer.ts:38", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in packages/api/src/workers/indexers/secondaryMarketIndexer.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-c8c76670314d6bde", "name": "Legacy-named symbol `isLegacy` in packages/api/src/workers/indexers/predictionMarketEscrowIndexer.ts:172", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in packages/api/src/workers/indexers/predictionMarketEscrowIndexer.ts:172"}, "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-751031d533b43e35", "name": "Commented-code block (6 lines) in packages/api/src/workers/indexers/predictionMarketEscrowIndexer.ts:503", "shortDescription": {"text": "Commented-code block (6 lines) in packages/api/src/workers/indexers/predictionMarketEscrowIndexer.ts:503"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cf969fc3661db063", "name": "Legacy-named symbol `isLegacy` in packages/api/src/workers/indexers/positionTokenTransferIndexer.ts:47", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in packages/api/src/workers/indexers/positionTokenTransferIndexer.ts: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-e0267fb5b214e562", "name": "Commented-code block (5 lines) in packages/api/src/workers/indexers/positionTokenTransferIndexer.ts:302", "shortDescription": {"text": "Commented-code block (5 lines) in packages/api/src/workers/indexers/positionTokenTransferIndexer.ts:302"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-10c83bdcaf74de68", "name": "Commented-code block (8 lines) in packages/api/src/graphql/startApolloServer.ts:73", "shortDescription": {"text": "Commented-code block (8 lines) in packages/api/src/graphql/startApolloServer.ts:73"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e59c84597ce29cca", "name": "Commented-code block (6 lines) in packages/api/src/graphql/v2/startApolloServer.ts:53", "shortDescription": {"text": "Commented-code block (6 lines) in packages/api/src/graphql/v2/startApolloServer.ts:53"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0f90e4507cb430f7", "name": "Legacy-named symbol `isLegacy` in packages/api/src/graphql/v2/resolvers/Prediction.test.ts:100", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in packages/api/src/graphql/v2/resolvers/Prediction.test.ts:100"}, "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-282cc6aabde15b23", "name": "Commented-code block (5 lines) in packages/api/src/graphql/v2/resolvers/CollateralBalance.ts:49", "shortDescription": {"text": "Commented-code block (5 lines) in packages/api/src/graphql/v2/resolvers/CollateralBalance.ts: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-d5e42422ef20cd33", "name": "Commented-code block (8 lines) in packages/api/src/graphql/v2/resolvers/Account.ts:94", "shortDescription": {"text": "Commented-code block (8 lines) in packages/api/src/graphql/v2/resolvers/Account.ts:94"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d0865c27317a5815", "name": "Legacy-named symbol `0xp_old` in packages/api/src/graphql/v2/resolvers/Activity.test.ts:178", "shortDescription": {"text": "Legacy-named symbol `0xp_old` in packages/api/src/graphql/v2/resolvers/Activity.test.ts:178"}, "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-dfa94fd341e4f456", "name": "Commented-code block (6 lines) in packages/api/src/graphql/v2/resolvers/Protocol.ts:46", "shortDescription": {"text": "Commented-code block (6 lines) in packages/api/src/graphql/v2/resolvers/Protocol.ts: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-275b1c0cc9dff6a6", "name": "Legacy-named symbol `isLegacy` in packages/api/src/graphql/v2/resolvers/PickConfiguration.ts:43", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in packages/api/src/graphql/v2/resolvers/PickConfiguration.ts:43"}, "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-86c723802f7686a6", "name": "Legacy-named symbol `isLegacy` in packages/api/src/graphql/v2/resolvers/PickConfiguration.test.ts:93", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in packages/api/src/graphql/v2/resolvers/PickConfiguration.test.ts:93"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1f98faedbda5674a", "name": "Legacy-named symbol `isLegacy` in packages/api/src/graphql/v2/resolvers/Prediction.ts:49", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in packages/api/src/graphql/v2/resolvers/Prediction.ts:49"}, "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-162b8347965f1240", "name": "Commented-code block (7 lines) in packages/api/src/graphql/v2/resolvers/ConditionGroup.ts:90", "shortDescription": {"text": "Commented-code block (7 lines) in packages/api/src/graphql/v2/resolvers/ConditionGroup.ts:90"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-77ddf9a9b658227f", "name": "Legacy-named symbol `isLegacy` in packages/api/src/graphql/v2/resolvers/queries/position.test.ts:80", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in packages/api/src/graphql/v2/resolvers/queries/position.test.ts:80"}, "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-4d04219dc2655bbc", "name": "Commented-code block (5 lines) in packages/api/src/graphql/v2/resolvers/queries/position.test.ts:588", "shortDescription": {"text": "Commented-code block (5 lines) in packages/api/src/graphql/v2/resolvers/queries/position.test.ts:588"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d0fad04744299bb5", "name": "Commented-code block (5 lines) in packages/api/src/graphql/v2/resolvers/queries/activity.ts:86", "shortDescription": {"text": "Commented-code block (5 lines) in packages/api/src/graphql/v2/resolvers/queries/activity.ts:86"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0298090921c40b2e", "name": "Commented-code block (5 lines) in packages/api/src/graphql/v2/resolvers/queries/position.ts:353", "shortDescription": {"text": "Commented-code block (5 lines) in packages/api/src/graphql/v2/resolvers/queries/position.ts:353"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e09d5771e09f5dde", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/api/src/graphql/v2/resolvers/queries/position.ts:21", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/api/src/graphql/v2/resolvers/queries/position.ts:21"}, "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-49ec8626c0be18aa", "name": "Legacy-named symbol `isLegacy` in packages/api/src/graphql/sdl/resolvers/pickConfigHelpers.ts:41", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in packages/api/src/graphql/sdl/resolvers/pickConfigHelpers.ts: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-1cb03edf4805dc9e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/api/src/graphql/sdl/resolvers/relationHelpers.ts:46", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/api/src/graphql/sdl/resolvers/relationHelpers.ts:46"}, "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-af76033042fc5432", "name": "Commented-code block (6 lines) in packages/api/src/graphql/sdl/resolvers/queries/referrals.test.ts:210", "shortDescription": {"text": "Commented-code block (6 lines) in packages/api/src/graphql/sdl/resolvers/queries/referrals.test.ts:210"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c7935313d2538da5", "name": "Commented-code block (5 lines) in packages/api/src/graphql/sdl/resolvers/queries/analytics.ts:74", "shortDescription": {"text": "Commented-code block (5 lines) in packages/api/src/graphql/sdl/resolvers/queries/analytics.ts:74"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-35eaab4b473a0a48", "name": "Commented-code block (6 lines) in packages/api/src/graphql/sdl/resolvers/queries/questions.ts:379", "shortDescription": {"text": "Commented-code block (6 lines) in packages/api/src/graphql/sdl/resolvers/queries/questions.ts:379"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-58bd061b79f1699e", "name": "Legacy-named symbol `isLegacy` in packages/api/src/graphql/sdl/resolvers/queries/escrow.test.ts:76", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in packages/api/src/graphql/sdl/resolvers/queries/escrow.test.ts:76"}, "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-a7ad93c0f88136fa", "name": "Legacy-named symbol `isLegacy` in packages/api/src/graphql/sdl/resolvers/queries/escrow.ts:60", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in packages/api/src/graphql/sdl/resolvers/queries/escrow.ts:60"}, "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-7c479c969f63698f", "name": "Commented-code block (6 lines) in packages/api/src/graphql/sdl/resolvers/queries/escrow.ts:380", "shortDescription": {"text": "Commented-code block (6 lines) in packages/api/src/graphql/sdl/resolvers/queries/escrow.ts:380"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c8254c9966c61bee", "name": "Commented-code block (5 lines) in packages/api/src/graphql/sdl/resolvers/queries/analytics.test.ts:70", "shortDescription": {"text": "Commented-code block (5 lines) in packages/api/src/graphql/sdl/resolvers/queries/analytics.test.ts:70"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8b68013b0d4041db", "name": "Legacy-named symbol `isLegacy` in packages/api/src/graphql/sdl/resolvers/queries/activity.ts:198", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in packages/api/src/graphql/sdl/resolvers/queries/activity.ts:198"}, "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-43ba6e288a6df8af", "name": "Commented-code block (6 lines) in packages/api/src/graphql/plugins/operationTimingPlugin.ts:91", "shortDescription": {"text": "Commented-code block (6 lines) in packages/api/src/graphql/plugins/operationTimingPlugin.ts:91"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-481f5426c24c2811", "name": "Commented-code block (5 lines) in packages/api/src/runtime/middleware.ts:223", "shortDescription": {"text": "Commented-code block (5 lines) in packages/api/src/runtime/middleware.ts:223"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6b5ea03fc407a1ea", "name": "Commented-code block (7 lines) in packages/api/src/services/timeSeriesQueries.pnl.integration.test.ts:109", "shortDescription": {"text": "Commented-code block (7 lines) in packages/api/src/services/timeSeriesQueries.pnl.integration.test.ts:109"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1631fc783a4b6963", "name": "Commented-code block (5 lines) in packages/api/src/services/timeSeriesQueries.test.ts:295", "shortDescription": {"text": "Commented-code block (5 lines) in packages/api/src/services/timeSeriesQueries.test.ts:295"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9cb212d2108fef5d", "name": "Commented-code block (6 lines) in packages/api/src/services/protocolStats/vaultAggregator.test.ts:79", "shortDescription": {"text": "Commented-code block (6 lines) in packages/api/src/services/protocolStats/vaultAggregator.test.ts:79"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1f38839b4e788e50", "name": "Commented-code block (5 lines) in packages/api/src/services/protocolStats/snapshots.ts:203", "shortDescription": {"text": "Commented-code block (5 lines) in packages/api/src/services/protocolStats/snapshots.ts:203"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e1913bc3f4d56ed2", "name": "Commented-code block (5 lines) in packages/api/src/services/protocolStats/snapshots.test.ts:284", "shortDescription": {"text": "Commented-code block (5 lines) in packages/api/src/services/protocolStats/snapshots.test.ts:284"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2e971a62cb6a5c76", "name": "Commented-code block (6 lines) in packages/api/src/services/protocolStats/vaultPnL.ts:38", "shortDescription": {"text": "Commented-code block (6 lines) in packages/api/src/services/protocolStats/vaultPnL.ts:38"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ca3bd1f1d11cb2f9", "name": "Commented-code block (5 lines) in packages/api/src/services/protocolStats/vaultUnredeemed.ts:98", "shortDescription": {"text": "Commented-code block (5 lines) in packages/api/src/services/protocolStats/vaultUnredeemed.ts:98"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-99bfeb0c167cc224", "name": "Commented-code block (7 lines) in packages/api/src/services/protocolStats/vaultAggregator.ts:54", "shortDescription": {"text": "Commented-code block (7 lines) in packages/api/src/services/protocolStats/vaultAggregator.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-263e413a5e13f76c", "name": "Commented-code block (5 lines) in packages/api/src/services/protocolStats/vaultTvl.ts:297", "shortDescription": {"text": "Commented-code block (5 lines) in packages/api/src/services/protocolStats/vaultTvl.ts:297"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c4f43098dcb92062", "name": "Commented-code block (10 lines) in packages/api/src/core/server.ts:37", "shortDescription": {"text": "Commented-code block (10 lines) in packages/api/src/core/server.ts:37"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-569924a05589334c", "name": "Commented-code block (5 lines) in packages/docs/scripts/generate-auction-types.mjs:46", "shortDescription": {"text": "Commented-code block (5 lines) in packages/docs/scripts/generate-auction-types.mjs: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-e494e94c1cb148cd", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/ui/components/CreatePythPredictionForm.tsx:101", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/ui/components/CreatePythPredictionForm.tsx:101"}, "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-8804257ca9fd2409", "name": "Commented-code block (5 lines) in packages/app/src/components/layout/BungeeBridgePanel.tsx:561", "shortDescription": {"text": "Commented-code block (5 lines) in packages/app/src/components/layout/BungeeBridgePanel.tsx:561"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-92e00506a3ba2396", "name": "Legacy-named symbol `isLegacy` in packages/app/src/components/positions/PositionsTable.tsx:332", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in packages/app/src/components/positions/PositionsTable.tsx:332"}, "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-d111628f79ae3087", "name": "Legacy-named symbol `isLegacy` in packages/app/src/components/positions/__tests__/PositionDialog.test.tsx:92", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in packages/app/src/components/positions/__tests__/PositionDialog.test.tsx:92"}, "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-8a508eb30000f3d4", "name": "Legacy-named symbol `addressOverrideDeprecated` in packages/app/src/components/shared/chat/useChatConnection.ts:57", "shortDescription": {"text": "Legacy-named symbol `addressOverrideDeprecated` in packages/app/src/components/shared/chat/useChatConnection.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-82d782284ae12e22", "name": "Commented-code block (5 lines) in packages/app/src/components/terminal/ApprovalDialog.tsx:297", "shortDescription": {"text": "Commented-code block (5 lines) in packages/app/src/components/terminal/ApprovalDialog.tsx:297"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-16f69317baeb75bf", "name": "Commented-code block (5 lines) in packages/app/src/components/terminal/AutoBid/utils.ts:231", "shortDescription": {"text": "Commented-code block (5 lines) in packages/app/src/components/terminal/AutoBid/utils.ts:231"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7768cec4b0ebfc7c", "name": "Commented-code block (5 lines) in packages/app/src/components/markets/CreatePositionForm/PositionForm.tsx:130", "shortDescription": {"text": "Commented-code block (5 lines) in packages/app/src/components/markets/CreatePositionForm/PositionForm.tsx:130"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-92a2c7f723782579", "name": "Commented-code block (5 lines) in packages/app/src/components/markets/CreatePositionForm/__tests__/PositionForm.test.tsx", "shortDescription": {"text": "Commented-code block (5 lines) in packages/app/src/components/markets/CreatePositionForm/__tests__/PositionForm.test.tsx:1035"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f2f41095eee8a7d3", "name": "Commented-code block (5 lines) in packages/app/src/components/markets/pages/QuestionPageContent.tsx:99", "shortDescription": {"text": "Commented-code block (5 lines) in packages/app/src/components/markets/pages/QuestionPageContent.tsx:99"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b133ad4a0802081f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/components/profile/ForecastsTable.tsx:235", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/components/profile/ForecastsTable.tsx:235"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3e8fb8eb0d3a2d94", "name": "Commented-code block (5 lines) in packages/app/src/components/vaults/vaultAnchors.ts:8", "shortDescription": {"text": "Commented-code block (5 lines) in packages/app/src/components/vaults/vaultAnchors.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-28a4d3e13a409fe7", "name": "Commented-code block (5 lines) in packages/app/src/components/vaults/VaultPnlChart.tsx:202", "shortDescription": {"text": "Commented-code block (5 lines) in packages/app/src/components/vaults/VaultPnlChart.tsx:202"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4e082aa5d9f2a081", "name": "Commented-code block (5 lines) in packages/app/src/components/vaults/pages/VaultsPageContent.tsx:671", "shortDescription": {"text": "Commented-code block (5 lines) in packages/app/src/components/vaults/pages/VaultsPageContent.tsx:671"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b32ac3a03cbb3e5f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/app/questions/[...parts]/page.tsx:43", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/app/questions/[...parts]/page.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-831352359e092313", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/app/og/_shared.tsx:43", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/app/og/_shared.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-ef3d1b866bec3d82", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/app/og/_profile-helpers.ts:79", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/app/og/_profile-helpers.ts:79"}, "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-9ba3fe6ac67dda8f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/app/og/question/route.tsx:186", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/app/og/question/route.tsx:186"}, "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-2d8d4e2d0b63ce60", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/app/og/prediction/route.tsx:63", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/app/og/prediction/route.tsx:63"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-384f348dc5f7c5e7", "name": "Legacy-named symbol `isLegacy` in packages/app/src/lib/adapters/position.test.ts:39", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in packages/app/src/lib/adapters/position.test.ts:39"}, "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-d013db175138ecfe", "name": "Legacy-named symbol `isLegacy` in packages/app/src/lib/adapters/pickConfig.ts:63", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in packages/app/src/lib/adapters/pickConfig.ts: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-2c9a6e6dd5e27610", "name": "Legacy-named symbol `isLegacy` in packages/app/src/lib/adapters/pickConfig.test.ts:49", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in packages/app/src/lib/adapters/pickConfig.test.ts:49"}, "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-2a0bfc70dbbc8d4f", "name": "Commented-code block (5 lines) in packages/app/src/lib/ws/AuctionWsClient.ts:83", "shortDescription": {"text": "Commented-code block (5 lines) in packages/app/src/lib/ws/AuctionWsClient.ts:83"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-abbb195e3763b9f4", "name": "Commented-code block (6 lines) in packages/app/src/lib/auction/useAuctionStart.ts:212", "shortDescription": {"text": "Commented-code block (6 lines) in packages/app/src/lib/auction/useAuctionStart.ts:212"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-96f6bca64c00e68a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/lib/pyth/usePythFeedLabel.ts:97", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/lib/pyth/usePythFeedLabel.ts:97"}, "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-0ee40eb7bd7e7f81", "name": "Commented-code block (5 lines) in packages/app/src/lib/bungee/api.ts:8", "shortDescription": {"text": "Commented-code block (5 lines) in packages/app/src/lib/bungee/api.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-0f647227861e7766", "name": "Commented-code block (5 lines) in packages/app/src/lib/bungee/bridgeTracker.ts:36", "shortDescription": {"text": "Commented-code block (5 lines) in packages/app/src/lib/bungee/bridgeTracker.ts:36"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b23902acf025167f", "name": "Commented-code block (5 lines) in packages/app/src/lib/bungee/__tests__/useBridgeTracker.test.tsx:16", "shortDescription": {"text": "Commented-code block (5 lines) in packages/app/src/lib/bungee/__tests__/useBridgeTracker.test.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-a39b8c765450af6f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/lib/context/SapienceProvider.tsx:53", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/lib/context/SapienceProvider.tsx:53"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fad70da1f62be53a", "name": "Commented-code block (5 lines) in packages/app/src/lib/session/sessionKeyManager.ts:936", "shortDescription": {"text": "Commented-code block (5 lines) in packages/app/src/lib/session/sessionKeyManager.ts:936"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-361410a1d5575523", "name": "Commented-code block (5 lines) in packages/app/src/lib/ens/avatar.ts:76", "shortDescription": {"text": "Commented-code block (5 lines) in packages/app/src/lib/ens/avatar.ts:76"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6728378eb5957f06", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/lib/ens/avatar.test.ts:89", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/lib/ens/avatar.test.ts:89"}, "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-70087e41e8ed6b4f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/hooks/referrals/useReferrals.ts:32", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/hooks/referrals/useReferrals.ts: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-dc83fe49c98db77c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/hooks/referrals/useAdminReferralCodes.ts:111", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/hooks/referrals/useAdminReferralCodes.ts:111"}, "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-1f71fbaedc92752a", "name": "Commented-code block (5 lines) in packages/app/src/hooks/secondary/useSecondaryAccept.ts:89", "shortDescription": {"text": "Commented-code block (5 lines) in packages/app/src/hooks/secondary/useSecondaryAccept.ts:89"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-50f4d1a3d5b799cd", "name": "Commented-code block (7 lines) in packages/app/src/hooks/auction/useValidatedBids.ts:76", "shortDescription": {"text": "Commented-code block (7 lines) in packages/app/src/hooks/auction/useValidatedBids.ts:76"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fd3cf6dfdfe234d6", "name": "Commented-code block (5 lines) in packages/app/src/hooks/auction/__tests__/useValidatedBids.test.ts:376", "shortDescription": {"text": "Commented-code block (5 lines) in packages/app/src/hooks/auction/__tests__/useValidatedBids.test.ts:376"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5e8c6560a0bf7c46", "name": "Commented-code block (6 lines) in packages/app/src/hooks/graphql/useAccountActivity.ts:39", "shortDescription": {"text": "Commented-code block (6 lines) in packages/app/src/hooks/graphql/useAccountActivity.ts: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-e19d8719ac9fd81b", "name": "Legacy-named symbol `isLegacy` in packages/app/src/hooks/graphql/usePositions.ts:47", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in packages/app/src/hooks/graphql/usePositions.ts: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-e650874445ac099d", "name": "Commented-code block (5 lines) in packages/app/src/hooks/graphql/usePickConfigsByTokens.ts:14", "shortDescription": {"text": "Commented-code block (5 lines) in packages/app/src/hooks/graphql/usePickConfigsByTokens.ts:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7c9d6802f6d66b02", "name": "Legacy-named symbol `isLegacy` in packages/app/src/hooks/graphql/__tests__/useAccountActivity.test.ts:50", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in packages/app/src/hooks/graphql/__tests__/useAccountActivity.test.ts:50"}, "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-a15833e40f458782", "name": "Legacy-named symbol `isLegacy` in packages/app/src/hooks/graphql/__tests__/usePositions.predictions.test.ts:55", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in packages/app/src/hooks/graphql/__tests__/usePositions.predictions.test.ts:55"}, "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-b643d24d713c46d0", "name": "Legacy-named symbol `isLegacy` in packages/app/src/hooks/graphql/__tests__/usePickConfigsByTokens.test.ts:48", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in packages/app/src/hooks/graphql/__tests__/usePickConfigsByTokens.test.ts:48"}, "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-9d2c6abea1c48f2b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/hooks/markets/useRequestMarket.ts:41", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/hooks/markets/useRequestMarket.ts:41"}, "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-b39537d7dac7026e", "name": "Commented-code block (5 lines) in packages/app/src/hooks/blockchain/useSapienceWriteContract.ts:396", "shortDescription": {"text": "Commented-code block (5 lines) in packages/app/src/hooks/blockchain/useSapienceWriteContract.ts:396"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-910f51607ba42dae", "name": "Commented-code block (11 lines) in packages/app/src/hooks/forms/useSubmitPosition.ts:291", "shortDescription": {"text": "Commented-code block (11 lines) in packages/app/src/hooks/forms/useSubmitPosition.ts:291"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d5149dd9e0acb1fd", "name": "Commented-code block (7 lines) in packages/edge-cache/src/index.ts:64", "shortDescription": {"text": "Commented-code block (7 lines) in packages/edge-cache/src/index.ts:64"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4f428d76032db422", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/edge-cache/src/index.ts:43", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/edge-cache/src/index.ts: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-c8784baedeea97ee", "name": "Legacy-named symbol `normalizeLegacy` in packages/market-keeper/src/resolver.ts:17", "shortDescription": {"text": "Legacy-named symbol `normalizeLegacy` in packages/market-keeper/src/resolver.ts:17"}, "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-2cf95f75102ed3ea", "name": "Commented-code block (9 lines) in packages/market-keeper/src/constants.ts:57", "shortDescription": {"text": "Commented-code block (9 lines) in packages/market-keeper/src/constants.ts:57"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1d3f335b219a52ad", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/market-keeper/src/__tests__/from-event-slugs.test.ts:21", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/market-keeper/src/__tests__/from-event-slugs.test.ts:21"}, "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-ce74ee3d64d17a7a", "name": "Commented-code block (5 lines) in packages/market-keeper/src/__tests__/cleanup-fetch.test.ts:156", "shortDescription": {"text": "Commented-code block (5 lines) in packages/market-keeper/src/__tests__/cleanup-fetch.test.ts: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-3379ff37e052a5dd", "name": "Commented-code block (6 lines) in packages/market-keeper/src/__tests__/metadata-updates.test.ts:221", "shortDescription": {"text": "Commented-code block (6 lines) in packages/market-keeper/src/__tests__/metadata-updates.test.ts:221"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-41346ecb4b53dccc", "name": "Commented-code block (6 lines) in packages/market-keeper/src/generate/transform.ts:214", "shortDescription": {"text": "Commented-code block (6 lines) in packages/market-keeper/src/generate/transform.ts:214"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9c689c2ad15c918b", "name": "Commented-code block (6 lines) in packages/market-keeper/src/generate/grouping.ts:347", "shortDescription": {"text": "Commented-code block (6 lines) in packages/market-keeper/src/generate/grouping.ts:347"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b9523b07f8d13f3e", "name": "Commented-code block (11 lines) in packages/market-keeper/src/generate/tags.ts:46", "shortDescription": {"text": "Commented-code block (11 lines) in packages/market-keeper/src/generate/tags.ts: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-36004983ac2a0f8d", "name": "Commented-code block (6 lines) in packages/market-keeper/src/generate/templated.ts:18", "shortDescription": {"text": "Commented-code block (6 lines) in packages/market-keeper/src/generate/templated.ts:18"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-28e6fcf3e743d741", "name": "Commented-code block (7 lines) in packages/market-keeper/src/generate/endtime.ts:375", "shortDescription": {"text": "Commented-code block (7 lines) in packages/market-keeper/src/generate/endtime.ts:375"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1ff6f83e9ebbe9aa", "name": "Commented-code block (5 lines) in packages/market-keeper/src/generate/extractors/index.ts:21", "shortDescription": {"text": "Commented-code block (5 lines) in packages/market-keeper/src/generate/extractors/index.ts:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-04e4ac45a9d6fa14", "name": "Commented-code block (6 lines) in packages/market-keeper/src/generate/pipeline/filters/exclude-existing.ts:95", "shortDescription": {"text": "Commented-code block (6 lines) in packages/market-keeper/src/generate/pipeline/filters/exclude-existing.ts: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-4df8e01c25e87f4f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/market-keeper/src/labeler/validate-game.ts:22", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/market-keeper/src/labeler/validate-game.ts:22"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9e7fff33d794018b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/market-keeper/src/labeler/fetch-weather.ts:44", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/market-keeper/src/labeler/fetch-weather.ts:44"}, "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-2c808dbd83c55600", "name": "Commented-code block (5 lines) in packages/market-keeper/src/labeler/fetch-corpus.ts:112", "shortDescription": {"text": "Commented-code block (5 lines) in packages/market-keeper/src/labeler/fetch-corpus.ts:112"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3bd520dd3693aefb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/market-keeper/src/labeler/fetch-corpus.ts:70", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/market-keeper/src/labeler/fetch-corpus.ts:70"}, "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-aed2ee0e2d85e752", "name": "Commented-code block (5 lines) in packages/market-keeper/src/labeler/server.ts:48", "shortDescription": {"text": "Commented-code block (5 lines) in packages/market-keeper/src/labeler/server.ts:48"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-586b1962c33d4a07", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/market-keeper/src/labeler/fetch-sports.ts:48", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/market-keeper/src/labeler/fetch-sports.ts:48"}, "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-b09849329742dba1", "name": "Commented-code block (5 lines) in packages/market-keeper/src/refresh-metadata/index.ts:213", "shortDescription": {"text": "Commented-code block (5 lines) in packages/market-keeper/src/refresh-metadata/index.ts:213"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8eb622d2c903d185", "name": "Commented-code block (6 lines) in packages/market-keeper/src/refresh-metadata/fetch.ts:25", "shortDescription": {"text": "Commented-code block (6 lines) in packages/market-keeper/src/refresh-metadata/fetch.ts:25"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a8d7b8125dd6d2cc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/market-keeper/src/refresh-metadata/fetch.ts:183", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/market-keeper/src/refresh-metadata/fetch.ts:183"}, "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-458c6c81cf29c11d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/market-keeper/src/refresh-volume/index.ts:446", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/market-keeper/src/refresh-volume/index.ts:446"}, "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-ea12f7d35b6f15d9", "name": "Commented-code block (5 lines) in packages/market-keeper/src/llm/openrouter.ts:81", "shortDescription": {"text": "Commented-code block (5 lines) in packages/market-keeper/src/llm/openrouter.ts:81"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3d7271e6e87ac8d8", "name": "Commented-code block (5 lines) in packages/market-keeper/src/llm/enrichment.ts:395", "shortDescription": {"text": "Commented-code block (5 lines) in packages/market-keeper/src/llm/enrichment.ts:395"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cfb534bf009d5491", "name": "Legacy-named symbol `isLegacy` in packages/sdk/types/graphql.ts:1450", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in packages/sdk/types/graphql.ts:1450"}, "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-70e7c14bd26f8d09", "name": "Legacy-named symbol `isLegacy` in packages/sdk/types/graphql.v2.ts:893", "shortDescription": {"text": "Legacy-named symbol `isLegacy` in packages/sdk/types/graphql.v2.ts:893"}, "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-5f67aa6a970d3f4a", "name": "Commented-code block (7 lines) in packages/sdk/scripts/settlePythMarkets.ts:436", "shortDescription": {"text": "Commented-code block (7 lines) in packages/sdk/scripts/settlePythMarkets.ts:436"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5c1aa02ab14c61ef", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sdk/scripts/settlePythMarkets.ts:156", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sdk/scripts/settlePythMarkets.ts:156"}, "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-f6dea28236d88ab6", "name": "Commented-code block (6 lines) in packages/sdk/auction/escrowEncoding.ts:11", "shortDescription": {"text": "Commented-code block (6 lines) in packages/sdk/auction/escrowEncoding.ts:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9a2b324befa43127", "name": "Commented-code block (5 lines) in packages/sdk/auction/escrowSigning.test.ts:1015", "shortDescription": {"text": "Commented-code block (5 lines) in packages/sdk/auction/escrowSigning.test.ts:1015"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c5ced8174a467135", "name": "Commented-code block (6 lines) in packages/sdk/auction/validation.ts:584", "shortDescription": {"text": "Commented-code block (6 lines) in packages/sdk/auction/validation.ts:584"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f315bee67ade3f9d", "name": "Commented-code block (6 lines) in packages/sdk/session/smartAccount.ts:12", "shortDescription": {"text": "Commented-code block (6 lines) in packages/sdk/session/smartAccount.ts:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2b7dee7761f8f5a4", "name": "Commented-code block (5 lines) in packages/sdk/queries/protocol.ts:82", "shortDescription": {"text": "Commented-code block (5 lines) in packages/sdk/queries/protocol.ts:82"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-63bf8d51d082705b", "name": "Commented-code block (5 lines) in starters/market-maker/src/strategies/PolymarketStrategy.ts:11", "shortDescription": {"text": "Commented-code block (5 lines) in starters/market-maker/src/strategies/PolymarketStrategy.ts:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6be317e69fe63a96", "name": "Commented-code block (5 lines) in starters/market-maker/src/strategies/PythStrategy.ts:11", "shortDescription": {"text": "Commented-code block (5 lines) in starters/market-maker/src/strategies/PythStrategy.ts:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7e2f6cf0beed6673", "name": "Commented-code block (5 lines) in starters/market-maker/src/strategies/types.ts:9", "shortDescription": {"text": "Commented-code block (5 lines) in starters/market-maker/src/strategies/types.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-6bc14df28c9088c4", "name": "106 env vars used in code but missing from .env.example", "shortDescription": {"text": "106 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `ALLOWED_ADDRESSES`, `ALLOW_PROD_DB_FROM_DEV`, `API_ACCESS_TOKEN`, `BOT_CHAIN_ID`, `BOT_COLLATERAL_TOKEN`, `BOT_PRIVATE_KEY`, `BOT_RPC_URL`, `BUDGET_MANAGER_PRIVATE_KEY` + 98 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-11cbdd754f3654f0", "name": "Dangling fetch: GET https://history.pyth-lazer.dourolabs.app/history/v1/symbols (packages/ui/components/CreatePythPredic", "shortDescription": {"text": "Dangling fetch: GET https://history.pyth-lazer.dourolabs.app/history/v1/symbols (packages/ui/components/CreatePythPredictionForm.tsx:101)"}, "fullDescription": {"text": "`packages/ui/components/CreatePythPredictionForm.tsx:101` calls `GET https://history.pyth-lazer.dourolabs.app/history/v1/symbols` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/history.pyth-lazer.dourolabs.app/history/v1/symbols`\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-5523594a2b2eb274", "name": "Dangling fetch: GET https://ipinfo.io/${ip}?token=${token} (packages/app/src/app/api/permit/route.ts:34)", "shortDescription": {"text": "Dangling fetch: GET https://ipinfo.io/${ip}?token=${token} (packages/app/src/app/api/permit/route.ts:34)"}, "fullDescription": {"text": "`packages/app/src/app/api/permit/route.ts:34` calls `GET https://ipinfo.io/${ip}?token=${token}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/ipinfo.io/<p>`\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-520711ace7408185", "name": "Dangling fetch: GET https://history.pyth-lazer.dourolabs.app/history/v1/symbols (packages/app/src/lib/pyth/usePythFeedLa", "shortDescription": {"text": "Dangling fetch: GET https://history.pyth-lazer.dourolabs.app/history/v1/symbols (packages/app/src/lib/pyth/usePythFeedLabel.ts:97)"}, "fullDescription": {"text": "`packages/app/src/lib/pyth/usePythFeedLabel.ts:97` calls `GET https://history.pyth-lazer.dourolabs.app/history/v1/symbols` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/history.pyth-lazer.dourolabs.app/history/v1/symbols`\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-80a7a68fb83309e5", "name": "Dangling fetch: GET /api/permit (packages/app/src/lib/context/SapienceProvider.tsx:53)", "shortDescription": {"text": "Dangling fetch: GET /api/permit (packages/app/src/lib/context/SapienceProvider.tsx:53)"}, "fullDescription": {"text": "`packages/app/src/lib/context/SapienceProvider.tsx:53` calls `GET /api/permit` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/permit`\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-7a009b1a56794f45", "name": "Unused endpoint: POST /", "shortDescription": {"text": "Unused endpoint: POST /"}, "fullDescription": {"text": "`packages/api/src/routes/marketRequests.ts` declares `POST /` 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-886dc645d7f923ac", "name": "Unused endpoint: POST /protocol-stats", "shortDescription": {"text": "Unused endpoint: POST /protocol-stats"}, "fullDescription": {"text": "`packages/api/src/routes/reindex.ts` declares `POST /protocol-stats` 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-6e633f7e4f9054e1", "name": "Unused endpoint: POST /batch-create", "shortDescription": {"text": "Unused endpoint: POST /batch-create"}, "fullDescription": {"text": "`packages/api/src/routes/conditions.ts` declares `POST /batch-create` 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-40fb5ffc1be9156d", "name": "Unused endpoint: PUT /prices", "shortDescription": {"text": "Unused endpoint: PUT /prices"}, "fullDescription": {"text": "`packages/api/src/routes/conditions.ts` declares `PUT /prices` 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-ff5819325fe8787e", "name": "Unused endpoint: PUT /volume", "shortDescription": {"text": "Unused endpoint: PUT /volume"}, "fullDescription": {"text": "`packages/api/src/routes/conditions.ts` declares `PUT /volume` 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-fc655a521f0d69bb", "name": "Unused endpoint: PUT /batch-metadata", "shortDescription": {"text": "Unused endpoint: PUT /batch-metadata"}, "fullDescription": {"text": "`packages/api/src/routes/conditions.ts` declares `PUT /batch-metadata` 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-437aed0da20c380e", "name": "Unused endpoint: PUT /batch-private", "shortDescription": {"text": "Unused endpoint: PUT /batch-private"}, "fullDescription": {"text": "`packages/api/src/routes/conditions.ts` declares `PUT /batch-private` 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-8d5b2b188d08ca82", "name": "Unused endpoint: PUT /:id", "shortDescription": {"text": "Unused endpoint: PUT /:id"}, "fullDescription": {"text": "`packages/api/src/routes/conditions.ts` declares `PUT /: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-20539c96de5b1dcb", "name": "Unused endpoint: USE /tokenlist.json", "shortDescription": {"text": "Unused endpoint: USE /tokenlist.json"}, "fullDescription": {"text": "`packages/api/src/routes/tokenlist.ts` declares `USE /tokenlist.json` 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-6dab68a5c0e9152f", "name": "Unused endpoint: GET /tokenlist.json", "shortDescription": {"text": "Unused endpoint: GET /tokenlist.json"}, "fullDescription": {"text": "`packages/api/src/routes/tokenlist.ts` declares `GET /tokenlist.json` 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-f02a079c69b52f2d", "name": "Unused endpoint: USE /", "shortDescription": {"text": "Unused endpoint: USE /"}, "fullDescription": {"text": "`packages/api/src/routes/index.ts` declares `USE /` 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-7780c2de636ff36b", "name": "Unused endpoint: USE /referrals", "shortDescription": {"text": "Unused endpoint: USE /referrals"}, "fullDescription": {"text": "`packages/api/src/routes/index.ts` declares `USE /referrals` 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-75fdd6cf243cebd8", "name": "Unused endpoint: USE /market-requests", "shortDescription": {"text": "Unused endpoint: USE /market-requests"}, "fullDescription": {"text": "`packages/api/src/routes/index.ts` declares `USE /market-requests` 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-0c12c8fb135496a7", "name": "Unused endpoint: USE /reindex", "shortDescription": {"text": "Unused endpoint: USE /reindex"}, "fullDescription": {"text": "`packages/api/src/routes/index.ts` declares `USE /reindex` 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-d8eb3b941b80bd30", "name": "Unused endpoint: USE /conditions", "shortDescription": {"text": "Unused endpoint: USE /conditions"}, "fullDescription": {"text": "`packages/api/src/routes/index.ts` declares `USE /conditions` 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-4609045c97a9dedf", "name": "Unused endpoint: USE /conditionGroups", "shortDescription": {"text": "Unused endpoint: USE /conditionGroups"}, "fullDescription": {"text": "`packages/api/src/routes/index.ts` declares `USE /conditionGroups` 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-b2d8849fb6b1ac47", "name": "Unused endpoint: USE /admin", "shortDescription": {"text": "Unused endpoint: USE /admin"}, "fullDescription": {"text": "`packages/api/src/routes/index.ts` declares `USE /admin` 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": "`packages/api/src/routes/conditionGroups.ts` 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-6d127b1458a20984", "name": "Unused endpoint: PUT /:id/conditions", "shortDescription": {"text": "Unused endpoint: PUT /:id/conditions"}, "fullDescription": {"text": "`packages/api/src/routes/conditionGroups.ts` declares `PUT /:id/conditions` 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-7a61c112b611f4bb", "name": "Unused endpoint: DELETE /:id", "shortDescription": {"text": "Unused endpoint: DELETE /:id"}, "fullDescription": {"text": "`packages/api/src/routes/conditionGroups.ts` declares `DELETE /: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-e9ca4e347c1cab3a", "name": "Unused endpoint: POST /code", "shortDescription": {"text": "Unused endpoint: POST /code"}, "fullDescription": {"text": "`packages/api/src/routes/referrals.ts` declares `POST /code` 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-e8cb30c99975a7d4", "name": "Unused endpoint: POST /claim", "shortDescription": {"text": "Unused endpoint: POST /claim"}, "fullDescription": {"text": "`packages/api/src/routes/referrals.ts` declares `POST /claim` 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-6adad37b3113113c", "name": "Unused endpoint: GET /codes", "shortDescription": {"text": "Unused endpoint: GET /codes"}, "fullDescription": {"text": "`packages/api/src/routes/referrals.ts` declares `GET /codes` 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-e6de7d91616782d2", "name": "Unused endpoint: GET /codes/:id", "shortDescription": {"text": "Unused endpoint: GET /codes/:id"}, "fullDescription": {"text": "`packages/api/src/routes/referrals.ts` declares `GET /codes/: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-5e1dea2967ab372a", "name": "Unused endpoint: GET /users/:address", "shortDescription": {"text": "Unused endpoint: GET /users/:address"}, "fullDescription": {"text": "`packages/api/src/routes/referrals.ts` declares `GET /users/:address` 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-ec17f933859b5f24", "name": "Unused endpoint: POST /admin/codes", "shortDescription": {"text": "Unused endpoint: POST /admin/codes"}, "fullDescription": {"text": "`packages/api/src/routes/referrals.ts` declares `POST /admin/codes` 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-31474accbb3b28c1", "name": "Unused endpoint: PUT /admin/codes/:id", "shortDescription": {"text": "Unused endpoint: PUT /admin/codes/:id"}, "fullDescription": {"text": "`packages/api/src/routes/referrals.ts` declares `PUT /admin/codes/: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-d5ba74737f29f736", "name": "Unused endpoint: DELETE /admin/codes/:id", "shortDescription": {"text": "Unused endpoint: DELETE /admin/codes/:id"}, "fullDescription": {"text": "`packages/api/src/routes/referrals.ts` declares `DELETE /admin/codes/: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-316f498f9851e2fa", "name": "Unused endpoint: USE /graphql", "shortDescription": {"text": "Unused endpoint: USE /graphql"}, "fullDescription": {"text": "`packages/api/src/core/server.ts` declares `USE /graphql` 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-0c2b529b9040923b", "name": "Unused endpoint: USE /v2/graphql", "shortDescription": {"text": "Unused endpoint: USE /v2/graphql"}, "fullDescription": {"text": "`packages/api/src/core/server.ts` declares `USE /v2/graphql` 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-831db93b66a2d57c", "name": "Unused endpoint: USE /auction", "shortDescription": {"text": "Unused endpoint: USE /auction"}, "fullDescription": {"text": "`packages/api/src/core/server.ts` declares `USE /auction` 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/18951"}, "properties": {"repository": "sapiencexyz/sapience", "repoUrl": "https://github.com/sapiencexyz/sapience", "branch": "main"}, "results": [{"ruleId": "scanner-88bb8e2207c71584", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/relayer/load-test.ts:36"}, "properties": {"repobilityId": "6963221730a663bf", "scanner": "scanner-primary", "fingerprint": "88bb8e2207c71584", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-49062a521b1f385c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/relayer/scripts/testSecondaryListing.ts:43"}, "properties": {"repobilityId": "3909d8c7b48dd8f1", "scanner": "scanner-primary", "fingerprint": "49062a521b1f385c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-32cfc0660f76f08c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/relayer/src/ws.ts:183"}, "properties": {"repobilityId": "2505dd4655c04897", "scanner": "scanner-primary", "fingerprint": "32cfc0660f76f08c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3e57ace0d60bbcf2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/relayer/src/botExample.ts:23"}, "properties": {"repobilityId": "fcce6b919b6cf533", "scanner": "scanner-primary", "fingerprint": "3e57ace0d60bbcf2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7b92da9a8adb6d4c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/relayer/src/instrument.ts:11"}, "properties": {"repobilityId": "9a8569e4cd6c5104", "scanner": "scanner-primary", "fingerprint": "7b92da9a8adb6d4c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-dc485f7f92cf5e14", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/relayer/src/server.ts:106"}, "properties": {"repobilityId": "eab3555429f7baf7", "scanner": "scanner-primary", "fingerprint": "dc485f7f92cf5e14", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7f08c59963b20276", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/relayer/src/secondaryMarketHandlers.ts:153"}, "properties": {"repobilityId": "b15053b02616a7a0", "scanner": "scanner-primary", "fingerprint": "7f08c59963b20276", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f1c784f9cf67139c", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/relayer/src/sim.ts:63"}, "properties": {"repobilityId": "7d5a7f11ab2c9c9d", "scanner": "scanner-primary", "fingerprint": "f1c784f9cf67139c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-1a5ef24d3b54f2e5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/relayer/src/loadtest/reporter.ts:23"}, "properties": {"repobilityId": "5e5a261b7f2d77a7", "scanner": "scanner-primary", "fingerprint": "1a5ef24d3b54f2e5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1280105a793ad22f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/relayer/src/loadtest/scenarios/apiThroughput.ts:55"}, "properties": {"repobilityId": "cd831430874a0f16", "scanner": "scanner-primary", "fingerprint": "1280105a793ad22f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-edc6150b75e92d95", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/relayer/src/loadtest/scenarios/escrowAuction.ts:48"}, "properties": {"repobilityId": "022f1495e4dad2c6", "scanner": "scanner-primary", "fingerprint": "edc6150b75e92d95", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-237613fd7bd67a38", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/relayer/src/loadtest/scenarios/mixedWorkload.ts:59"}, "properties": {"repobilityId": "25d5af2d79ed5605", "scanner": "scanner-primary", "fingerprint": "237613fd7bd67a38", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4e6001a5ad8a95c2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/relayer/src/handlers/escrow.ts:71"}, "properties": {"repobilityId": "79759499b4759ac2", "scanner": "scanner-primary", "fingerprint": "4e6001a5ad8a95c2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d7b5396853338801", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/recoverMissingPredictions.ts:105"}, "properties": {"repobilityId": "417f45197368b434", "scanner": "scanner-primary", "fingerprint": "d7b5396853338801", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3b21cb8d94361538", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/inspectConditionGroupEventCollisions.ts:130"}, "properties": {"repobilityId": "5ddc6020171826a3", "scanner": "scanner-primary", "fingerprint": "3b21cb8d94361538", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-24113140a6669c10", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/checkVaultFlowConsistency.ts:93"}, "properties": {"repobilityId": "04c38f3b2f39b809", "scanner": "scanner-primary", "fingerprint": "24113140a6669c10", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-96a42ec079df0155", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/checkVaultSponsorship.ts:73"}, "properties": {"repobilityId": "b8e311e3e8fc63cd", "scanner": "scanner-primary", "fingerprint": "96a42ec079df0155", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-015c911e27ec14d2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/backfillVaultFlows.ts:99"}, "properties": {"repobilityId": "1503e716df253940", "scanner": "scanner-primary", "fingerprint": "015c911e27ec14d2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-acf7472a396af525", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/backfillConditionGroupEvent.ts:309"}, "properties": {"repobilityId": "9b2d03a4159daea2", "scanner": "scanner-primary", "fingerprint": "acf7472a396af525", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-01f4c3bb3969d3a2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/backfillConditionGroupBaskets.ts:111"}, "properties": {"repobilityId": "84089d6378c8f9f1", "scanner": "scanner-primary", "fingerprint": "01f4c3bb3969d3a2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d9af895ecc52ce77", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/checkVaultTransfers.ts:116"}, "properties": {"repobilityId": "7538ef1db05626a4", "scanner": "scanner-primary", "fingerprint": "d9af895ecc52ce77", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-aecda660d7cda1b6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/verifyTimingPlugin.ts:127"}, "properties": {"repobilityId": "46ea666bdb4d3621", "scanner": "scanner-primary", "fingerprint": "aecda660d7cda1b6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6b5c68247af65818", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/mergeConditionGroupDuplicates.ts:363"}, "properties": {"repobilityId": "cb8c38528b4c3919", "scanner": "scanner-primary", "fingerprint": "6b5c68247af65818", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-63bdad818856bbaf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/backfillClaimLogIndex.ts:63"}, "properties": {"repobilityId": "b9e727d4d44c5d4d", "scanner": "scanner-primary", "fingerprint": "63bdad818856bbaf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5cfdbe6771498193", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/api/scripts/scanLegacySessionKeyData.ts:216"}, "properties": {"repobilityId": "0a37f425f15da3c3", "scanner": "scanner-primary", "fingerprint": "5cfdbe6771498193", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0f9ff9c2a0f62c57", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/api/src/scripts/compareProtocolStats.ts:140"}, "properties": {"repobilityId": "168b20120b5f3136", "scanner": "scanner-primary", "fingerprint": "0f9ff9c2a0f62c57", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e72691f4d4ffe28b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/api/src/scripts/emitSchema.ts:20"}, "properties": {"repobilityId": "f2afbc89587344a4", "scanner": "scanner-primary", "fingerprint": "e72691f4d4ffe28b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-17318ca6c561af4c", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/api/src/graphql/v2/startApolloServer.ts:53"}, "properties": {"repobilityId": "014476a02eb5045c", "scanner": "scanner-primary", "fingerprint": "17318ca6c561af4c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-d8b47d010d70b503", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/api/src/runtime/middleware.ts:16"}, "properties": {"repobilityId": "9a598bd60f7d1c8d", "scanner": "scanner-primary", "fingerprint": "d8b47d010d70b503", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-7e782f564b16ecfe", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/api/src/core/instrument.ts:39"}, "properties": {"repobilityId": "9384554650982fef", "scanner": "scanner-primary", "fingerprint": "7e782f564b16ecfe", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e4a1446013d54036", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/ui/components/PredictionListItem.tsx:56"}, "properties": {"repobilityId": "0dcde2de891d8267", "scanner": "scanner-primary", "fingerprint": "e4a1446013d54036", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-39695d339aba5e92", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/ui/stories/ui/Form.stories.tsx:227"}, "properties": {"repobilityId": "a008ffa8066d4fbd", "scanner": "scanner-primary", "fingerprint": "39695d339aba5e92", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d0c0f455b8b7a57a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/app/sentry.server.config.ts:14"}, "properties": {"repobilityId": "801b6feba69a3971", "scanner": "scanner-primary", "fingerprint": "d0c0f455b8b7a57a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-559d0e833a86b090", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/app/sentry.client.config.ts:65"}, "properties": {"repobilityId": "3491818d0013f859", "scanner": "scanner-primary", "fingerprint": "559d0e833a86b090", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-92b0b8731038089b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/app/sentry.edge.config.ts:19"}, "properties": {"repobilityId": "e548f216bcd876d2", "scanner": "scanner-primary", "fingerprint": "92b0b8731038089b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-afaf5a9437055c30", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/layout/DepositBridgeRow.tsx:108"}, "properties": {"repobilityId": "018955e28c3cf2cd", "scanner": "scanner-primary", "fingerprint": "afaf5a9437055c30", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a53bd7bd001eb34a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/layout/BungeeBridgePanel.tsx:658"}, "properties": {"repobilityId": "7a9848624eb1e1aa", "scanner": "scanner-primary", "fingerprint": "a53bd7bd001eb34a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f87e61bfcd8379dc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/analytics/OpenInterestByCategoryChart.tsx:118"}, "properties": {"repobilityId": "1644f762b3d27752", "scanner": "scanner-primary", "fingerprint": "f87e61bfcd8379dc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a22d83db188fa938", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/shared/PicksPopover.tsx:83"}, "properties": {"repobilityId": "a20c22e7aa6477ae", "scanner": "scanner-primary", "fingerprint": "a22d83db188fa938", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4618240c40a98c53", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/shared/StackedPredictions.tsx:167"}, "properties": {"repobilityId": "e29acb81bdeee04b", "scanner": "scanner-primary", "fingerprint": "4618240c40a98c53", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-89228120a5fd4adc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/shared/PicksSummary.tsx:157"}, "properties": {"repobilityId": "40d15ace3a5b0bb9", "scanner": "scanner-primary", "fingerprint": "89228120a5fd4adc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-888375152ac19b92", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/shared/CommandMenu.tsx:304"}, "properties": {"repobilityId": "4c461621f73665c6", "scanner": "scanner-primary", "fingerprint": "888375152ac19b92", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9085d967afa57979", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/app/src/components/shared/ConsoleMessage.tsx:15"}, "properties": {"repobilityId": "3313ba2651d9527e", "scanner": "scanner-primary", "fingerprint": "9085d967afa57979", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-00b0d2fbeec59a26", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/stream/MessageGroupRow.tsx:81"}, "properties": {"repobilityId": "2a682a2349b9a640", "scanner": "scanner-primary", "fingerprint": "00b0d2fbeec59a26", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-570a569193a9cd24", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/stream/MessageRow.tsx:42"}, "properties": {"repobilityId": "d4307cbec953275e", "scanner": "scanner-primary", "fingerprint": "570a569193a9cd24", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-59da61d9d9f913bf", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/markets/QuestionsTable.tsx:212"}, "properties": {"repobilityId": "4ade204afde2264f", "scanner": "scanner-primary", "fingerprint": "59da61d9d9f913bf", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-352d0c4be7fa17c0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/markets/question/CombinedPredictionsList.tsx:165"}, "properties": {"repobilityId": "04529b8379eaf6b8", "scanner": "scanner-primary", "fingerprint": "352d0c4be7fa17c0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bc080f694c97b419", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/markets/CreatePositionForm/PositionForm.tsx:827"}, "properties": {"repobilityId": "0b79010c94ff6633", "scanner": "scanner-primary", "fingerprint": "bc080f694c97b419", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-45cce56ebf6f8644", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/markets/polymarket/MarketCard.tsx:181"}, "properties": {"repobilityId": "d5e8251782445771", "scanner": "scanner-primary", "fingerprint": "45cce56ebf6f8644", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-66d468ee7581dd12", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 packages/app/src/components/conditions/ConditionSelect.tsx:126"}, "properties": {"repobilityId": "390f3713dc98bad0", "scanner": "scanner-primary", "fingerprint": "66d468ee7581dd12", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ac2433347387412c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/app/src/lib/auction/bidLogger.ts:37"}, "properties": {"repobilityId": "8c9bc5ecd3399553", "scanner": "scanner-primary", "fingerprint": "ac2433347387412c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-897ec064b5c837c9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/app/src/lib/mesh/PeerConnection.ts:64"}, "properties": {"repobilityId": "37f52c2b7dc4d670", "scanner": "scanner-primary", "fingerprint": "897ec064b5c837c9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9b9a44865ef8e46d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/app/src/lib/mesh/PeerManager.ts:69"}, "properties": {"repobilityId": "23550848d009fa33", "scanner": "scanner-primary", "fingerprint": "9b9a44865ef8e46d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d3df93a992d2ac8f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/app/src/lib/session/sessionKeyManager.ts:1341"}, "properties": {"repobilityId": "e4067e01991ed4d0", "scanner": "scanner-primary", "fingerprint": "d3df93a992d2ac8f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-93a5edd7306b1e1b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/app/src/hooks/blockchain/useSapienceWriteContract.ts:390"}, "properties": {"repobilityId": "fccd74b12c675ec5", "scanner": "scanner-primary", "fingerprint": "93a5edd7306b1e1b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-be86a090547b6404", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/app/src/hooks/forms/usePositionProgress.ts:38"}, "properties": {"repobilityId": "6fdf42d3a2b41441", "scanner": "scanner-primary", "fingerprint": "be86a090547b6404", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0fc286972de87e57", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/scripts/settle-pyth.ts:207"}, "properties": {"repobilityId": "a3d1269678d29319", "scanner": "scanner-primary", "fingerprint": "0fc286972de87e57", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7854443f6fb1f8ee", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/scripts/settle-manual.ts:199"}, "properties": {"repobilityId": "8a10e980418a5351", "scanner": "scanner-primary", "fingerprint": "7854443f6fb1f8ee", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0958e5a266c87a49", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/scripts/update-condition.ts:120"}, "properties": {"repobilityId": "f66cfab30d63a447", "scanner": "scanner-primary", "fingerprint": "0958e5a266c87a49", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-78bba19558488911", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/scripts/settle-polymarket.ts:180"}, "properties": {"repobilityId": "90e79d52050ad2b3", "scanner": "scanner-primary", "fingerprint": "78bba19558488911", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fefbca7bbade0561", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/scripts/add-events.ts:74"}, "properties": {"repobilityId": "e207d2fa28a23651", "scanner": "scanner-primary", "fingerprint": "fefbca7bbade0561", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-494da623fefda242", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/scripts/lib/groups.js:61"}, "properties": {"repobilityId": "4b37ae89d66a5946", "scanner": "scanner-primary", "fingerprint": "494da623fefda242", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-183e1bc122ccb752", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/misc/backfill-condition-similar-markets.ts:55"}, "properties": {"repobilityId": "11d1e8b7447ec8af", "scanner": "scanner-primary", "fingerprint": "183e1bc122ccb752", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f92867ebe8dd2d1b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/misc/fix-category.ts:73"}, "properties": {"repobilityId": "251be255ec0de6b0", "scanner": "scanner-primary", "fingerprint": "f92867ebe8dd2d1b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0bf4bf088dbeb309", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/misc/backfill-similar-markets.ts:56"}, "properties": {"repobilityId": "04732ce7515c9373", "scanner": "scanner-primary", "fingerprint": "0bf4bf088dbeb309", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-10d8b74ea942b07c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/prices-and-1d-7d-volume/index.ts:41"}, "properties": {"repobilityId": "909f31f524df5620", "scanner": "scanner-primary", "fingerprint": "10d8b74ea942b07c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-32f0966e743a8ce8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/generate/api.ts:147"}, "properties": {"repobilityId": "c7da06be45fb0279", "scanner": "scanner-primary", "fingerprint": "32f0966e743a8ce8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1d68dd539eb709ff", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/generate/grouping.ts:364"}, "properties": {"repobilityId": "cd3a0dc3bc562b51", "scanner": "scanner-primary", "fingerprint": "1d68dd539eb709ff", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f2f2dfed25e63101", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/generate/tags.ts:133"}, "properties": {"repobilityId": "2270b814baea4d7a", "scanner": "scanner-primary", "fingerprint": "f2f2dfed25e63101", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c635a0ed7793e23c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/generate/from-event-slugs.ts:83"}, "properties": {"repobilityId": "484f71f5d1d937fe", "scanner": "scanner-primary", "fingerprint": "c635a0ed7793e23c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3d4e6f7a21e36b29", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/generate/index.ts:28"}, "properties": {"repobilityId": "b4230553dc3f2a33", "scanner": "scanner-primary", "fingerprint": "3d4e6f7a21e36b29", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-170611d9aa301d56", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/generate/market.ts:32"}, "properties": {"repobilityId": "6a0cfe6de75c530e", "scanner": "scanner-primary", "fingerprint": "170611d9aa301d56", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-987eb10908bf5b3f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/generate/pipeline/index.ts:194"}, "properties": {"repobilityId": "db3971f9d34c7fd2", "scanner": "scanner-primary", "fingerprint": "987eb10908bf5b3f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c20de899f5f3422a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/generate/pipeline/filters/neg-risk-basket.ts:69"}, "properties": {"repobilityId": "9d72bb9fc43b8045", "scanner": "scanner-primary", "fingerprint": "c20de899f5f3422a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-34c7aeaca2699232", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/generate/pipeline/filters/exclude-existing.ts:161"}, "properties": {"repobilityId": "307b4e90f9ee1d2b", "scanner": "scanner-primary", "fingerprint": "34c7aeaca2699232", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d33a94bc461a68b0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/labeler/fetch-llm-endtimes.ts:74"}, "properties": {"repobilityId": "7e659c1b09994ed2", "scanner": "scanner-primary", "fingerprint": "d33a94bc461a68b0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f60b4581c264bf1c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/labeler/score.ts:293"}, "properties": {"repobilityId": "8a95c62ae2a82632", "scanner": "scanner-primary", "fingerprint": "f60b4581c264bf1c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a9e5ce1ccf707478", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/labeler/fetch.ts:26"}, "properties": {"repobilityId": "99abefa915be6ffe", "scanner": "scanner-primary", "fingerprint": "a9e5ce1ccf707478", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f5647ce32ebfaf67", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/labeler/validate-game.ts:37"}, "properties": {"repobilityId": "43bfc94abad591e8", "scanner": "scanner-primary", "fingerprint": "f5647ce32ebfaf67", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-234a9f047c3b2de6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/labeler/fetch-weather.ts:112"}, "properties": {"repobilityId": "208ad6dabae1192d", "scanner": "scanner-primary", "fingerprint": "234a9f047c3b2de6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1ff1c985c8a55161", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/labeler/fetch-corpus.ts:231"}, "properties": {"repobilityId": "50bfcdb429830459", "scanner": "scanner-primary", "fingerprint": "1ff1c985c8a55161", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0b246ae3a6fbb6b5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/labeler/server.ts:456"}, "properties": {"repobilityId": "f1144973acc394a1", "scanner": "scanner-primary", "fingerprint": "0b246ae3a6fbb6b5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9f6912f6eb06305e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/labeler/fetch-sports.ts:126"}, "properties": {"repobilityId": "f50a5ee9d07ee5aa", "scanner": "scanner-primary", "fingerprint": "9f6912f6eb06305e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6e1d641347f2652e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/refresh-imminent-tag/index.ts:57"}, "properties": {"repobilityId": "2abc821eb10ad5a2", "scanner": "scanner-primary", "fingerprint": "6e1d641347f2652e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5c6e8f81e5313d55", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/utils/safety.ts:55"}, "properties": {"repobilityId": "0785c9cf4a0bb0fa", "scanner": "scanner-primary", "fingerprint": "5c6e8f81e5313d55", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-467299d7af399702", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/utils/log.ts:13"}, "properties": {"repobilityId": "edd25fb231c3afe0", "scanner": "scanner-primary", "fingerprint": "467299d7af399702", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d151763df234db28", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/utils/fetch.ts:35"}, "properties": {"repobilityId": "3b11862734c56678", "scanner": "scanner-primary", "fingerprint": "d151763df234db28", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e3e9da700bd14515", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/relist/index.ts:39"}, "properties": {"repobilityId": "f3f06c2c048fe6de", "scanner": "scanner-primary", "fingerprint": "e3e9da700bd14515", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5199c77512c4e20a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/relist/market.ts:34"}, "properties": {"repobilityId": "368f6ad2482a196c", "scanner": "scanner-primary", "fingerprint": "5199c77512c4e20a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fa5bb156cc272db2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/polygon/client.ts:163"}, "properties": {"repobilityId": "e61395eab6b5efb6", "scanner": "scanner-primary", "fingerprint": "fa5bb156cc272db2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-49cdf3fabdc2e529", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/refresh-metadata/index.ts:50"}, "properties": {"repobilityId": "97ec5f07e9a72c57", "scanner": "scanner-primary", "fingerprint": "49cdf3fabdc2e529", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-077cca9d0f96170b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/refresh-metadata/fetch.ts:135"}, "properties": {"repobilityId": "4bcfe8c0ac27ff59", "scanner": "scanner-primary", "fingerprint": "077cca9d0f96170b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5d49bdfd6674201e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/cleanup/api.ts:126"}, "properties": {"repobilityId": "ea06805e28b09674", "scanner": "scanner-primary", "fingerprint": "5d49bdfd6674201e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-70d529470c199077", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/cleanup/index.ts:53"}, "properties": {"repobilityId": "fa2b191d7819e75c", "scanner": "scanner-primary", "fingerprint": "70d529470c199077", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e11b62d2e6681f0b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/refresh-volume/index.ts:70"}, "properties": {"repobilityId": "26a05ffb34121310", "scanner": "scanner-primary", "fingerprint": "e11b62d2e6681f0b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b8a8c4c5923745bb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/llm/openrouter.ts:146"}, "properties": {"repobilityId": "5953ecf4f6680f15", "scanner": "scanner-primary", "fingerprint": "b8a8c4c5923745bb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bffc626a635ead15", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/market-keeper/src/llm/enrichment.ts:122"}, "properties": {"repobilityId": "0baba64ba4480ab8", "scanner": "scanner-primary", "fingerprint": "bffc626a635ead15", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1d41b1c942f2c58a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sdk/scripts/settlePythMarkets.ts:662"}, "properties": {"repobilityId": "d9a4d7c1d5c3a138", "scanner": "scanner-primary", "fingerprint": "1d41b1c942f2c58a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-96d921ae3744daa7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 starters/market-maker/src/index.ts:49"}, "properties": {"repobilityId": "e3e575b1fc5bfbcf", "scanner": "scanner-primary", "fingerprint": "96d921ae3744daa7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-13744f23cf7e9af5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 starters/market-maker/src/strategies/PythStrategy.ts:94"}, "properties": {"repobilityId": "616cbd5f8a7f89d6", "scanner": "scanner-primary", "fingerprint": "13744f23cf7e9af5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d63da3583b14afc0", "level": "warning", "message": {"text": "Dockerfile runs as root: Dockerfile"}, "properties": {"repobilityId": "a2ed1bd120e507db", "scanner": "scanner-primary", "fingerprint": "d63da3583b14afc0", "layer": "hardware", "severity": "medium", "confidence": 1.0, "tags": ["security", "container"]}}, {"ruleId": "scanner-93e02e0d67c8f3e8", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:22-slim"}, "properties": {"repobilityId": "cb89e743d8f563eb", "scanner": "scanner-primary", "fingerprint": "93e02e0d67c8f3e8", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "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-35e8cab3b496a970", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/api/scripts/snapshotTestDb.ts:15"}, "properties": {"repobilityId": "f51d6b85b6d245a1", "scanner": "scanner-primary", "fingerprint": "35e8cab3b496a970", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/api/scripts/snapshotTestDb.ts"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-71c4d0333c37c1bb", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in packages/api/src/routes/tokenlist.ts:23"}, "properties": {"repobilityId": "8a7935130df4f4e9", "scanner": "scanner-primary", "fingerprint": "71c4d0333c37c1bb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/api/src/routes/tokenlist.ts"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-07626e2156ddfc62", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/app/scripts/build-static.mjs:15"}, "properties": {"repobilityId": "7ced3b415667d6d1", "scanner": "scanner-primary", "fingerprint": "07626e2156ddfc62", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/app/scripts/build-static.mjs"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-5a8e318bd7e3e8de", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in packages/app/scripts/build-static.mjs:178"}, "properties": {"repobilityId": "f4a5fccf451092d3", "scanner": "scanner-primary", "fingerprint": "5a8e318bd7e3e8de", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/app/scripts/build-static.mjs"}, "region": {"startLine": 178}}}]}, {"ruleId": "scanner-5d56594df913eb9c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/app/scripts/pin-ipfs.mjs:17"}, "properties": {"repobilityId": "9408cd849a4f2718", "scanner": "scanner-primary", "fingerprint": "5d56594df913eb9c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/app/scripts/pin-ipfs.mjs"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-bc57ff84fdb099c1", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in packages/app/src/components/shared/chat/useChatConnection.ts:196"}, "properties": {"repobilityId": "19782a2bd55e42eb", "scanner": "scanner-primary", "fingerprint": "bc57ff84fdb099c1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/app/src/components/shared/chat/useChatConnection.ts"}, "region": {"startLine": 196}}}]}, {"ruleId": "scanner-136caf272777c998", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/market-keeper/scripts/lib/groups.js:24"}, "properties": {"repobilityId": "376192ae6308dc15", "scanner": "scanner-primary", "fingerprint": "136caf272777c998", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/market-keeper/scripts/lib/groups.js"}, "region": {"startLine": 24}}}]}, {"ruleId": "scanner-bfc42ac315156f4a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in packages/market-keeper/src/labeler/index.html:653"}, "properties": {"repobilityId": "1d4c7a4ef799c551", "scanner": "scanner-primary", "fingerprint": "bfc42ac315156f4a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/market-keeper/src/labeler/index.html"}, "region": {"startLine": 653}}}]}, {"ruleId": "scanner-71c4bbafd1fa47c5", "level": "error", "message": {"text": "GitHub Action tracks a moving branch"}, "properties": {"repobilityId": "daacaf422b21f380", "scanner": "scanner-primary", "fingerprint": "71c4bbafd1fa47c5", "layer": "cicd", "severity": "high", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/app/.github/workflows/update-license.yml"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-cb639d9a10a47b23", "level": "note", "message": {"text": "package.json defines install-time lifecycle scripts"}, "properties": {"repobilityId": "b86179956da3a4a8", "scanner": "scanner-primary", "fingerprint": "cb639d9a10a47b23", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dde24f6d83466d4c", "level": "note", "message": {"text": "package.json defines install-time lifecycle scripts"}, "properties": {"repobilityId": "b08bb93492ff11a2", "scanner": "scanner-primary", "fingerprint": "dde24f6d83466d4c", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/app/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ebb27852500cdd10", "level": "note", "message": {"text": "package.json defines install-time lifecycle scripts"}, "properties": {"repobilityId": "db6c8def521924d1", "scanner": "scanner-primary", "fingerprint": "ebb27852500cdd10", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/sdk/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-12d44c6c852cd257", "level": "note", "message": {"text": "Very large file: packages/api/src/routes/conditions.ts (1627 lines)"}, "properties": {"repobilityId": "c136d26584af14ac", "scanner": "scanner-primary", "fingerprint": "12d44c6c852cd257", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9925de0ad628a207", "level": "note", "message": {"text": "Very large file: packages/api/src/routes/conditions.test.ts (1887 lines)"}, "properties": {"repobilityId": "889e2660b7bf37a8", "scanner": "scanner-primary", "fingerprint": "9925de0ad628a207", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fd1e57cc7f029452", "level": "note", "message": {"text": "Very large file: packages/api/src/workers/indexers/__tests__/predictionMarketEscrowIndexer.test.ts (1483 lines)"}, "properties": {"repobilityId": "be18cb1879039890", "scanner": "scanner-primary", "fingerprint": "fd1e57cc7f029452", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-05cdee330cacd10a", "level": "note", "message": {"text": "Very large file: packages/app/src/lib/session/sessionKeyManager.ts (1540 lines)"}, "properties": {"repobilityId": "fb0c31a7047f1551", "scanner": "scanner-primary", "fingerprint": "05cdee330cacd10a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-35aec99349c86f13", "level": "note", "message": {"text": "Very large file: packages/protocol/src/scripts/deploy/deploy.sh (1556 lines)"}, "properties": {"repobilityId": "b84888e4c13a133d", "scanner": "scanner-primary", "fingerprint": "35aec99349c86f13", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-189aac939f98bfbe", "level": "note", "message": {"text": "Very large file: packages/sdk/types/graphql.ts (2442 lines)"}, "properties": {"repobilityId": "1e8fdb4503061723", "scanner": "scanner-primary", "fingerprint": "189aac939f98bfbe", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0983bbe4b9cab701", "level": "note", "message": {"text": "Very large file: packages/sdk/types/graphql.v2.ts (2105 lines)"}, "properties": {"repobilityId": "cd554ebe4e9e1269", "scanner": "scanner-primary", "fingerprint": "0983bbe4b9cab701", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6343e109294e89fb", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/relayer/package.json"}, "properties": {"repobilityId": "90c5cd41e36ce1db", "scanner": "scanner-primary", "fingerprint": "6343e109294e89fb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/relayer/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0a0634ffe3eb1107", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/api/package.json"}, "properties": {"repobilityId": "61aa8b13d545e157", "scanner": "scanner-primary", "fingerprint": "0a0634ffe3eb1107", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-68e2735c194d3d3d", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/docs/package.json"}, "properties": {"repobilityId": "fa8c9ad49b85b9fb", "scanner": "scanner-primary", "fingerprint": "68e2735c194d3d3d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/docs/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-50218c90b43393bb", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/ui/package.json"}, "properties": {"repobilityId": "637e26a8c754e81d", "scanner": "scanner-primary", "fingerprint": "50218c90b43393bb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/ui/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4bf95f042f6cdfd9", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/app/package.json"}, "properties": {"repobilityId": "191a196ac66f8166", "scanner": "scanner-primary", "fingerprint": "4bf95f042f6cdfd9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/app/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a2c5c0bbcd68dc62", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/edge-cache/package.json"}, "properties": {"repobilityId": "5d0abc7f96e93a62", "scanner": "scanner-primary", "fingerprint": "a2c5c0bbcd68dc62", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/edge-cache/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1b3d0fa3fe79a342", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/protocol/package.json"}, "properties": {"repobilityId": "0939d10aef433444", "scanner": "scanner-primary", "fingerprint": "1b3d0fa3fe79a342", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/protocol/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5e1aca123da0088d", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/market-keeper/package.json"}, "properties": {"repobilityId": "4dc10ac694723afe", "scanner": "scanner-primary", "fingerprint": "5e1aca123da0088d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/market-keeper/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ae014485ab255591", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/sdk/package.json"}, "properties": {"repobilityId": "666cbe5826d686db", "scanner": "scanner-primary", "fingerprint": "ae014485ab255591", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/sdk/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "735fa45cefad22ef", "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": "51628707731331f6", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "00fa708f8fa433a8", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "a81d5883bfe7a9dd", "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": "183c97efe0526c8d", "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": "faa0acc7386de703", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-122f91b7f2906dc4", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/settings.json"}, "properties": {"repobilityId": "a2967269048b6a9d", "scanner": "scanner-primary", "fingerprint": "122f91b7f2906dc4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/settings.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e725d2ab884fbd49", "level": "note", "message": {"text": "Multiple root agent instruction files without precedence"}, "properties": {"repobilityId": "1953db6c89508d22", "scanner": "scanner-primary", "fingerprint": "e725d2ab884fbd49", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["agent-instructions", "governance"]}}, {"ruleId": "scanner-94f9afa79a2aa2e3", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/relayer/src/secondaryMarketHandlers.ts:233"}, "properties": {"repobilityId": "46c4e784a8ca1c40", "scanner": "scanner-primary", "fingerprint": "94f9afa79a2aa2e3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d31f701cf48589c3", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/relayer/src/handlers/escrow.ts:165"}, "properties": {"repobilityId": "263836370c08ab30", "scanner": "scanner-primary", "fingerprint": "d31f701cf48589c3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-381a61f7987eebcf", "level": "none", "message": {"text": "Commented-code block (9 lines) in packages/api/vitest.contract.config.ts:28"}, "properties": {"repobilityId": "065c919e0d20d62b", "scanner": "scanner-primary", "fingerprint": "381a61f7987eebcf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a62f6bbd41fb0093", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/api/test/contract/operations/openInterestByCategory.test.ts:13"}, "properties": {"repobilityId": "a5201711f4fa06ea", "scanner": "scanner-primary", "fingerprint": "a62f6bbd41fb0093", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a9386ae44dc658ab", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/api/test/contract/operations/openInterestByTimeToResolution.test.ts:14"}, "properties": {"repobilityId": "2a0c10212ea07c86", "scanner": "scanner-primary", "fingerprint": "a9386ae44dc658ab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4df9bc5caae0f620", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/api/test/contract/operations/questions.test.ts:6"}, "properties": {"repobilityId": "b4d2045b4cfbb245", "scanner": "scanner-primary", "fingerprint": "4df9bc5caae0f620", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-10e248d0f499266e", "level": "none", "message": {"text": "Commented-code block (9 lines) in packages/api/test/contract/parity/conditions.pair.test.ts:140"}, "properties": {"repobilityId": "a2501322f3521d23", "scanner": "scanner-primary", "fingerprint": "10e248d0f499266e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ae8e0920d72fb0a6", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in packages/api/test/contract/parity/predictions.pair.test.ts:29"}, "properties": {"repobilityId": "bfe02fb57c817f12", "scanner": "scanner-primary", "fingerprint": "ae8e0920d72fb0a6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-625bcdf7a81994b8", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/api/test/contract/parity/questions.pair.test.ts:596"}, "properties": {"repobilityId": "63f9673aff07fcd0", "scanner": "scanner-primary", "fingerprint": "625bcdf7a81994b8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-88e1ac4e47f8c25c", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in packages/api/test/contract/parity/positions.pair.test.ts:84"}, "properties": {"repobilityId": "bce59f6886c631e8", "scanner": "scanner-primary", "fingerprint": "88e1ac4e47f8c25c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b5c4ac8509a7486c", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/api/test/contract/parity/positions.pair.test.ts:145"}, "properties": {"repobilityId": "9c998f546710a70f", "scanner": "scanner-primary", "fingerprint": "b5c4ac8509a7486c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-36704d8c674c81c6", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in packages/api/test/contract/parity/accountActivity.pair.test.ts:32"}, "properties": {"repobilityId": "e103c9dc0a114656", "scanner": "scanner-primary", "fingerprint": "36704d8c674c81c6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-70ca9c54086957da", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/api/test/contract/parity/accountActivity.pair.test.ts:363"}, "properties": {"repobilityId": "ddb3ea7e2ec835ea", "scanner": "scanner-primary", "fingerprint": "70ca9c54086957da", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bd3d0ea2d49d82ab", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in packages/api/test/contract/parity/pickConfigsByTokens.pair.test.ts:46"}, "properties": {"repobilityId": "591a44ddfa1ece68", "scanner": "scanner-primary", "fingerprint": "bd3d0ea2d49d82ab", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9578c78943d609f3", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in packages/api/scripts/recoverMissingPredictions.ts:70"}, "properties": {"repobilityId": "3a1c62c2afc5cc86", "scanner": "scanner-primary", "fingerprint": "9578c78943d609f3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3f5ba88fae14a149", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/api/scripts/recoverMissingPredictions.ts:63"}, "properties": {"repobilityId": "1f15a3e9da5ef2b8", "scanner": "scanner-primary", "fingerprint": "3f5ba88fae14a149", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6271d3165f8c602b", "level": "none", "message": {"text": "Commented-code block (10 lines) in packages/api/scripts/inspectConditionGroupEventCollisions.ts:83"}, "properties": {"repobilityId": "962285b228eefc0f", "scanner": "scanner-primary", "fingerprint": "6271d3165f8c602b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a38092166f46afd2", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/api/scripts/snapshotTestDb.ts:32"}, "properties": {"repobilityId": "f8ee5eda0effca6d", "scanner": "scanner-primary", "fingerprint": "a38092166f46afd2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db0a0d2ea2c455d1", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/api/scripts/backfillConditionGroupEvent.ts:63"}, "properties": {"repobilityId": "5709222d02dd8052", "scanner": "scanner-primary", "fingerprint": "db0a0d2ea2c455d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-961493c8e60e0fd4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/api/scripts/backfillConditionGroupEvent.ts:185"}, "properties": {"repobilityId": "795ced07d298d637", "scanner": "scanner-primary", "fingerprint": "961493c8e60e0fd4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cb5a6f1a12c9ee85", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/api/scripts/backfillConditionGroupBaskets.ts:115"}, "properties": {"repobilityId": "2a7c936cca24bf18", "scanner": "scanner-primary", "fingerprint": "cb5a6f1a12c9ee85", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-640875058dafbc6d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/api/scripts/backfillConditionGroupBaskets.ts:77"}, "properties": {"repobilityId": "75d632dedf96517b", "scanner": "scanner-primary", "fingerprint": "640875058dafbc6d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ddcd6434f35d3c22", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/api/scripts/mergeConditionGroupDuplicates.ts:100"}, "properties": {"repobilityId": "b5cc9e5a3e3ba892", "scanner": "scanner-primary", "fingerprint": "ddcd6434f35d3c22", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f463c9700993fe0", "level": "note", "message": {"text": "Legacy-named symbol `includeLegacy` in packages/api/scripts/scanLegacySessionKeyData.ts:24"}, "properties": {"repobilityId": "e60008126033b686", "scanner": "scanner-primary", "fingerprint": "0f463c9700993fe0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c3b9eb8a96dd2d72", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/api/src/scripts/fixResolverTypesOmit.cjs:26"}, "properties": {"repobilityId": "49f10dd5f85f4d74", "scanner": "scanner-primary", "fingerprint": "c3b9eb8a96dd2d72", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-16a2310680123349", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/api/src/scripts/compareProtocolStats.ts:27"}, "properties": {"repobilityId": "3f9951000d37d4fe", "scanner": "scanner-primary", "fingerprint": "16a2310680123349", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c55dfa70651104c9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/api/src/scripts/compareProtocolStats.ts:109"}, "properties": {"repobilityId": "1e99e42b8f2977f8", "scanner": "scanner-primary", "fingerprint": "c55dfa70651104c9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f19bca6dc0c02f30", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/api/src/lib/utils.ts:47"}, "properties": {"repobilityId": "639706884a9cfbf3", "scanner": "scanner-primary", "fingerprint": "f19bca6dc0c02f30", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-31bfd64db826d1ed", "level": "none", "message": {"text": "Commented-code block (11 lines) in packages/api/src/routes/conditions.ts:58"}, "properties": {"repobilityId": "5dac08decbacf067", "scanner": "scanner-primary", "fingerprint": "31bfd64db826d1ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf0f4990b8cd27ea", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/api/src/routes/conditionGroups.ts:297"}, "properties": {"repobilityId": "3a703a70538cad6c", "scanner": "scanner-primary", "fingerprint": "bf0f4990b8cd27ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dc34178e196b4982", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/api/src/routes/conditions.test.ts:891"}, "properties": {"repobilityId": "71c3de215647c9f9", "scanner": "scanner-primary", "fingerprint": "dc34178e196b4982", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-137a00886d120c61", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/api/src/routes/referrals.ts:388"}, "properties": {"repobilityId": "91c1d2d807da0f93", "scanner": "scanner-primary", "fingerprint": "137a00886d120c61", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f520ea6a841bdbfd", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/api/src/routes/helpers/conditionGroupIdentity.ts:136"}, "properties": {"repobilityId": "ef39cddab2fc7d66", "scanner": "scanner-primary", "fingerprint": "f520ea6a841bdbfd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7037a1bc7261f810", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in packages/api/src/workers/indexers/conditionSettledIndexer.ts:54"}, "properties": {"repobilityId": "a4a1a8202ee5ac70", "scanner": "scanner-primary", "fingerprint": "7037a1bc7261f810", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0fe8326a2ff52d1a", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in packages/api/src/workers/indexers/secondaryMarketIndexer.ts:38"}, "properties": {"repobilityId": "6a791732328fef11", "scanner": "scanner-primary", "fingerprint": "0fe8326a2ff52d1a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-c8c76670314d6bde", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in packages/api/src/workers/indexers/predictionMarketEscrowIndexer.ts:172"}, "properties": {"repobilityId": "59bd6f7fe9db8664", "scanner": "scanner-primary", "fingerprint": "c8c76670314d6bde", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-751031d533b43e35", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/api/src/workers/indexers/predictionMarketEscrowIndexer.ts:503"}, "properties": {"repobilityId": "5beec13045672022", "scanner": "scanner-primary", "fingerprint": "751031d533b43e35", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf969fc3661db063", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in packages/api/src/workers/indexers/positionTokenTransferIndexer.ts:47"}, "properties": {"repobilityId": "8894733654750103", "scanner": "scanner-primary", "fingerprint": "cf969fc3661db063", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e0267fb5b214e562", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/api/src/workers/indexers/positionTokenTransferIndexer.ts:302"}, "properties": {"repobilityId": "ac985d69f7ea6314", "scanner": "scanner-primary", "fingerprint": "e0267fb5b214e562", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-10c83bdcaf74de68", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/api/src/graphql/startApolloServer.ts:73"}, "properties": {"repobilityId": "663b86caa241bdbb", "scanner": "scanner-primary", "fingerprint": "10c83bdcaf74de68", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e59c84597ce29cca", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/api/src/graphql/v2/startApolloServer.ts:53"}, "properties": {"repobilityId": "02e112ff0126092f", "scanner": "scanner-primary", "fingerprint": "e59c84597ce29cca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f90e4507cb430f7", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in packages/api/src/graphql/v2/resolvers/Prediction.test.ts:100"}, "properties": {"repobilityId": "403d7e3c1026fb6e", "scanner": "scanner-primary", "fingerprint": "0f90e4507cb430f7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-282cc6aabde15b23", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/api/src/graphql/v2/resolvers/CollateralBalance.ts:49"}, "properties": {"repobilityId": "8a5fd39544d3aed1", "scanner": "scanner-primary", "fingerprint": "282cc6aabde15b23", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d5e42422ef20cd33", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/api/src/graphql/v2/resolvers/Account.ts:94"}, "properties": {"repobilityId": "c0a1e601fb59e573", "scanner": "scanner-primary", "fingerprint": "d5e42422ef20cd33", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d0865c27317a5815", "level": "note", "message": {"text": "Legacy-named symbol `0xp_old` in packages/api/src/graphql/v2/resolvers/Activity.test.ts:178"}, "properties": {"repobilityId": "c6d7bc34f1d50fe2", "scanner": "scanner-primary", "fingerprint": "d0865c27317a5815", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-dfa94fd341e4f456", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/api/src/graphql/v2/resolvers/Protocol.ts:46"}, "properties": {"repobilityId": "47e9598bd427ed8e", "scanner": "scanner-primary", "fingerprint": "dfa94fd341e4f456", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-275b1c0cc9dff6a6", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in packages/api/src/graphql/v2/resolvers/PickConfiguration.ts:43"}, "properties": {"repobilityId": "17aa3a558125fd42", "scanner": "scanner-primary", "fingerprint": "275b1c0cc9dff6a6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-86c723802f7686a6", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in packages/api/src/graphql/v2/resolvers/PickConfiguration.test.ts:93"}, "properties": {"repobilityId": "d175b005c2e0a6b3", "scanner": "scanner-primary", "fingerprint": "86c723802f7686a6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1f98faedbda5674a", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in packages/api/src/graphql/v2/resolvers/Prediction.ts:49"}, "properties": {"repobilityId": "ee22bd500700d989", "scanner": "scanner-primary", "fingerprint": "1f98faedbda5674a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-162b8347965f1240", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/api/src/graphql/v2/resolvers/ConditionGroup.ts:90"}, "properties": {"repobilityId": "5f414edeca7dfa95", "scanner": "scanner-primary", "fingerprint": "162b8347965f1240", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-77ddf9a9b658227f", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in packages/api/src/graphql/v2/resolvers/queries/position.test.ts:80"}, "properties": {"repobilityId": "0bc0466a6622b699", "scanner": "scanner-primary", "fingerprint": "77ddf9a9b658227f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-4d04219dc2655bbc", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/api/src/graphql/v2/resolvers/queries/position.test.ts:588"}, "properties": {"repobilityId": "d7e7afb3b0d7f0c2", "scanner": "scanner-primary", "fingerprint": "4d04219dc2655bbc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d0fad04744299bb5", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/api/src/graphql/v2/resolvers/queries/activity.ts:86"}, "properties": {"repobilityId": "0b388c45af1f50f2", "scanner": "scanner-primary", "fingerprint": "d0fad04744299bb5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0298090921c40b2e", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/api/src/graphql/v2/resolvers/queries/position.ts:353"}, "properties": {"repobilityId": "54e7cdaa1573b9d0", "scanner": "scanner-primary", "fingerprint": "0298090921c40b2e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e09d5771e09f5dde", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/api/src/graphql/v2/resolvers/queries/position.ts:21"}, "properties": {"repobilityId": "d08e0bfb2c8bec7e", "scanner": "scanner-primary", "fingerprint": "e09d5771e09f5dde", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-49ec8626c0be18aa", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in packages/api/src/graphql/sdl/resolvers/pickConfigHelpers.ts:41"}, "properties": {"repobilityId": "188e9592839d62ae", "scanner": "scanner-primary", "fingerprint": "49ec8626c0be18aa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1cb03edf4805dc9e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/api/src/graphql/sdl/resolvers/relationHelpers.ts:46"}, "properties": {"repobilityId": "281e7a9bc2cb9aad", "scanner": "scanner-primary", "fingerprint": "1cb03edf4805dc9e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-af76033042fc5432", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/api/src/graphql/sdl/resolvers/queries/referrals.test.ts:210"}, "properties": {"repobilityId": "d87b7cf3c5ca993c", "scanner": "scanner-primary", "fingerprint": "af76033042fc5432", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c7935313d2538da5", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/api/src/graphql/sdl/resolvers/queries/analytics.ts:74"}, "properties": {"repobilityId": "9321746ac7889094", "scanner": "scanner-primary", "fingerprint": "c7935313d2538da5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-35eaab4b473a0a48", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/api/src/graphql/sdl/resolvers/queries/questions.ts:379"}, "properties": {"repobilityId": "cf447e3d0305503d", "scanner": "scanner-primary", "fingerprint": "35eaab4b473a0a48", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-58bd061b79f1699e", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in packages/api/src/graphql/sdl/resolvers/queries/escrow.test.ts:76"}, "properties": {"repobilityId": "4bbb10007b64cb91", "scanner": "scanner-primary", "fingerprint": "58bd061b79f1699e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a7ad93c0f88136fa", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in packages/api/src/graphql/sdl/resolvers/queries/escrow.ts:60"}, "properties": {"repobilityId": "e4fd86b3e542424a", "scanner": "scanner-primary", "fingerprint": "a7ad93c0f88136fa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7c479c969f63698f", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/api/src/graphql/sdl/resolvers/queries/escrow.ts:380"}, "properties": {"repobilityId": "77f1f689d43a61cd", "scanner": "scanner-primary", "fingerprint": "7c479c969f63698f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c8254c9966c61bee", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/api/src/graphql/sdl/resolvers/queries/analytics.test.ts:70"}, "properties": {"repobilityId": "85ff2f3f8b66aafe", "scanner": "scanner-primary", "fingerprint": "c8254c9966c61bee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8b68013b0d4041db", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in packages/api/src/graphql/sdl/resolvers/queries/activity.ts:198"}, "properties": {"repobilityId": "2ba8494ae739f434", "scanner": "scanner-primary", "fingerprint": "8b68013b0d4041db", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-43ba6e288a6df8af", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/api/src/graphql/plugins/operationTimingPlugin.ts:91"}, "properties": {"repobilityId": "57807d8bb9de8879", "scanner": "scanner-primary", "fingerprint": "43ba6e288a6df8af", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-481f5426c24c2811", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/api/src/runtime/middleware.ts:223"}, "properties": {"repobilityId": "cfda83eea05792fe", "scanner": "scanner-primary", "fingerprint": "481f5426c24c2811", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6b5ea03fc407a1ea", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/api/src/services/timeSeriesQueries.pnl.integration.test.ts:109"}, "properties": {"repobilityId": "78091a65e0c28292", "scanner": "scanner-primary", "fingerprint": "6b5ea03fc407a1ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1631fc783a4b6963", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/api/src/services/timeSeriesQueries.test.ts:295"}, "properties": {"repobilityId": "106ae8e3644cb212", "scanner": "scanner-primary", "fingerprint": "1631fc783a4b6963", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9cb212d2108fef5d", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/api/src/services/protocolStats/vaultAggregator.test.ts:79"}, "properties": {"repobilityId": "b86cfefebc8dbfbb", "scanner": "scanner-primary", "fingerprint": "9cb212d2108fef5d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f38839b4e788e50", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/api/src/services/protocolStats/snapshots.ts:203"}, "properties": {"repobilityId": "8422f7f6ae179cd3", "scanner": "scanner-primary", "fingerprint": "1f38839b4e788e50", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1913bc3f4d56ed2", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/api/src/services/protocolStats/snapshots.test.ts:284"}, "properties": {"repobilityId": "a824ea7f3d00f63a", "scanner": "scanner-primary", "fingerprint": "e1913bc3f4d56ed2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2e971a62cb6a5c76", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/api/src/services/protocolStats/vaultPnL.ts:38"}, "properties": {"repobilityId": "632888146821c4e3", "scanner": "scanner-primary", "fingerprint": "2e971a62cb6a5c76", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca3bd1f1d11cb2f9", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/api/src/services/protocolStats/vaultUnredeemed.ts:98"}, "properties": {"repobilityId": "6d325d59f66961f3", "scanner": "scanner-primary", "fingerprint": "ca3bd1f1d11cb2f9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-99bfeb0c167cc224", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/api/src/services/protocolStats/vaultAggregator.ts:54"}, "properties": {"repobilityId": "64beb2e8385411d7", "scanner": "scanner-primary", "fingerprint": "99bfeb0c167cc224", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-263e413a5e13f76c", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/api/src/services/protocolStats/vaultTvl.ts:297"}, "properties": {"repobilityId": "fce7f8ac6ea7840a", "scanner": "scanner-primary", "fingerprint": "263e413a5e13f76c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c4f43098dcb92062", "level": "none", "message": {"text": "Commented-code block (10 lines) in packages/api/src/core/server.ts:37"}, "properties": {"repobilityId": "03ed95682e04a369", "scanner": "scanner-primary", "fingerprint": "c4f43098dcb92062", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-569924a05589334c", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/docs/scripts/generate-auction-types.mjs:46"}, "properties": {"repobilityId": "8c428b0ffd192283", "scanner": "scanner-primary", "fingerprint": "569924a05589334c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e494e94c1cb148cd", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/ui/components/CreatePythPredictionForm.tsx:101"}, "properties": {"repobilityId": "505dac6b54028d21", "scanner": "scanner-primary", "fingerprint": "e494e94c1cb148cd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8804257ca9fd2409", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/app/src/components/layout/BungeeBridgePanel.tsx:561"}, "properties": {"repobilityId": "c5ee464277622953", "scanner": "scanner-primary", "fingerprint": "8804257ca9fd2409", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-92e00506a3ba2396", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in packages/app/src/components/positions/PositionsTable.tsx:332"}, "properties": {"repobilityId": "6cff2f6b92bd511c", "scanner": "scanner-primary", "fingerprint": "92e00506a3ba2396", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d111628f79ae3087", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in packages/app/src/components/positions/__tests__/PositionDialog.test.tsx:92"}, "properties": {"repobilityId": "6f176519368adbd8", "scanner": "scanner-primary", "fingerprint": "d111628f79ae3087", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8a508eb30000f3d4", "level": "note", "message": {"text": "Legacy-named symbol `addressOverrideDeprecated` in packages/app/src/components/shared/chat/useChatConnection.ts:57"}, "properties": {"repobilityId": "a524b713916809f4", "scanner": "scanner-primary", "fingerprint": "8a508eb30000f3d4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-82d782284ae12e22", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/app/src/components/terminal/ApprovalDialog.tsx:297"}, "properties": {"repobilityId": "a45ce8a50c4361e2", "scanner": "scanner-primary", "fingerprint": "82d782284ae12e22", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-16f69317baeb75bf", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/app/src/components/terminal/AutoBid/utils.ts:231"}, "properties": {"repobilityId": "3c00626fd8f5b1d8", "scanner": "scanner-primary", "fingerprint": "16f69317baeb75bf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7768cec4b0ebfc7c", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/app/src/components/markets/CreatePositionForm/PositionForm.tsx:130"}, "properties": {"repobilityId": "cd01c0911aff5380", "scanner": "scanner-primary", "fingerprint": "7768cec4b0ebfc7c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-92a2c7f723782579", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/app/src/components/markets/CreatePositionForm/__tests__/PositionForm.test.tsx:1035"}, "properties": {"repobilityId": "6bac23b18e88df91", "scanner": "scanner-primary", "fingerprint": "92a2c7f723782579", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f2f41095eee8a7d3", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/app/src/components/markets/pages/QuestionPageContent.tsx:99"}, "properties": {"repobilityId": "03e278ce29df4661", "scanner": "scanner-primary", "fingerprint": "f2f41095eee8a7d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b133ad4a0802081f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/components/profile/ForecastsTable.tsx:235"}, "properties": {"repobilityId": "43853dae25611c64", "scanner": "scanner-primary", "fingerprint": "b133ad4a0802081f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3e8fb8eb0d3a2d94", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/app/src/components/vaults/vaultAnchors.ts:8"}, "properties": {"repobilityId": "6b9f3be6cddef75f", "scanner": "scanner-primary", "fingerprint": "3e8fb8eb0d3a2d94", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-28a4d3e13a409fe7", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/app/src/components/vaults/VaultPnlChart.tsx:202"}, "properties": {"repobilityId": "069a66c43d96466f", "scanner": "scanner-primary", "fingerprint": "28a4d3e13a409fe7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4e082aa5d9f2a081", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/app/src/components/vaults/pages/VaultsPageContent.tsx:671"}, "properties": {"repobilityId": "e070272d047bd5bc", "scanner": "scanner-primary", "fingerprint": "4e082aa5d9f2a081", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b32ac3a03cbb3e5f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/app/questions/[...parts]/page.tsx:43"}, "properties": {"repobilityId": "f923b745c2892b37", "scanner": "scanner-primary", "fingerprint": "b32ac3a03cbb3e5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-831352359e092313", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/app/og/_shared.tsx:43"}, "properties": {"repobilityId": "d5295eec3b565c98", "scanner": "scanner-primary", "fingerprint": "831352359e092313", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ef3d1b866bec3d82", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/app/og/_profile-helpers.ts:79"}, "properties": {"repobilityId": "3d309eb2f7e23b2b", "scanner": "scanner-primary", "fingerprint": "ef3d1b866bec3d82", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9ba3fe6ac67dda8f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/app/og/question/route.tsx:186"}, "properties": {"repobilityId": "26a98c5dcf563a25", "scanner": "scanner-primary", "fingerprint": "9ba3fe6ac67dda8f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2d8d4e2d0b63ce60", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/app/og/prediction/route.tsx:63"}, "properties": {"repobilityId": "f8be85e41811d542", "scanner": "scanner-primary", "fingerprint": "2d8d4e2d0b63ce60", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-384f348dc5f7c5e7", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in packages/app/src/lib/adapters/position.test.ts:39"}, "properties": {"repobilityId": "14c3a11272acb537", "scanner": "scanner-primary", "fingerprint": "384f348dc5f7c5e7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-d013db175138ecfe", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in packages/app/src/lib/adapters/pickConfig.ts:63"}, "properties": {"repobilityId": "8c130cf26bbd24e5", "scanner": "scanner-primary", "fingerprint": "d013db175138ecfe", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2c9a6e6dd5e27610", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in packages/app/src/lib/adapters/pickConfig.test.ts:49"}, "properties": {"repobilityId": "b079e5d865667987", "scanner": "scanner-primary", "fingerprint": "2c9a6e6dd5e27610", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2a0bfc70dbbc8d4f", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/app/src/lib/ws/AuctionWsClient.ts:83"}, "properties": {"repobilityId": "198232366e4c8198", "scanner": "scanner-primary", "fingerprint": "2a0bfc70dbbc8d4f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-abbb195e3763b9f4", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/app/src/lib/auction/useAuctionStart.ts:212"}, "properties": {"repobilityId": "ee0b4b6cccfa1bc9", "scanner": "scanner-primary", "fingerprint": "abbb195e3763b9f4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96f6bca64c00e68a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/lib/pyth/usePythFeedLabel.ts:97"}, "properties": {"repobilityId": "0dd8006b020a82f2", "scanner": "scanner-primary", "fingerprint": "96f6bca64c00e68a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0ee40eb7bd7e7f81", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/app/src/lib/bungee/api.ts:8"}, "properties": {"repobilityId": "2f23d1b4a7c77d75", "scanner": "scanner-primary", "fingerprint": "0ee40eb7bd7e7f81", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f647227861e7766", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/app/src/lib/bungee/bridgeTracker.ts:36"}, "properties": {"repobilityId": "f97b217d2690e822", "scanner": "scanner-primary", "fingerprint": "0f647227861e7766", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b23902acf025167f", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/app/src/lib/bungee/__tests__/useBridgeTracker.test.tsx:16"}, "properties": {"repobilityId": "9ae37f2c0c1090db", "scanner": "scanner-primary", "fingerprint": "b23902acf025167f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a39b8c765450af6f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/lib/context/SapienceProvider.tsx:53"}, "properties": {"repobilityId": "9c465da3fbc5f8b0", "scanner": "scanner-primary", "fingerprint": "a39b8c765450af6f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fad70da1f62be53a", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/app/src/lib/session/sessionKeyManager.ts:936"}, "properties": {"repobilityId": "7986cd8c8e7a7fc6", "scanner": "scanner-primary", "fingerprint": "fad70da1f62be53a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-361410a1d5575523", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/app/src/lib/ens/avatar.ts:76"}, "properties": {"repobilityId": "611029db9f9d7f25", "scanner": "scanner-primary", "fingerprint": "361410a1d5575523", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6728378eb5957f06", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/lib/ens/avatar.test.ts:89"}, "properties": {"repobilityId": "ebfedc9b7d0cd31f", "scanner": "scanner-primary", "fingerprint": "6728378eb5957f06", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-70087e41e8ed6b4f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/hooks/referrals/useReferrals.ts:32"}, "properties": {"repobilityId": "9ebf7f9c10c5c75d", "scanner": "scanner-primary", "fingerprint": "70087e41e8ed6b4f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-dc83fe49c98db77c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/hooks/referrals/useAdminReferralCodes.ts:111"}, "properties": {"repobilityId": "4f26b89535bac614", "scanner": "scanner-primary", "fingerprint": "dc83fe49c98db77c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1f71fbaedc92752a", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/app/src/hooks/secondary/useSecondaryAccept.ts:89"}, "properties": {"repobilityId": "a113b82fe51f0719", "scanner": "scanner-primary", "fingerprint": "1f71fbaedc92752a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-50f4d1a3d5b799cd", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/app/src/hooks/auction/useValidatedBids.ts:76"}, "properties": {"repobilityId": "7b3d1a117b3f8ca8", "scanner": "scanner-primary", "fingerprint": "50f4d1a3d5b799cd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fd3cf6dfdfe234d6", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/app/src/hooks/auction/__tests__/useValidatedBids.test.ts:376"}, "properties": {"repobilityId": "7ee02980eaa04d3a", "scanner": "scanner-primary", "fingerprint": "fd3cf6dfdfe234d6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5e8c6560a0bf7c46", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/app/src/hooks/graphql/useAccountActivity.ts:39"}, "properties": {"repobilityId": "f83d6562cbbe106d", "scanner": "scanner-primary", "fingerprint": "5e8c6560a0bf7c46", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e19d8719ac9fd81b", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in packages/app/src/hooks/graphql/usePositions.ts:47"}, "properties": {"repobilityId": "e11aa8a0a045249d", "scanner": "scanner-primary", "fingerprint": "e19d8719ac9fd81b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e650874445ac099d", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/app/src/hooks/graphql/usePickConfigsByTokens.ts:14"}, "properties": {"repobilityId": "7010d08d118c2789", "scanner": "scanner-primary", "fingerprint": "e650874445ac099d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c9d6802f6d66b02", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in packages/app/src/hooks/graphql/__tests__/useAccountActivity.test.ts:50"}, "properties": {"repobilityId": "f71c9e1cef2d57e2", "scanner": "scanner-primary", "fingerprint": "7c9d6802f6d66b02", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a15833e40f458782", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in packages/app/src/hooks/graphql/__tests__/usePositions.predictions.test.ts:55"}, "properties": {"repobilityId": "1c6fdd2ed82be305", "scanner": "scanner-primary", "fingerprint": "a15833e40f458782", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b643d24d713c46d0", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in packages/app/src/hooks/graphql/__tests__/usePickConfigsByTokens.test.ts:48"}, "properties": {"repobilityId": "6229609ac02bca98", "scanner": "scanner-primary", "fingerprint": "b643d24d713c46d0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-9d2c6abea1c48f2b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/app/src/hooks/markets/useRequestMarket.ts:41"}, "properties": {"repobilityId": "9756eb83707c057a", "scanner": "scanner-primary", "fingerprint": "9d2c6abea1c48f2b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b39537d7dac7026e", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/app/src/hooks/blockchain/useSapienceWriteContract.ts:396"}, "properties": {"repobilityId": "d1e948ef4574a21d", "scanner": "scanner-primary", "fingerprint": "b39537d7dac7026e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-910f51607ba42dae", "level": "none", "message": {"text": "Commented-code block (11 lines) in packages/app/src/hooks/forms/useSubmitPosition.ts:291"}, "properties": {"repobilityId": "76a78956e6171a25", "scanner": "scanner-primary", "fingerprint": "910f51607ba42dae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d5149dd9e0acb1fd", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/edge-cache/src/index.ts:64"}, "properties": {"repobilityId": "73f89581e48e75f1", "scanner": "scanner-primary", "fingerprint": "d5149dd9e0acb1fd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4f428d76032db422", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/edge-cache/src/index.ts:43"}, "properties": {"repobilityId": "d07dadcf9ded9520", "scanner": "scanner-primary", "fingerprint": "4f428d76032db422", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c8784baedeea97ee", "level": "note", "message": {"text": "Legacy-named symbol `normalizeLegacy` in packages/market-keeper/src/resolver.ts:17"}, "properties": {"repobilityId": "3606819c93a78731", "scanner": "scanner-primary", "fingerprint": "c8784baedeea97ee", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2cf95f75102ed3ea", "level": "none", "message": {"text": "Commented-code block (9 lines) in packages/market-keeper/src/constants.ts:57"}, "properties": {"repobilityId": "c773ebb7857d019a", "scanner": "scanner-primary", "fingerprint": "2cf95f75102ed3ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1d3f335b219a52ad", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/market-keeper/src/__tests__/from-event-slugs.test.ts:21"}, "properties": {"repobilityId": "68c8bb6693b795f0", "scanner": "scanner-primary", "fingerprint": "1d3f335b219a52ad", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ce74ee3d64d17a7a", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/market-keeper/src/__tests__/cleanup-fetch.test.ts:156"}, "properties": {"repobilityId": "653d183b3b8acf88", "scanner": "scanner-primary", "fingerprint": "ce74ee3d64d17a7a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3379ff37e052a5dd", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/market-keeper/src/__tests__/metadata-updates.test.ts:221"}, "properties": {"repobilityId": "2f362fba0427a3f5", "scanner": "scanner-primary", "fingerprint": "3379ff37e052a5dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41346ecb4b53dccc", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/market-keeper/src/generate/transform.ts:214"}, "properties": {"repobilityId": "33c69ace5509abd0", "scanner": "scanner-primary", "fingerprint": "41346ecb4b53dccc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9c689c2ad15c918b", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/market-keeper/src/generate/grouping.ts:347"}, "properties": {"repobilityId": "8b20d8056eb08962", "scanner": "scanner-primary", "fingerprint": "9c689c2ad15c918b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b9523b07f8d13f3e", "level": "none", "message": {"text": "Commented-code block (11 lines) in packages/market-keeper/src/generate/tags.ts:46"}, "properties": {"repobilityId": "2c743223d3e64f93", "scanner": "scanner-primary", "fingerprint": "b9523b07f8d13f3e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-36004983ac2a0f8d", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/market-keeper/src/generate/templated.ts:18"}, "properties": {"repobilityId": "7869a8ecbc74e9fe", "scanner": "scanner-primary", "fingerprint": "36004983ac2a0f8d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-28e6fcf3e743d741", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/market-keeper/src/generate/endtime.ts:375"}, "properties": {"repobilityId": "bd37110452e46553", "scanner": "scanner-primary", "fingerprint": "28e6fcf3e743d741", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ff6f83e9ebbe9aa", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/market-keeper/src/generate/extractors/index.ts:21"}, "properties": {"repobilityId": "fa399ff894eed8a3", "scanner": "scanner-primary", "fingerprint": "1ff6f83e9ebbe9aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-04e4ac45a9d6fa14", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/market-keeper/src/generate/pipeline/filters/exclude-existing.ts:95"}, "properties": {"repobilityId": "c0b88daf7cc48028", "scanner": "scanner-primary", "fingerprint": "04e4ac45a9d6fa14", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4df8e01c25e87f4f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/market-keeper/src/labeler/validate-game.ts:22"}, "properties": {"repobilityId": "cb26eebacde8a7f1", "scanner": "scanner-primary", "fingerprint": "4df8e01c25e87f4f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9e7fff33d794018b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/market-keeper/src/labeler/fetch-weather.ts:44"}, "properties": {"repobilityId": "221d1fac4c7c6552", "scanner": "scanner-primary", "fingerprint": "9e7fff33d794018b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2c808dbd83c55600", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/market-keeper/src/labeler/fetch-corpus.ts:112"}, "properties": {"repobilityId": "193d746656d1e9ee", "scanner": "scanner-primary", "fingerprint": "2c808dbd83c55600", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3bd520dd3693aefb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/market-keeper/src/labeler/fetch-corpus.ts:70"}, "properties": {"repobilityId": "b8cad7a84d5aa910", "scanner": "scanner-primary", "fingerprint": "3bd520dd3693aefb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-aed2ee0e2d85e752", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/market-keeper/src/labeler/server.ts:48"}, "properties": {"repobilityId": "72cc3d5bae734386", "scanner": "scanner-primary", "fingerprint": "aed2ee0e2d85e752", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-586b1962c33d4a07", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/market-keeper/src/labeler/fetch-sports.ts:48"}, "properties": {"repobilityId": "84b0cacb96167c06", "scanner": "scanner-primary", "fingerprint": "586b1962c33d4a07", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b09849329742dba1", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/market-keeper/src/refresh-metadata/index.ts:213"}, "properties": {"repobilityId": "84fe3d7d587b9173", "scanner": "scanner-primary", "fingerprint": "b09849329742dba1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8eb622d2c903d185", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/market-keeper/src/refresh-metadata/fetch.ts:25"}, "properties": {"repobilityId": "c4d4a006ab5ffbb4", "scanner": "scanner-primary", "fingerprint": "8eb622d2c903d185", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a8d7b8125dd6d2cc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/market-keeper/src/refresh-metadata/fetch.ts:183"}, "properties": {"repobilityId": "394c72e41c7fd4d7", "scanner": "scanner-primary", "fingerprint": "a8d7b8125dd6d2cc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-458c6c81cf29c11d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/market-keeper/src/refresh-volume/index.ts:446"}, "properties": {"repobilityId": "c1974da030a6953a", "scanner": "scanner-primary", "fingerprint": "458c6c81cf29c11d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ea12f7d35b6f15d9", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/market-keeper/src/llm/openrouter.ts:81"}, "properties": {"repobilityId": "95465dba693caadb", "scanner": "scanner-primary", "fingerprint": "ea12f7d35b6f15d9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3d7271e6e87ac8d8", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/market-keeper/src/llm/enrichment.ts:395"}, "properties": {"repobilityId": "87f5b46a4e0a41b2", "scanner": "scanner-primary", "fingerprint": "3d7271e6e87ac8d8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cfb534bf009d5491", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in packages/sdk/types/graphql.ts:1450"}, "properties": {"repobilityId": "0c628816470a2b14", "scanner": "scanner-primary", "fingerprint": "cfb534bf009d5491", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-70e7c14bd26f8d09", "level": "note", "message": {"text": "Legacy-named symbol `isLegacy` in packages/sdk/types/graphql.v2.ts:893"}, "properties": {"repobilityId": "22d088b28a224ebe", "scanner": "scanner-primary", "fingerprint": "70e7c14bd26f8d09", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5f67aa6a970d3f4a", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/sdk/scripts/settlePythMarkets.ts:436"}, "properties": {"repobilityId": "2f4ce76dfbf77f66", "scanner": "scanner-primary", "fingerprint": "5f67aa6a970d3f4a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5c1aa02ab14c61ef", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sdk/scripts/settlePythMarkets.ts:156"}, "properties": {"repobilityId": "2f35d81ecc998008", "scanner": "scanner-primary", "fingerprint": "5c1aa02ab14c61ef", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f6dea28236d88ab6", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/sdk/auction/escrowEncoding.ts:11"}, "properties": {"repobilityId": "7bb879cf9a8c6cc6", "scanner": "scanner-primary", "fingerprint": "f6dea28236d88ab6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a2b324befa43127", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/sdk/auction/escrowSigning.test.ts:1015"}, "properties": {"repobilityId": "b5441dd2912a2d91", "scanner": "scanner-primary", "fingerprint": "9a2b324befa43127", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c5ced8174a467135", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/sdk/auction/validation.ts:584"}, "properties": {"repobilityId": "8394321d977d7f11", "scanner": "scanner-primary", "fingerprint": "c5ced8174a467135", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f315bee67ade3f9d", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/sdk/session/smartAccount.ts:12"}, "properties": {"repobilityId": "a7d0f8633ed65fa8", "scanner": "scanner-primary", "fingerprint": "f315bee67ade3f9d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2b7dee7761f8f5a4", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/sdk/queries/protocol.ts:82"}, "properties": {"repobilityId": "e08f5dfe3977902b", "scanner": "scanner-primary", "fingerprint": "2b7dee7761f8f5a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-63bf8d51d082705b", "level": "none", "message": {"text": "Commented-code block (5 lines) in starters/market-maker/src/strategies/PolymarketStrategy.ts:11"}, "properties": {"repobilityId": "83f1b48b66a27fce", "scanner": "scanner-primary", "fingerprint": "63bf8d51d082705b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6be317e69fe63a96", "level": "none", "message": {"text": "Commented-code block (5 lines) in starters/market-maker/src/strategies/PythStrategy.ts:11"}, "properties": {"repobilityId": "2ad3537a3d1abeb3", "scanner": "scanner-primary", "fingerprint": "6be317e69fe63a96", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7e2f6cf0beed6673", "level": "none", "message": {"text": "Commented-code block (5 lines) in starters/market-maker/src/strategies/types.ts:9"}, "properties": {"repobilityId": "cba26381b908fc29", "scanner": "scanner-primary", "fingerprint": "7e2f6cf0beed6673", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6bc14df28c9088c4", "level": "note", "message": {"text": "106 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "b7fff702834928d7", "scanner": "scanner-primary", "fingerprint": "6bc14df28c9088c4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-11cbdd754f3654f0", "level": "error", "message": {"text": "Dangling fetch: GET https://history.pyth-lazer.dourolabs.app/history/v1/symbols (packages/ui/components/CreatePythPredictionForm.tsx:101)"}, "properties": {"repobilityId": "461840fb16de0f98", "scanner": "scanner-primary", "fingerprint": "11cbdd754f3654f0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5523594a2b2eb274", "level": "error", "message": {"text": "Dangling fetch: GET https://ipinfo.io/${ip}?token=${token} (packages/app/src/app/api/permit/route.ts:34)"}, "properties": {"repobilityId": "bd7672a70d2a5149", "scanner": "scanner-primary", "fingerprint": "5523594a2b2eb274", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-520711ace7408185", "level": "error", "message": {"text": "Dangling fetch: GET https://history.pyth-lazer.dourolabs.app/history/v1/symbols (packages/app/src/lib/pyth/usePythFeedLabel.ts:97)"}, "properties": {"repobilityId": "1119b43df562e234", "scanner": "scanner-primary", "fingerprint": "520711ace7408185", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-80a7a68fb83309e5", "level": "error", "message": {"text": "Dangling fetch: GET /api/permit (packages/app/src/lib/context/SapienceProvider.tsx:53)"}, "properties": {"repobilityId": "f1e65520a2474453", "scanner": "scanner-primary", "fingerprint": "80a7a68fb83309e5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-7a009b1a56794f45", "level": "note", "message": {"text": "Unused endpoint: POST /"}, "properties": {"repobilityId": "956dd81827b585ce", "scanner": "scanner-primary", "fingerprint": "7a009b1a56794f45", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-886dc645d7f923ac", "level": "note", "message": {"text": "Unused endpoint: POST /protocol-stats"}, "properties": {"repobilityId": "b18cf58189dda277", "scanner": "scanner-primary", "fingerprint": "886dc645d7f923ac", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6e633f7e4f9054e1", "level": "note", "message": {"text": "Unused endpoint: POST /batch-create"}, "properties": {"repobilityId": "c5c93dd5c801f3c2", "scanner": "scanner-primary", "fingerprint": "6e633f7e4f9054e1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-40fb5ffc1be9156d", "level": "note", "message": {"text": "Unused endpoint: PUT /prices"}, "properties": {"repobilityId": "238c90c59c19de59", "scanner": "scanner-primary", "fingerprint": "40fb5ffc1be9156d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ff5819325fe8787e", "level": "note", "message": {"text": "Unused endpoint: PUT /volume"}, "properties": {"repobilityId": "e63afe44710dedd9", "scanner": "scanner-primary", "fingerprint": "ff5819325fe8787e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fc655a521f0d69bb", "level": "note", "message": {"text": "Unused endpoint: PUT /batch-metadata"}, "properties": {"repobilityId": "c580778ac69791fa", "scanner": "scanner-primary", "fingerprint": "fc655a521f0d69bb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-437aed0da20c380e", "level": "note", "message": {"text": "Unused endpoint: PUT /batch-private"}, "properties": {"repobilityId": "f41dc75e14df87c3", "scanner": "scanner-primary", "fingerprint": "437aed0da20c380e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8d5b2b188d08ca82", "level": "note", "message": {"text": "Unused endpoint: PUT /:id"}, "properties": {"repobilityId": "ae6e58b60c2f60c7", "scanner": "scanner-primary", "fingerprint": "8d5b2b188d08ca82", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-20539c96de5b1dcb", "level": "note", "message": {"text": "Unused endpoint: USE /tokenlist.json"}, "properties": {"repobilityId": "728114fb66866cec", "scanner": "scanner-primary", "fingerprint": "20539c96de5b1dcb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6dab68a5c0e9152f", "level": "note", "message": {"text": "Unused endpoint: GET /tokenlist.json"}, "properties": {"repobilityId": "198a541ab88226a2", "scanner": "scanner-primary", "fingerprint": "6dab68a5c0e9152f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f02a079c69b52f2d", "level": "note", "message": {"text": "Unused endpoint: USE /"}, "properties": {"repobilityId": "0e23e6036f63ac0a", "scanner": "scanner-primary", "fingerprint": "f02a079c69b52f2d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7780c2de636ff36b", "level": "note", "message": {"text": "Unused endpoint: USE /referrals"}, "properties": {"repobilityId": "f999fb25562a70fd", "scanner": "scanner-primary", "fingerprint": "7780c2de636ff36b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-75fdd6cf243cebd8", "level": "note", "message": {"text": "Unused endpoint: USE /market-requests"}, "properties": {"repobilityId": "de1f2629f3a584cc", "scanner": "scanner-primary", "fingerprint": "75fdd6cf243cebd8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0c12c8fb135496a7", "level": "note", "message": {"text": "Unused endpoint: USE /reindex"}, "properties": {"repobilityId": "390282318c3de2d1", "scanner": "scanner-primary", "fingerprint": "0c12c8fb135496a7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d8eb3b941b80bd30", "level": "note", "message": {"text": "Unused endpoint: USE /conditions"}, "properties": {"repobilityId": "bcfe6031354ced6b", "scanner": "scanner-primary", "fingerprint": "d8eb3b941b80bd30", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4609045c97a9dedf", "level": "note", "message": {"text": "Unused endpoint: USE /conditionGroups"}, "properties": {"repobilityId": "a6cd34c0f7789bc9", "scanner": "scanner-primary", "fingerprint": "4609045c97a9dedf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b2d8849fb6b1ac47", "level": "note", "message": {"text": "Unused endpoint: USE /admin"}, "properties": {"repobilityId": "37a462362e66dc42", "scanner": "scanner-primary", "fingerprint": "b2d8849fb6b1ac47", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5baa8971ebe192a1", "level": "note", "message": {"text": "Unused endpoint: GET /"}, "properties": {"repobilityId": "0d42ff8f2c39d321", "scanner": "scanner-primary", "fingerprint": "5baa8971ebe192a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6d127b1458a20984", "level": "note", "message": {"text": "Unused endpoint: PUT /:id/conditions"}, "properties": {"repobilityId": "efaff27e25fa9f2c", "scanner": "scanner-primary", "fingerprint": "6d127b1458a20984", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7a61c112b611f4bb", "level": "note", "message": {"text": "Unused endpoint: DELETE /:id"}, "properties": {"repobilityId": "4ef2004c3c94b8b5", "scanner": "scanner-primary", "fingerprint": "7a61c112b611f4bb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e9ca4e347c1cab3a", "level": "note", "message": {"text": "Unused endpoint: POST /code"}, "properties": {"repobilityId": "13ae84c80f995cb2", "scanner": "scanner-primary", "fingerprint": "e9ca4e347c1cab3a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e8cb30c99975a7d4", "level": "note", "message": {"text": "Unused endpoint: POST /claim"}, "properties": {"repobilityId": "aadbe6fe8019af98", "scanner": "scanner-primary", "fingerprint": "e8cb30c99975a7d4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6adad37b3113113c", "level": "note", "message": {"text": "Unused endpoint: GET /codes"}, "properties": {"repobilityId": "76a4352147073962", "scanner": "scanner-primary", "fingerprint": "6adad37b3113113c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e6de7d91616782d2", "level": "note", "message": {"text": "Unused endpoint: GET /codes/:id"}, "properties": {"repobilityId": "8f2396de24e22735", "scanner": "scanner-primary", "fingerprint": "e6de7d91616782d2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5e1dea2967ab372a", "level": "note", "message": {"text": "Unused endpoint: GET /users/:address"}, "properties": {"repobilityId": "b3078cde5fbf9cf1", "scanner": "scanner-primary", "fingerprint": "5e1dea2967ab372a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ec17f933859b5f24", "level": "note", "message": {"text": "Unused endpoint: POST /admin/codes"}, "properties": {"repobilityId": "4d8edabc946ebed6", "scanner": "scanner-primary", "fingerprint": "ec17f933859b5f24", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-31474accbb3b28c1", "level": "note", "message": {"text": "Unused endpoint: PUT /admin/codes/:id"}, "properties": {"repobilityId": "c9e5dfa9ff24b9a2", "scanner": "scanner-primary", "fingerprint": "31474accbb3b28c1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d5ba74737f29f736", "level": "note", "message": {"text": "Unused endpoint: DELETE /admin/codes/:id"}, "properties": {"repobilityId": "3c14a15a40fe6429", "scanner": "scanner-primary", "fingerprint": "d5ba74737f29f736", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-316f498f9851e2fa", "level": "note", "message": {"text": "Unused endpoint: USE /graphql"}, "properties": {"repobilityId": "287bc58104b9dd78", "scanner": "scanner-primary", "fingerprint": "316f498f9851e2fa", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0c2b529b9040923b", "level": "note", "message": {"text": "Unused endpoint: USE /v2/graphql"}, "properties": {"repobilityId": "8ee3bc572ff657ac", "scanner": "scanner-primary", "fingerprint": "0c2b529b9040923b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-831db93b66a2d57c", "level": "note", "message": {"text": "Unused endpoint: USE /auction"}, "properties": {"repobilityId": "f90675c73340e853", "scanner": "scanner-primary", "fingerprint": "831db93b66a2d57c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}