{"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": "foundry_unresolved_feedback", "name": "Foundry mined unresolved feedback: yasinjemal/TradeFeed", "shortDescription": {"text": "Foundry mined unresolved feedback: yasinjemal/TradeFeed"}, "fullDescription": {"text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: weak_supervision_needs_review\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#5\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#5\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yasinjemal/TradeFeed#5\nRepo: yasinjemal/TradeFeed\nIssue/PR number: 5\nGraph consistency label: weak_supervision_needs_review\nNodes: 40\nEdges: 88\nNode types: {'link_quality': 10, 'comment_chain': 7, 'commit': 6, 'comment': 5, 'pr_file': 4, 'pr_review': 2, 'thread': 1, "}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_blueprint_gap", "name": "Foundry mined blueprint gap alignment: yasinjemal/TradeFeed", "shortDescription": {"text": "Foundry mined blueprint gap alignment: yasinjemal/TradeFeed"}, "fullDescription": {"text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_high_confidence_link\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#6\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#6\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yasinjemal/TradeFeed#6\nRepo: yasinjemal/TradeFeed\nIssue/PR number: 6\nGraph consistency label: supported_by_high_confidence_link\nNodes: 21\nEdges: 35\nNode types: {'link_quality': 6, 'comment_chain': 3, 'comment': 2, 'commit': 2, 'thread': 1, 'repo': 1, 'pr_"}, "properties": {"scanner": "foundry_dataset", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_assumption_check", "name": "Foundry mined assumption checks: yasinjemal/TradeFeed", "shortDescription": {"text": "Foundry mined assumption checks: yasinjemal/TradeFeed"}, "fullDescription": {"text": "Comment chain pattern product: assumption_checks\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#7\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: yasinjemal/TradeFeed#7\nRepo: yasinjemal/TradeFeed\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 6\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {'docs_or_claims': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-25f1f3d5e7f5d91c\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarit"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "medium", "confidence": 0.62, "cwe": "", "owasp": ""}}, {"id": "foundry_test_ci_gap", "name": "Foundry mined test ci gap after feedback: yasinjemal/TradeFeed", "shortDescription": {"text": "Foundry mined test ci gap after feedback: yasinjemal/TradeFeed"}, "fullDescription": {"text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: supported_by_verification_signal\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#4\nEvidence:\nGraph motif: Feedback or fix context exposes missing test/CI guardrails\nMotif id: test_ci_gap_after_feedback\nPolarity: bad\nTraining usage: hard_negative\nSeverity: high\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#4\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yasinjemal/TradeFeed#4\nRepo: yasinjemal/TradeFeed\nIssue/PR number: 4\nGraph consistency label: supported_by_verification_signal\nNodes: 25\nEdges: 34\nNode types: {'link_quality': 7, 'commit': 5, 'comment_chain': 3, 'comment': 2, 'alignment': 2, 'thread': 1, 'repo': 1, 'pr_review': 1,"}, "properties": {"scanner": "foundry_dataset", "category": "testing", "severity": "high", "confidence": 0.78, "cwe": "", "owasp": ""}}, {"id": "foundry_schema_ui_api_gap", "name": "Foundry mined schema ui api mismatch: yasinjemal/TradeFeed", "shortDescription": {"text": "Foundry mined schema ui api mismatch: yasinjemal/TradeFeed"}, "fullDescription": {"text": "Graph query export: Schema, UI, and API mismatch\nQuery id: schema_ui_api_mismatch\nQuery type: motif_query\nIntent: Assumption-check examples for data-path consistency across layers.\nMotif: schema_ui_api_mismatch\nTraining usage: assumption_check\nGraph gold label: weak_supervision_needs_review\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#5\nEvidence:\nGraph motif: Schema, UI, and API evidence do not line up\nMotif id: schema_ui_api_mismatch\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#5\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yasinjemal/TradeFeed#5\nRepo: yasinjemal/TradeFeed\nIssue/PR number: 5\nGraph consistency label: weak_supervision_needs_review\nNodes: 40\nEdges: 88\nNode types: {'link_quality': 10, 'comment_chain': 7, 'commit': 6, 'comment': 5, 'pr_file': 4, 'pr_review': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'al"}, "properties": {"scanner": "foundry_dataset", "category": "quality", "severity": "high", "confidence": 0.76, "cwe": "", "owasp": ""}}, {"id": "foundry_docs_only_fix", "name": "Foundry mined docs only runtime fix: yasinjemal/TradeFeed", "shortDescription": {"text": "Foundry mined docs only runtime fix: yasinjemal/TradeFeed"}, "fullDescription": {"text": "Graph query export: Docs-only response to runtime or integration issue\nQuery id: docs_only_runtime_fix\nQuery type: motif_query\nIntent: Assumption-check examples where docs or claims are not enough proof.\nMotif: docs_only_runtime_fix\nTraining usage: assumption_check\nGraph gold label: weak_supervision_needs_review\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#7\nEvidence:\nGraph motif: Runtime/integration complaint answered mostly with docs or claims\nMotif id: docs_only_runtime_fix\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#7\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yasinjemal/TradeFeed#7\nRepo: yasinjemal/TradeFeed\nIssue/PR number: 7\nGraph consistency label: weak_supervision_needs_review\nNodes: 18\nEdges: 26\nNode types: {'commit': 5, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain'"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "high", "confidence": 0.8, "cwe": "", "owasp": ""}}, {"id": "foundry_bad_chain", "name": "Foundry mined bad chains: yasinjemal/TradeFeed", "shortDescription": {"text": "Foundry mined bad chains: yasinjemal/TradeFeed"}, "fullDescription": {"text": "Comment chain pattern product: bad_chains\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#4\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: yasinjemal/TradeFeed#4\nRepo: yasinjemal/TradeFeed\nThread label: thread_has_human_issue_and_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 3\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'test_ci_gap': 1, 'deployment_env_gap': 1, 'api_integration_gap': 1}\nPolarities: {'bad': 3}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-41c3b241cdcc827b\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \""}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "high", "confidence": 0.84, "cwe": "", "owasp": ""}}, {"id": "foundry_auth_guardrail_gap", "name": "Foundry mined security auth guardrail gaps: yasinjemal/TradeFeed", "shortDescription": {"text": "Foundry mined security auth guardrail gaps: yasinjemal/TradeFeed"}, "fullDescription": {"text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: weak_supervision_needs_review\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#7\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#7\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yasinjemal/TradeFeed#7\nRepo: yasinjemal/TradeFeed\nIssue/PR number: 7\nGraph consistency label: weak_supervision_needs_review\nNodes: 18\nEdges: 26\nNode types: {'commit': 5, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1,"}, "properties": {"scanner": "foundry_dataset", "category": "auth", "severity": "critical", "confidence": 0.78, "cwe": "", "owasp": ""}}, {"id": "scanner-bead75b0f9233e05", "name": "No API endpoints detected", "shortDescription": {"text": "No API endpoints detected"}, "fullDescription": {"text": "The scanner did not find FastAPI/Flask/Express/NestJS/GraphQL/gRPC routes. If this repo exposes APIs, the framework may be unsupported."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9bfa5dff980d6381", "name": "Stray `console.log` in TS/JS \u2014 scripts/seed-images.ts:110", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-images.ts:110"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-94cd8e4d3f1b5f89", "name": "Stray `console.log` in TS/JS \u2014 scripts/upgrade-admin.ts:8", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/upgrade-admin.ts:8"}, "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-73d99891dd7dfb17", "name": "Stray `console.log` in TS/JS \u2014 scripts/seed-products.ts:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-products.ts:21"}, "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-75915b69d8cc41b7", "name": "Stray `console.log` in TS/JS \u2014 scripts/backfill-product-slugs.ts:32", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/backfill-product-slugs.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-de5849047a344449", "name": "Stray `console.log` in TS/JS \u2014 scripts/seed-global-categories.ts:478", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-global-categories.ts:478"}, "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-3de2df4fa6937c59", "name": "Stray `console.log` in TS/JS \u2014 scripts/db-health-check.ts:187", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/db-health-check.ts:187"}, "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-a0ee5007007e5019", "name": "Stray `console.log` in TS/JS \u2014 scripts/check-db.ts:10", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-db.ts:10"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1f857cb31fd6d48c", "name": "Stray `console.log` in TS/JS \u2014 scripts/seed-plans.ts:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-plans.ts:16"}, "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-1f0e7264e3bcd747", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/migrate-images.ts:68", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/migrate-images.ts:68"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e12aafe6d06aee39", "name": "Stray `console.log` in TS/JS \u2014 scripts/archive/backfill-product-prices.ts:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/backfill-product-prices.ts: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-89d9d5f6f65fd1b7", "name": "Stray `console.log` in TS/JS \u2014 prisma/seed.ts:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 prisma/seed.ts: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-98cea43a59595e6b", "name": "`truncate` class without `title=` for hover reveal \u2014 components/orders/buyer-order-list.tsx:199", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/orders/buyer-order-list.tsx:199"}, "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-b6675886e091e004", "name": "`truncate` class without `title=` for hover reveal \u2014 components/marketplace/marketplace-product-card.tsx:146", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/marketplace/marketplace-product-card.tsx:146"}, "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-b8eb259dbc18e497", "name": "`truncate` class without `title=` for hover reveal \u2014 components/marketplace/featured-shop-card.tsx:46", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/marketplace/featured-shop-card.tsx:46"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-13e925950a03aa0f", "name": "`truncate` class without `title=` for hover reveal \u2014 components/analytics/analytics-dashboard.tsx:206", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/analytics/analytics-dashboard.tsx:206"}, "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-498927ebd521c3cc", "name": "`truncate` class without `title=` for hover reveal \u2014 components/tf/sticky-cta-bar.tsx:44", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/tf/sticky-cta-bar.tsx:44"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e0b4fe2b2dc85fc9", "name": "`truncate` class without `title=` for hover reveal \u2014 components/tf/product-card.tsx:176", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/tf/product-card.tsx:176"}, "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-835c9c5e7f42de9a", "name": "`truncate` class without `title=` for hover reveal \u2014 components/tf/product/tf-order-panel.tsx:235", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/tf/product/tf-order-panel.tsx:235"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c2bafbbb08e3e71f", "name": "`truncate` class without `title=` for hover reveal \u2014 components/tf/dashboard/tf-dashboard-home.tsx:94", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/tf/dashboard/tf-dashboard-home.tsx:94"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-17cc08d132649d86", "name": "`truncate` class without `title=` for hover reveal \u2014 components/tf/motion/tf-live-ticker.tsx:52", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/tf/motion/tf-live-ticker.tsx:52"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-76632da079695208", "name": "`truncate` class without `title=` for hover reveal \u2014 components/tf/landing/phone-mock.tsx:39", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/tf/landing/phone-mock.tsx:39"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-183fc6bcde69a837", "name": "`truncate` class without `title=` for hover reveal \u2014 components/product/edit-product-form.tsx:72", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/product/edit-product-form.tsx:72"}, "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-9a70aea2b47fe27b", "name": "`truncate` class without `title=` for hover reveal \u2014 components/product/create-product-form.tsx:496", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/product/create-product-form.tsx:496"}, "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-6b966ea953e09a75", "name": "`truncate` class without `title=` for hover reveal \u2014 components/product/variant-grid.tsx:167", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/product/variant-grid.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-799021e48a63c12e", "name": "`truncate` class without `title=` for hover reveal \u2014 components/product/bulk-category-mapper.tsx:253", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/product/bulk-category-mapper.tsx:253"}, "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-e604e185812d80a6", "name": "`truncate` class without `title=` for hover reveal \u2014 components/promotions/promote-dashboard.tsx:382", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/promotions/promote-dashboard.tsx:382"}, "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-f79130ada86d2327", "name": "`truncate` class without `title=` for hover reveal \u2014 components/dashboard/team-page.tsx:402", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/dashboard/team-page.tsx:402"}, "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-882f4a2513f81d70", "name": "`truncate` class without `title=` for hover reveal \u2014 components/dashboard/referral-invite.tsx:59", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/dashboard/referral-invite.tsx:59"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-70da14eb6b4f7c50", "name": "`truncate` class without `title=` for hover reveal \u2014 components/dashboard/shop-switcher.tsx:81", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/dashboard/shop-switcher.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-13fbf9f38e4042ce", "name": "`truncate` class without `title=` for hover reveal \u2014 components/dashboard/catalog-qr-share.tsx:195", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/dashboard/catalog-qr-share.tsx:195"}, "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-60e4b548bf4a9861", "name": "`truncate` class without `title=` for hover reveal \u2014 components/dashboard/trending-products.tsx:73", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/dashboard/trending-products.tsx:73"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6cb245dfe4c57d2a", "name": "`truncate` class without `title=` for hover reveal \u2014 components/dashboard/mobile-nav.tsx:239", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/dashboard/mobile-nav.tsx:239"}, "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-8fb3fb32424f01e3", "name": "`truncate` class without `title=` for hover reveal \u2014 components/import/import-review-grid.tsx:328", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/import/import-review-grid.tsx:328"}, "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-f883b0ff6805c292", "name": "`truncate` class without `title=` for hover reveal \u2014 components/import/whatsapp-import-flow.tsx:345", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/import/whatsapp-import-flow.tsx:345"}, "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-a28a94623138456f", "name": "`truncate` class without `title=` for hover reveal \u2014 components/catalog/seller-info-card.tsx:50", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/catalog/seller-info-card.tsx:50"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1d22baaa0fb11e78", "name": "`truncate` class without `title=` for hover reveal \u2014 components/catalog/product-breadcrumb.tsx:39", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/catalog/product-breadcrumb.tsx:39"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3b77a7494b0f8c40", "name": "`truncate` class without `title=` for hover reveal \u2014 components/catalog/cart-panel.tsx:384", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/catalog/cart-panel.tsx:384"}, "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-5bccb1a396ab8147", "name": "`truncate` class without `title=` for hover reveal \u2014 components/catalog/combo-section.tsx:158", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/catalog/combo-section.tsx:158"}, "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-d149363779a18567", "name": "`truncate` class without `title=` for hover reveal \u2014 components/catalog/shop-profile.tsx:480", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/catalog/shop-profile.tsx:480"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c88fdc635064d81e", "name": "`truncate` class without `title=` for hover reveal \u2014 components/catalog/shop-hero.tsx:336", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/catalog/shop-hero.tsx:336"}, "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-ce877397690ebf90", "name": "`truncate` class without `title=` for hover reveal \u2014 components/catalog/sticky-buy-bar.tsx:47", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/catalog/sticky-buy-bar.tsx:47"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-46fda2d877e33bd1", "name": "`truncate` class without `title=` for hover reveal \u2014 components/catalog/similar-products.tsx:88", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/catalog/similar-products.tsx:88"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6f43eccdea4be01b", "name": "Icon-only button without accessible name \u2014 components/reviews/product-reviews.tsx:203", "shortDescription": {"text": "Icon-only button without accessible name \u2014 components/reviews/product-reviews.tsx:203"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9a787aad6379d3ae", "name": "`truncate` class without `title=` for hover reveal \u2014 components/drops/drop-form.tsx:186", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/drops/drop-form.tsx:186"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-70c32854c5cab185", "name": "`truncate` class without `title=` for hover reveal \u2014 components/admin/admin-promotion-dashboard.tsx:168", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/admin-promotion-dashboard.tsx:168"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-99832816e25b0cc0", "name": "`truncate` class without `title=` for hover reveal \u2014 components/admin/upgrade-requests-panel.tsx:183", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/upgrade-requests-panel.tsx:183"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b887c4053c58e750", "name": "`truncate` class without `title=` for hover reveal \u2014 components/admin/admin-user-list.tsx:187", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/admin-user-list.tsx:187"}, "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-afc4d46ebe45659a", "name": "`truncate` class without `title=` for hover reveal \u2014 components/admin/wholesale-buyer-list.tsx:111", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/wholesale-buyer-list.tsx:111"}, "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-f303b38c86adfc6d", "name": "`truncate` class without `title=` for hover reveal \u2014 components/admin/verification-queue.tsx:103", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/verification-queue.tsx:103"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1eb2c63df5cd58c2", "name": "`truncate` class without `title=` for hover reveal \u2014 components/landing/product-preview-section.tsx:117", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/landing/product-preview-section.tsx:117"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3fbedc9962633b56", "name": "`truncate` class without `title=` for hover reveal \u2014 components/category/category-manager.tsx:178", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/category/category-manager.tsx:178"}, "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-497e5795b99de457", "name": "`truncate` class without `title=` for hover reveal \u2014 components/bulk-import/bulk-import-form.tsx:475", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/bulk-import/bulk-import-form.tsx:475"}, "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-a95f3e8d85104128", "name": "`truncate` class without `title=` for hover reveal \u2014 components/shop/shop-settings-form.tsx:809", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/shop/shop-settings-form.tsx:809"}, "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-0648d8859008893a", "name": "`truncate` class without `title=` for hover reveal \u2014 components/shop/shop-gallery-upload.tsx:204", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/shop/shop-gallery-upload.tsx:204"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ed8fe4cd5732383e", "name": "`truncate` class without `title=` for hover reveal \u2014 components/shop/settings-sidebar.tsx:73", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/shop/settings-sidebar.tsx:73"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bce4f7bcfa1fd5a1", "name": "`truncate` class without `title=` for hover reveal \u2014 components/shop/team-section.tsx:193", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/shop/team-section.tsx:193"}, "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-37beab471a359762", "name": "`truncate` class without `title=` for hover reveal \u2014 components/revenue/revenue-dashboard.tsx:342", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/revenue/revenue-dashboard.tsx:342"}, "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-0d7bf3684327e5ba", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 components/seo/faq.tsx:26", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/seo/faq.tsx:26"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d41a9559bf00e97a", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 components/seo/seo-page.tsx:56", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/seo/seo-page.tsx:56"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-42ddf52cd31f09c1", "name": "`truncate` class without `title=` for hover reveal \u2014 app/page.tsx:361", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/page.tsx:361"}, "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-cf74533889c56d41", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/page.tsx:750", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/page.tsx:750"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9c6100bd6ad25b12", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/layout.tsx:98", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/layout.tsx:98"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-06f22acc68c40eab", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/sell-on-whatsapp/page.tsx:47", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/sell-on-whatsapp/page.tsx:47"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e2865a4c368abf50", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/marketplace/page.tsx:164", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/marketplace/page.tsx:164"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f8567d1fff097c9d", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/marketplace/[province]/page.tsx:149", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/marketplace/[province]/page.tsx:149"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5861733bf7203e48", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/marketplace/[province]/[city]/page.tsx:158", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/marketplace/[province]/[city]/page.tsx:158"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-22c2abd97880a82f", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/marketplace/[province]/[city]/[category]/page.tsx:227", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/marketplace/[province]/[city]/[category]/page.tsx:227"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3c66f162c5d911bb", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/marketplace/category/[slug]/page.tsx:179", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/marketplace/category/[slug]/page.tsx:179"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c29f0cae3b09bfae", "name": "Stray `console.log` in TS/JS \u2014 app/api/uploadthing/core.ts:48", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/uploadthing/core.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-e3e3011c7c6abdb1", "name": "Stray `console.log` in TS/JS \u2014 app/api/cron/seller-sequences/route.ts:41", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/cron/seller-sequences/route.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-0c4da1d316fb7a22", "name": "Stray `console.log` in TS/JS \u2014 app/api/cron/subscription-expiry/route.ts:95", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/cron/subscription-expiry/route.ts:95"}, "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-730c2612d2e5dd35", "name": "Stray `console.log` in TS/JS \u2014 app/api/cron/ranking-computation/route.ts:238", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/cron/ranking-computation/route.ts:238"}, "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-b98d13e00d91d6ef", "name": "Stray `console.log` in TS/JS \u2014 app/api/cron/domain-health/route.ts:118", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/cron/domain-health/route.ts:118"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-32d3e0277df33309", "name": "Stray `console.log` in TS/JS \u2014 app/api/cron/data-retention/route.ts:119", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/cron/data-retention/route.ts:119"}, "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-9a645220c8e05c43", "name": "Stray `console.log` in TS/JS \u2014 app/api/webhooks/whatsapp/route.ts:60", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/webhooks/whatsapp/route.ts:60"}, "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-508b72ac8c2fadaa", "name": "Stray `console.log` in TS/JS \u2014 app/api/webhooks/clerk/route.ts:158", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/webhooks/clerk/route.ts:158"}, "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-9e9095d685097ef7", "name": "Stray `console.log` in TS/JS \u2014 app/api/webhooks/payfast/route.ts:47", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 app/api/webhooks/payfast/route.ts:47"}, "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-e9711735591a22b4", "name": "TODO/FIXME marker in shipping code \u2014 app/api/feeds/google/route.ts:36", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 app/api/feeds/google/route.ts:36"}, "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-89524538d426c521", "name": "`truncate` class without `title=` for hover reveal \u2014 app/dashboard/[slug]/page.tsx:159", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/dashboard/[slug]/page.tsx:159"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-634ad73be190f9cd", "name": "`truncate` class without `title=` for hover reveal \u2014 app/dashboard/[slug]/conversations/page.tsx:148", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/dashboard/[slug]/conversations/page.tsx:148"}, "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-4e7201ee0ad5f08e", "name": "`truncate` class without `title=` for hover reveal \u2014 app/dashboard/[slug]/drops/page.tsx:126", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/dashboard/[slug]/drops/page.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-2fb9c26526d7e09a", "name": "`truncate` class without `title=` for hover reveal \u2014 app/dashboard/[slug]/products/page.tsx:170", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/dashboard/[slug]/products/page.tsx:170"}, "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-d73c2687ec46f2e9", "name": "`truncate` class without `title=` for hover reveal \u2014 app/catalog/[slug]/page.tsx:332", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/catalog/[slug]/page.tsx:332"}, "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-7dfa330ed2e8c490", "name": "`truncate` class without `title=` for hover reveal \u2014 app/catalog/[slug]/layout.tsx:233", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/catalog/[slug]/layout.tsx:233"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-68f54567967fcbf9", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/catalog/[slug]/layout.tsx:133", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/catalog/[slug]/layout.tsx:133"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f0c2cc3f3a6e5f7f", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/catalog/[slug]/products/[productId]/page.tsx:204", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/catalog/[slug]/products/[productId]/page.tsx:204"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1e8477de6ce23a56", "name": "`truncate` class without `title=` for hover reveal \u2014 app/catalog/[slug]/combos/[comboId]/page.tsx:132", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/catalog/[slug]/combos/[comboId]/page.tsx:132"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7a1fe63434c69f44", "name": "`truncate` class without `title=` for hover reveal \u2014 app/admin/activation/page.tsx:95", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/activation/page.tsx:95"}, "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-88c958141d5d6a63", "name": "`truncate` class without `title=` for hover reveal \u2014 app/me/page.tsx:112", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/me/page.tsx:112"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6961869035c47c0a", "name": "`truncate` class without `title=` for hover reveal \u2014 app/pay/[orderNumber]/page.tsx:186", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/pay/[orderNumber]/page.tsx:186"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f5e575dcea7d244d", "name": "`truncate` class without `title=` for hover reveal \u2014 app/track/[orderNumber]/page.tsx:337", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/track/[orderNumber]/page.tsx:337"}, "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-38c1968725855f07", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/(public)/how-it-works/page.tsx:122", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/(public)/how-it-works/page.tsx:122"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-753e90cb3ab029cb", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 app/(public)/faq/page.tsx:204", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/(public)/faq/page.tsx:204"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-52b3d902150ea04a", "name": "Stray `console.log` in TS/JS \u2014 lib/email/resend.ts:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/email/resend.ts:40"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c2b42a24f40d04b2", "name": "Stray `console.log` in TS/JS \u2014 lib/ai/analyze-product-image.ts:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/ai/analyze-product-image.ts:33"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b96354bb6c9c52f6", "name": "Stray `console.log` in TS/JS \u2014 lib/ai/remove-background.ts:34", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/ai/remove-background.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-ea5f8b04ec9d8cf6", "name": "Stray `console.log` in TS/JS \u2014 lib/ai/translate-listing.ts:80", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/ai/translate-listing.ts:80"}, "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-77e92e04a6c2f21a", "name": "Stray `console.log` in TS/JS \u2014 lib/ai/import-draft.ts:90", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/ai/import-draft.ts:90"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-45f72c770bb245f2", "name": "Stray `console.log` in TS/JS \u2014 lib/whatsapp/business-api.ts:49", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/whatsapp/business-api.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-4d27dab1ac54701a", "name": "Stray `console.log` in TS/JS \u2014 lib/whatsapp/product-import.ts:123", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/whatsapp/product-import.ts:123"}, "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-1122404831a50d93", "name": "Stray `console.log` in TS/JS \u2014 lib/whatsapp/ai-sales.ts:146", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/whatsapp/ai-sales.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-7fb6beec4c944faa", "name": "Stray `console.log` in TS/JS \u2014 lib/vercel/domains.ts:79", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/vercel/domains.ts:79"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3b41bbcc27dd0914", "name": "Stray `console.log` in TS/JS \u2014 lib/db/search.ts:67", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/db/search.ts:67"}, "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-3f93681a202f87a9", "name": "Stray `console.log` in TS/JS \u2014 lib/db/referrals.ts:107", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/db/referrals.ts:107"}, "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-db504521e26f8f7b", "name": "Stray `console.log` in TS/JS \u2014 lib/db/promotions.ts:102", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 lib/db/promotions.ts:102"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ac10733f07bf96cf", "name": "Insecure pattern 'dangerous_innerhtml' in components/seo/faq.tsx:26", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in components/seo/faq.tsx:26"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-efcada02ee36daea", "name": "Insecure pattern 'dangerous_innerhtml' in components/seo/seo-page.tsx:56", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in components/seo/seo-page.tsx:56"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b91ac14d85ff479b", "name": "Insecure pattern 'dangerous_innerhtml' in app/page.tsx:750", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/page.tsx:750"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-938b79ab7c439d3d", "name": "Insecure pattern 'dangerous_innerhtml' in app/layout.tsx:98", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/layout.tsx:98"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8931d3abaf47805c", "name": "Insecure pattern 'dangerous_innerhtml' in app/sell-on-whatsapp/page.tsx:47", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/sell-on-whatsapp/page.tsx:47"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-30b114b2ffc58bae", "name": "Insecure pattern 'dangerous_innerhtml' in app/marketplace/page.tsx:164", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/marketplace/page.tsx:164"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0e1fd12cc91848e6", "name": "Insecure pattern 'dangerous_innerhtml' in app/marketplace/[province]/page.tsx:149", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/marketplace/[province]/page.tsx:149"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-93c532db829f120a", "name": "Insecure pattern 'dangerous_innerhtml' in app/marketplace/[province]/[city]/page.tsx:158", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/marketplace/[province]/[city]/page.tsx:158"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d8f5007b5b2b4d52", "name": "Insecure pattern 'dangerous_innerhtml' in app/marketplace/[province]/[city]/[category]/page.tsx:227", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/marketplace/[province]/[city]/[category]/page.tsx:227"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b52e06fc60139146", "name": "Insecure pattern 'dangerous_innerhtml' in app/marketplace/category/[slug]/page.tsx:179", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/marketplace/category/[slug]/page.tsx:179"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ca5f47a77cfecb04", "name": "Insecure pattern 'dangerous_innerhtml' in app/catalog/[slug]/layout.tsx:133", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/catalog/[slug]/layout.tsx:133"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bd7033031a4b31ae", "name": "Insecure pattern 'dangerous_innerhtml' in app/catalog/[slug]/products/[productId]/page.tsx:204", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/catalog/[slug]/products/[productId]/page.tsx:204"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b1aba7f07ebd13d2", "name": "Insecure pattern 'dangerous_innerhtml' in app/(public)/how-it-works/page.tsx:122", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/(public)/how-it-works/page.tsx:122"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6a9570e1200a5a77", "name": "Insecure pattern 'dangerous_innerhtml' in app/(public)/faq/page.tsx:204", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in app/(public)/faq/page.tsx:204"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-14e0692c774afeec", "name": "Insecure pattern 'weak_hash' in lib/payfast.ts:43", "shortDescription": {"text": "Insecure pattern 'weak_hash' in lib/payfast.ts:43"}, "fullDescription": {"text": "Found a known-risky pattern (weak_hash). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ae8b6fd4c916ab03", "name": "Insecure pattern 'document_write' in lib/export/reports.ts:82", "shortDescription": {"text": "Insecure pattern 'document_write' in lib/export/reports.ts:82"}, "fullDescription": {"text": "Found a known-risky pattern (document_write). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "low", "confidence": 1.0}}, {"id": "scanner-27924aa79fa4a517", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-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-347ad98ab11ff9be", "name": "Very large file: components/shop/shop-settings-form.tsx (1135 lines)", "shortDescription": {"text": "Very large file: components/shop/shop-settings-form.tsx (1135 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-6d12985bfcfc75aa", "name": "Very large file: app/page.tsx (961 lines)", "shortDescription": {"text": "Very large file: app/page.tsx (961 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "22 test file(s) for 516 source file(s) (ratio 0.04). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-01f96f71d9907a8c", "name": "README lacks setup or run instructions", "shortDescription": {"text": "README lacks setup or run instructions"}, "fullDescription": {"text": "A README exists, but it does not contain common install/setup/run markers. This matches a frequent generated-code pattern: UI is present, operational handoff is thin."}, "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 137 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 232 placeholder/mock markers across 77 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, operator-readme. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license, operator-readme. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dcc94a168cd98873", "name": "Commented-code block (5 lines) in playwright.config.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in playwright.config.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8fa590b348edfb28", "name": "Commented-code block (8 lines) in proxy.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in proxy.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-517e66a88a6c8e4c", "name": "Commented-code block (7 lines) in types/index.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in types/index.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b19bd4dfbd3ab7d3", "name": "Commented-code block (6 lines) in i18n/config.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in i18n/config.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4a48549149574b25", "name": "Commented-code block (7 lines) in tests/catalogue-import.test.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in tests/catalogue-import.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ab93c0301aed2b21", "name": "Commented-code block (5 lines) in tests/review-actions.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/review-actions.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8d99570f603a5953", "name": "Commented-code block (5 lines) in tests/marketplace-interleave.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/marketplace-interleave.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9a57ee62d9cc8212", "name": "Commented-code block (6 lines) in tests/ai-safety.test.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/ai-safety.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1099397cb6d2dab4", "name": "Commented-code block (6 lines) in tests/payfast.test.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/payfast.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fa2c5fa592330d7c", "name": "Commented-code block (5 lines) in tests/checkout.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/checkout.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f9173ff523613cbf", "name": "Commented-code block (6 lines) in tests/ai-deepening.test.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/ai-deepening.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2052c79ac3956083", "name": "Commented-code block (6 lines) in tests/trust-system.test.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/trust-system.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-85bf3fbf622a0b16", "name": "Commented-code block (7 lines) in tests/tenant-isolation.test.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in tests/tenant-isolation.test.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-38a8c3118687e402", "name": "Commented-code block (7 lines) in scripts/seed-images.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/seed-images.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-86ce99eb758ccaca", "name": "Commented-code block (7 lines) in scripts/seed-products.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/seed-products.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-de435150f70a39fc", "name": "Commented-code block (5 lines) in scripts/backfill-product-slugs.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/backfill-product-slugs.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b73e9248dcc05993", "name": "Commented-code block (5 lines) in scripts/seed-global-categories.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/seed-global-categories.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-91bda4c55888be84", "name": "Commented-code block (5 lines) in scripts/db-health-check.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/db-health-check.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9003864407a1bea2", "name": "Commented-code block (5 lines) in scripts/seed-plans.ts:2", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/seed-plans.ts:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dc0c9299075d0635", "name": "Commented-code block (6 lines) in scripts/archive/migrate-images.ts:20", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/archive/migrate-images.ts:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d3ba948fd3072892", "name": "Commented-code block (5 lines) in scripts/archive/backfill-product-prices.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/archive/backfill-product-prices.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d43a5a56e9afb965", "name": "Commented-code block (5 lines) in prisma/seed.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in prisma/seed.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7307a00335866a83", "name": "Commented-code block (7 lines) in components/floating-whatsapp.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in components/floating-whatsapp.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-49bf1f08697a880d", "name": "Commented-code block (6 lines) in components/cookie-consent.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/cookie-consent.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-265df8d1c79abb54", "name": "Commented-code block (5 lines) in components/notifications/notification-settings.tsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in components/notifications/notification-settings.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fb71a6d19e809a41", "name": "`fetch()` without try/.catch or AbortSignal \u2014 components/notifications/whatsapp-sequence-toggle.tsx:21", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/notifications/whatsapp-sequence-toggle.tsx: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-82c46b04a3ae903e", "name": "Commented-code block (6 lines) in components/orders/buyer-order-list.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in components/orders/buyer-order-list.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1f682731a3940240", "name": "Commented-code block (9 lines) in components/orders/orders-dashboard.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in components/orders/orders-dashboard.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4e5f8757d0c5bbe5", "name": "Commented-code block (7 lines) in components/marketplace/marketplace-activity.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in components/marketplace/marketplace-activity.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fd62460fe1ddc3fa", "name": "Commented-code block (6 lines) in components/marketplace/category-bar.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/marketplace/category-bar.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5ed34108ebd894c6", "name": "Commented-code block (7 lines) in components/tracking/tracking-search.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in components/tracking/tracking-search.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7ee252a9ba4a414f", "name": "Commented-code block (6 lines) in components/tracking/order-timeline.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in components/tracking/order-timeline.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a89440cff4562271", "name": "Commented-code block (5 lines) in components/analytics/analytics-dashboard.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in components/analytics/analytics-dashboard.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8b6470a7c876ccd8", "name": "Commented-code block (6 lines) in components/tf/verified-seller-card.tsx:9", "shortDescription": {"text": "Commented-code block (6 lines) in components/tf/verified-seller-card.tsx:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3e0c03b51af9e590", "name": "Commented-code block (5 lines) in components/tf/button.tsx:7", "shortDescription": {"text": "Commented-code block (5 lines) in components/tf/button.tsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-563666c4d31241e7", "name": "Commented-code block (6 lines) in components/tf/tf-fonts.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in components/tf/tf-fonts.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e1a1717fc942c2b4", "name": "Commented-code block (6 lines) in components/tf/sticky-cta-bar.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in components/tf/sticky-cta-bar.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7bf9283e9d688cae", "name": "Commented-code block (5 lines) in components/tf/bottom-nav.tsx:8", "shortDescription": {"text": "Commented-code block (5 lines) in components/tf/bottom-nav.tsx:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-24190029db0e6612", "name": "Commented-code block (5 lines) in components/tf/marketplace/tf-filter-sheet.tsx:12", "shortDescription": {"text": "Commented-code block (5 lines) in components/tf/marketplace/tf-filter-sheet.tsx:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d08976133e4b8813", "name": "Commented-code block (6 lines) in components/tf/product/tf-order-panel.tsx:10", "shortDescription": {"text": "Commented-code block (6 lines) in components/tf/product/tf-order-panel.tsx:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-24637d3da072703b", "name": "Commented-code block (7 lines) in components/tf/product/tf-product-page.tsx:16", "shortDescription": {"text": "Commented-code block (7 lines) in components/tf/product/tf-product-page.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-7bfd45fa6d92c225", "name": "Commented-code block (10 lines) in components/tf/product/tf-gallery.tsx:9", "shortDescription": {"text": "Commented-code block (10 lines) in components/tf/product/tf-gallery.tsx:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e3bb8ec3bbfc5428", "name": "Commented-code block (6 lines) in components/tf/dashboard/tf-dashboard-home.tsx:22", "shortDescription": {"text": "Commented-code block (6 lines) in components/tf/dashboard/tf-dashboard-home.tsx:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5136789a20be874d", "name": "Commented-code block (5 lines) in components/tf/motion/tf-live-ticker.tsx:7", "shortDescription": {"text": "Commented-code block (5 lines) in components/tf/motion/tf-live-ticker.tsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d805376a7d49f441", "name": "Commented-code block (6 lines) in components/tf/motion/tf-count-up.tsx:5", "shortDescription": {"text": "Commented-code block (6 lines) in components/tf/motion/tf-count-up.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f7d3a4c4c7ce1330", "name": "Commented-code block (9 lines) in components/tf/motion/tf-tilt.tsx:12", "shortDescription": {"text": "Commented-code block (9 lines) in components/tf/motion/tf-tilt.tsx:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c4a019ed9153a5e0", "name": "Commented-code block (6 lines) in components/tf/landing/tf-header.tsx:5", "shortDescription": {"text": "Commented-code block (6 lines) in components/tf/landing/tf-header.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ae40873b76e6f0a5", "name": "Commented-code block (8 lines) in components/tf/checkout/tf-cart-panel.tsx:34", "shortDescription": {"text": "Commented-code block (8 lines) in components/tf/checkout/tf-cart-panel.tsx:34"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-56976d07d5a719d3", "name": "Commented-code block (5 lines) in components/tf/storefront/tf-storefront.tsx:16", "shortDescription": {"text": "Commented-code block (5 lines) in components/tf/storefront/tf-storefront.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-40d9f614007358f7", "name": "Commented-code block (5 lines) in components/tf/storefront/tf-reviews.tsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in components/tf/storefront/tf-reviews.tsx:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2a6a532e87b9ed65", "name": "Commented-code block (7 lines) in components/product/quick-sell-form.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in components/product/quick-sell-form.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ba6c5eb11d73c6d4", "name": "Commented-code block (8 lines) in components/product/price-suggestion-hint.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in components/product/price-suggestion-hint.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-69ecce2590dac7d3", "name": "Commented-code block (8 lines) in components/product/variant-bulk-editor.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in components/product/variant-bulk-editor.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-007533a7dc70005e", "name": "Commented-code block (11 lines) in components/product/smart-variant-creator.tsx:1", "shortDescription": {"text": "Commented-code block (11 lines) in components/product/smart-variant-creator.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-507c23875ab09fc0", "name": "Commented-code block (7 lines) in components/product/global-category-picker.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in components/product/global-category-picker.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-926da6cafa22be41", "name": "Commented-code block (5 lines) in components/product/product-wizard.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in components/product/product-wizard.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d3c885fb9bdf6fef", "name": "Commented-code block (7 lines) in components/product/bg-remove-button.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in components/product/bg-remove-button.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7b3043d7b3a9af70", "name": "Commented-code block (7 lines) in components/product/listing-quality-score.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in components/product/listing-quality-score.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6ae4927778b69d68", "name": "Commented-code block (10 lines) in components/product/image-upload.tsx:1", "shortDescription": {"text": "Commented-code block (10 lines) in components/product/image-upload.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ab370b56bebbacb3", "name": "Commented-code block (6 lines) in components/product/edit-product-form.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/product/edit-product-form.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d505121a37cfb954", "name": "Commented-code block (6 lines) in components/product/create-product-form.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/product/create-product-form.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-614dae7a4ba96e05", "name": "Commented-code block (7 lines) in components/product/first-listing-checklist.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in components/product/first-listing-checklist.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1f89e494b2cb4678", "name": "Commented-code block (7 lines) in components/product/variant-grid.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in components/product/variant-grid.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ae1019377f1df1ff", "name": "Commented-code block (6 lines) in components/product/seller-tip.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/product/seller-tip.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-af930f1d2bdb6312", "name": "Commented-code block (6 lines) in components/product/delete-product-button.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/product/delete-product-button.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-db5ed0eed29f26b2", "name": "Commented-code block (6 lines) in components/product/add-variant-form.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/product/add-variant-form.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d26c88319874fde1", "name": "Commented-code block (6 lines) in components/product/variant-list.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/product/variant-list.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fa2637c95502050f", "name": "Commented-code block (6 lines) in components/product/bulk-category-mapper.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/product/bulk-category-mapper.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-843d1194551d7207", "name": "Commented-code block (6 lines) in components/ui/empty-state.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/ui/empty-state.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fba96e7d3284ab93", "name": "Commented-code block (6 lines) in components/ui/tradefeed-logo.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/ui/tradefeed-logo.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-db35d9e6eaa2f6f1", "name": "Commented-code block (6 lines) in components/ui/back-to-top.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/ui/back-to-top.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-53b7c46edda9a8fb", "name": "Commented-code block (6 lines) in components/ui/global-bottom-nav.tsx:7", "shortDescription": {"text": "Commented-code block (6 lines) in components/ui/global-bottom-nav.tsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b4a339cb7234c2de", "name": "Commented-code block (5 lines) in components/ui/illustrations.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in components/ui/illustrations.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f5d37fc9f2de49e8", "name": "Commented-code block (7 lines) in components/dashboard/team-page.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in components/dashboard/team-page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1633fdc94f0c853f", "name": "Commented-code block (5 lines) in components/dashboard/referral-invite.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in components/dashboard/referral-invite.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f74b1e5f60d4f4f9", "name": "Commented-code block (6 lines) in components/dashboard/shop-switcher.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/dashboard/shop-switcher.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-16540d1427cbd91f", "name": "Commented-code block (7 lines) in components/dashboard/seller-health-card.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in components/dashboard/seller-health-card.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-12131cefa973181c", "name": "Commented-code block (6 lines) in components/dashboard/activity-log-list.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/dashboard/activity-log-list.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c108c434af7abaa3", "name": "Commented-code block (7 lines) in components/dashboard/mobile-bottom-nav.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in components/dashboard/mobile-bottom-nav.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1a356f4eb2d2145c", "name": "Commented-code block (7 lines) in components/dashboard/trending-products.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in components/dashboard/trending-products.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e1f8151bdfa7c562", "name": "Commented-code block (6 lines) in components/dashboard/mobile-nav.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/dashboard/mobile-nav.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-385c1441a14fe53c", "name": "Commented-code block (7 lines) in components/dashboard/order-notification-sound.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in components/dashboard/order-notification-sound.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e0d68f65e8ef450e", "name": "Commented-code block (6 lines) in components/dashboard/quick-reply-templates.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/dashboard/quick-reply-templates.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3af001eba5bdc25f", "name": "Commented-code block (5 lines) in components/import/photo-import-flow.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in components/import/photo-import-flow.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ee45f943516572c7", "name": "Commented-code block (7 lines) in components/import/import-review-grid.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in components/import/import-review-grid.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-12c226396cf3d660", "name": "Commented-code block (6 lines) in components/import/whatsapp-import-flow.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/import/whatsapp-import-flow.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-658497dfc224ce28", "name": "Commented-code block (5 lines) in components/catalog/cart-panel.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in components/catalog/cart-panel.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ec7d46cf61dfcf40", "name": "Commented-code block (6 lines) in components/catalog/shop-review-highlights.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/catalog/shop-review-highlights.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f71123559c1583b4", "name": "Commented-code block (6 lines) in components/catalog/add-combo-to-cart.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/catalog/add-combo-to-cart.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0948d42a01c2eec1", "name": "Commented-code block (7 lines) in components/catalog/shop-about-section.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in components/catalog/shop-about-section.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1668e78e8df2df3b", "name": "Commented-code block (6 lines) in components/catalog/whatsapp-cta-context.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/catalog/whatsapp-cta-context.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-99a56156dbb53ab6", "name": "Commented-code block (5 lines) in components/catalog/combo-section.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in components/catalog/combo-section.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-80c64e2b37b1ea2d", "name": "Commented-code block (7 lines) in components/catalog/recently-viewed-strip.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in components/catalog/recently-viewed-strip.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-286fd37f2252a9f7", "name": "Commented-code block (12 lines) in components/catalog/product-image-gallery.tsx:1", "shortDescription": {"text": "Commented-code block (12 lines) in components/catalog/product-image-gallery.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b7b7ae3362ac7f92", "name": "Commented-code block (7 lines) in components/catalog/shop-profile.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in components/catalog/shop-profile.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-37bad38866c80765", "name": "Commented-code block (5 lines) in components/catalog/wishlist-heart.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in components/catalog/wishlist-heart.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c07a7d0b62d6af25", "name": "Commented-code block (5 lines) in components/catalog/cart-button.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in components/catalog/cart-button.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3835747dfce6848f", "name": "Commented-code block (5 lines) in components/catalog/add-to-cart.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in components/catalog/add-to-cart.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-22a01d18bc8a4a60", "name": "Commented-code block (8 lines) in components/catalog/seller-trust-stats.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in components/catalog/seller-trust-stats.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c486dc0030e90c07", "name": "Commented-code block (6 lines) in components/catalog/catalog-search-filter.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/catalog/catalog-search-filter.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-41e0dfe9b47f5250", "name": "Commented-code block (5 lines) in components/catalog/share-product.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in components/catalog/share-product.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2e04341a27a98f53", "name": "Commented-code block (6 lines) in components/catalog/follow-shop-button.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/catalog/follow-shop-button.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-86a23538421a9308", "name": "Commented-code block (6 lines) in components/catalog/whatsapp-cta-product-setter.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/catalog/whatsapp-cta-product-setter.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-29b7ed4585611ae4", "name": "Commented-code block (5 lines) in components/catalog/wishlist-button.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in components/catalog/wishlist-button.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1003cdd8e10b540a", "name": "Commented-code block (6 lines) in components/catalog/share-catalog.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/catalog/share-catalog.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-71521c7d63e9ead1", "name": "Commented-code block (6 lines) in components/catalog/wishlist-panel.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/catalog/wishlist-panel.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-784a97136889e606", "name": "Commented-code block (7 lines) in components/catalog/offline-banner.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in components/catalog/offline-banner.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9c8a751c389551f8", "name": "Commented-code block (6 lines) in components/catalog/catalog-cache-manager.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/catalog/catalog-cache-manager.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1801906e57abc0de", "name": "Commented-code block (7 lines) in components/catalog/shop-hero.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in components/catalog/shop-hero.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3969273b7fe8044d", "name": "Commented-code block (7 lines) in components/catalog/sticky-whatsapp-cta.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in components/catalog/sticky-whatsapp-cta.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ee5de8a02af20853", "name": "Commented-code block (6 lines) in components/reviews/reviews-dashboard.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in components/reviews/reviews-dashboard.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c588a6f32d011588", "name": "Commented-code block (6 lines) in components/reviews/product-reviews.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in components/reviews/product-reviews.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ed89f264e6319194", "name": "Commented-code block (6 lines) in components/reviews/verified-review-form.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/reviews/verified-review-form.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-60f7ba2963fc24c4", "name": "Commented-code block (6 lines) in components/drops/drop-form.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/drops/drop-form.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-872b302e251ce377", "name": "Commented-code block (5 lines) in components/billing/billing-dashboard.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in components/billing/billing-dashboard.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3f0b8415b245b46f", "name": "Commented-code block (6 lines) in components/billing/upgrade-form.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/billing/upgrade-form.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3575175d588d9c0a", "name": "Commented-code block (5 lines) in components/admin/admin-promotion-dashboard.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in components/admin/admin-promotion-dashboard.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5489f6e5ae381f53", "name": "Commented-code block (5 lines) in components/admin/upgrade-requests-panel.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in components/admin/upgrade-requests-panel.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-731fcdaddc42f2d2", "name": "Commented-code block (6 lines) in components/admin/admin-user-list.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/admin/admin-user-list.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-257ccb53d1551e70", "name": "Commented-code block (6 lines) in components/admin/payment-methods-manager.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/admin/payment-methods-manager.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-be29d19ca2ddf9c1", "name": "Commented-code block (6 lines) in components/admin/admin-moderation-list.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/admin/admin-moderation-list.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3a75f6fda2fa7839", "name": "Commented-code block (6 lines) in components/admin/admin-order-list.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/admin/admin-order-list.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f38cb184ee25b66e", "name": "Commented-code block (6 lines) in components/admin/admin-category-manager.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/admin/admin-category-manager.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9ebb71e79c5518f1", "name": "Commented-code block (6 lines) in components/admin/admin-marketplace-analytics.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/admin/admin-marketplace-analytics.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5c751fab359e0220", "name": "Commented-code block (5 lines) in components/admin/admin-audit-log.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in components/admin/admin-audit-log.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1278714faaa05903", "name": "Commented-code block (10 lines) in components/admin/admin-shop-list.tsx:1", "shortDescription": {"text": "Commented-code block (10 lines) in components/admin/admin-shop-list.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dc048c36f4bb6f8d", "name": "Commented-code block (6 lines) in components/admin/verification-queue.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/admin/verification-queue.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ebd3bbd4802abe21", "name": "Commented-code block (6 lines) in components/landing/animated-stats.tsx:5", "shortDescription": {"text": "Commented-code block (6 lines) in components/landing/animated-stats.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5b5b62a3c507c97a", "name": "Commented-code block (7 lines) in components/landing/mobile-nav.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in components/landing/mobile-nav.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-42d48e8e901856d4", "name": "Commented-code block (5 lines) in components/combo/delete-combo-button.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in components/combo/delete-combo-button.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0f75edb37660ba86", "name": "Commented-code block (5 lines) in components/combo/combo-form.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in components/combo/combo-form.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a63dcd92cce02cdd", "name": "Commented-code block (5 lines) in components/combo/combo-category-manager.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in components/combo/combo-category-manager.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4cd93febf61f328d", "name": "Commented-code block (6 lines) in components/category/category-manager.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/category/category-manager.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d9e1c081883534ef", "name": "Commented-code block (7 lines) in components/bulk-import/bulk-import-form.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in components/bulk-import/bulk-import-form.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-47f1e52e791dca70", "name": "Commented-code block (12 lines) in components/shop/shop-settings-form.tsx:1", "shortDescription": {"text": "Commented-code block (12 lines) in components/shop/shop-settings-form.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9b66cb0611bd29d5", "name": "Commented-code block (7 lines) in components/shop/shop-gallery-upload.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in components/shop/shop-gallery-upload.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6297d72fa29778f6", "name": "Commented-code block (12 lines) in components/shop/custom-domain-settings.tsx:1", "shortDescription": {"text": "Commented-code block (12 lines) in components/shop/custom-domain-settings.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e13566c91596cbe0", "name": "Commented-code block (7 lines) in components/shop/verification-request-card.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in components/shop/verification-request-card.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dd1c17cbe9ce145b", "name": "Commented-code block (7 lines) in components/shop/settings-sidebar.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in components/shop/settings-sidebar.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7517ee22b6954e9c", "name": "Commented-code block (7 lines) in components/shop/seller-preferences-form.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in components/shop/seller-preferences-form.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4710a5a2b6bcf20d", "name": "Commented-code block (6 lines) in components/shop/create-shop-form.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/shop/create-shop-form.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0634571122831d0d", "name": "Commented-code block (7 lines) in components/shop/get-started-flow.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in components/shop/get-started-flow.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d43bef3564409e66", "name": "Commented-code block (6 lines) in components/shop/shop-location-fields.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/shop/shop-location-fields.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9b2fae8e89b0e300", "name": "Commented-code block (6 lines) in components/revenue/revenue-dashboard.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in components/revenue/revenue-dashboard.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cbd7c761a6610f34", "name": "Commented-code block (6 lines) in components/seo/seo-page.tsx:10", "shortDescription": {"text": "Commented-code block (6 lines) in components/seo/seo-page.tsx:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b20b29a9f96d906c", "name": "Commented-code block (6 lines) in components/export/export-buttons.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in components/export/export-buttons.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b9d987ce647f3bac", "name": "Commented-code block (10 lines) in app/robots.ts:1", "shortDescription": {"text": "Commented-code block (10 lines) in app/robots.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e4c17f4e98329c9a", "name": "Commented-code block (5 lines) in app/sitemap.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/sitemap.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fd94c68b2f3e9116", "name": "Commented-code block (18 lines) in app/page.tsx:51", "shortDescription": {"text": "Commented-code block (18 lines) in app/page.tsx:51"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0d6723d6e4a036f1", "name": "Commented-code block (8 lines) in app/sign-up/[[...sign-up]]/page.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in app/sign-up/[[...sign-up]]/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-253cb9e1cae879bd", "name": "Commented-code block (6 lines) in app/orders/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/orders/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cde7f4d997a4c7d7", "name": "Commented-code block (5 lines) in app/marketplace/page.tsx:24", "shortDescription": {"text": "Commented-code block (5 lines) in app/marketplace/page.tsx:24"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-41c06f37c39a5376", "name": "Commented-code block (7 lines) in app/marketplace/[province]/page.tsx:23", "shortDescription": {"text": "Commented-code block (7 lines) in app/marketplace/[province]/page.tsx:23"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b3384bb0562725ff", "name": "Commented-code block (6 lines) in app/marketplace/[province]/[city]/page.tsx:24", "shortDescription": {"text": "Commented-code block (6 lines) in app/marketplace/[province]/[city]/page.tsx:24"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2924cf0a0a31e763", "name": "Commented-code block (5 lines) in app/marketplace/[province]/[city]/[category]/page.tsx:27", "shortDescription": {"text": "Commented-code block (5 lines) in app/marketplace/[province]/[city]/[category]/page.tsx: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-4a8bb77d602c6d79", "name": "Commented-code block (6 lines) in app/marketplace/category/[slug]/page.tsx:18", "shortDescription": {"text": "Commented-code block (6 lines) in app/marketplace/category/[slug]/page.tsx:18"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ca1dea604064c25b", "name": "Commented-code block (7 lines) in app/create-shop/page.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in app/create-shop/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ff05e2958b5c5db7", "name": "Commented-code block (8 lines) in app/review/[token]/page.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in app/review/[token]/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1697062cee205984", "name": "Commented-code block (7 lines) in app/contact/page.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in app/contact/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-86cfbf1ac2baca5d", "name": "Commented-code block (5 lines) in app/api/merchant-feed/route.ts:11", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/merchant-feed/route.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-f8b23db2f4c2c221", "name": "Commented-code block (9 lines) in app/api/ai/generate-product/route.ts:6", "shortDescription": {"text": "Commented-code block (9 lines) in app/api/ai/generate-product/route.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-c829a8782657ecb9", "name": "Commented-code block (5 lines) in app/api/health/route.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/health/route.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b0ef9f358d884c62", "name": "Commented-code block (6 lines) in app/api/shops/[shopId]/order-count/route.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/shops/[shopId]/order-count/route.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ddcef1d82bf6f6e5", "name": "Commented-code block (7 lines) in app/api/search/autocomplete/route.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/search/autocomplete/route.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f6f4539a298587a0", "name": "Commented-code block (6 lines) in app/api/admin/export/orders/route.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/admin/export/orders/route.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-601f07781984f33a", "name": "Commented-code block (6 lines) in app/api/uploadthing/route.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/uploadthing/route.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-47018e203ca81d1e", "name": "Commented-code block (5 lines) in app/api/uploadthing/core.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/uploadthing/core.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fb0f19e4e11a394c", "name": "Commented-code block (10 lines) in app/api/cron/seller-sequences/route.ts:1", "shortDescription": {"text": "Commented-code block (10 lines) in app/api/cron/seller-sequences/route.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a720873b7af44b4c", "name": "Commented-code block (5 lines) in app/api/cron/subscription-expiry/route.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/cron/subscription-expiry/route.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d90e6f8dc5f5e224", "name": "Commented-code block (7 lines) in app/api/cron/ranking-computation/route.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/cron/ranking-computation/route.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-585cef1489c53fea", "name": "Commented-code block (5 lines) in app/api/cron/domain-health/route.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/cron/domain-health/route.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6baaff07f7fb1e8c", "name": "Commented-code block (6 lines) in app/api/cron/data-retention/route.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/cron/data-retention/route.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f08740f03375d96f", "name": "Commented-code block (6 lines) in app/api/shipping/rates/route.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/shipping/rates/route.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-51d593d8244dc801", "name": "Commented-code block (5 lines) in app/api/og/route.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/og/route.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bf4c2fad19300e4c", "name": "Commented-code block (7 lines) in app/api/webhooks/whatsapp/route.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in app/api/webhooks/whatsapp/route.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4bf7dce8958b7b77", "name": "Commented-code block (6 lines) in app/api/webhooks/clerk/route.ts:17", "shortDescription": {"text": "Commented-code block (6 lines) in app/api/webhooks/clerk/route.ts:17"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-09cf654a01a0f3e0", "name": "Commented-code block (5 lines) in app/api/webhooks/payfast/route.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/api/webhooks/payfast/route.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1c9e1c0d8c48db04", "name": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/feeds/google/route.ts:13", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/feeds/google/route.ts:13"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-716d97f8e38f6196", "name": "Commented-code block (6 lines) in app/dashboard/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/dashboard/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-40be3857509e9cc2", "name": "Commented-code block (12 lines) in app/dashboard/[slug]/page.tsx:1", "shortDescription": {"text": "Commented-code block (12 lines) in app/dashboard/[slug]/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4075ffbcd6a06a0a", "name": "Commented-code block (6 lines) in app/dashboard/[slug]/layout.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/dashboard/[slug]/layout.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-70498360c89e8ce1", "name": "Commented-code block (6 lines) in app/dashboard/[slug]/settings/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/dashboard/[slug]/settings/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ae1a42e81ea3b826", "name": "Commented-code block (6 lines) in app/dashboard/[slug]/notifications/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/dashboard/[slug]/notifications/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8021aa4fb94f77a6", "name": "Commented-code block (5 lines) in app/dashboard/[slug]/orders/page.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/dashboard/[slug]/orders/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a20d29f9b69a44ea", "name": "Commented-code block (11 lines) in app/dashboard/[slug]/referrals/page.tsx:1", "shortDescription": {"text": "Commented-code block (11 lines) in app/dashboard/[slug]/referrals/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-88ab07003ea4dbc9", "name": "Commented-code block (5 lines) in app/dashboard/[slug]/analytics/page.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/dashboard/[slug]/analytics/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7aaf554d288cb97d", "name": "Commented-code block (6 lines) in app/dashboard/[slug]/activity/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/dashboard/[slug]/activity/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-389157123a1dd482", "name": "Commented-code block (6 lines) in app/dashboard/[slug]/conversations/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/dashboard/[slug]/conversations/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2a70a16438002623", "name": "Commented-code block (6 lines) in app/dashboard/[slug]/conversations/[conversationId]/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/dashboard/[slug]/conversations/[conversationId]/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b4d41d13255d71c0", "name": "Commented-code block (6 lines) in app/dashboard/[slug]/import/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/dashboard/[slug]/import/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-113f95cd2c0e42a7", "name": "Commented-code block (7 lines) in app/dashboard/[slug]/team/page.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in app/dashboard/[slug]/team/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-75efad23e69dfb9f", "name": "Commented-code block (9 lines) in app/dashboard/[slug]/customers/page.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in app/dashboard/[slug]/customers/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0d27b07e443c0b52", "name": "Commented-code block (6 lines) in app/dashboard/[slug]/promote/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/dashboard/[slug]/promote/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0efb5e6ccd098dda", "name": "Commented-code block (6 lines) in app/dashboard/[slug]/marketplace-categories/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/dashboard/[slug]/marketplace-categories/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-64519eac0bd0b038", "name": "Commented-code block (5 lines) in app/dashboard/[slug]/reviews/page.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/dashboard/[slug]/reviews/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d19412d419d444e2", "name": "Commented-code block (6 lines) in app/dashboard/[slug]/templates/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/dashboard/[slug]/templates/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6734c13f242e2f17", "name": "Commented-code block (6 lines) in app/dashboard/[slug]/boost/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/dashboard/[slug]/boost/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2d466b745641f5bd", "name": "Commented-code block (6 lines) in app/dashboard/[slug]/billing/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/dashboard/[slug]/billing/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f03d745025f1be79", "name": "Commented-code block (6 lines) in app/dashboard/[slug]/billing/upgrade/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/dashboard/[slug]/billing/upgrade/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-698ec17e92c927e8", "name": "Commented-code block (6 lines) in app/dashboard/[slug]/categories/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/dashboard/[slug]/categories/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-44216d5fa9110592", "name": "Commented-code block (9 lines) in app/dashboard/[slug]/products/[productId]/page.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in app/dashboard/[slug]/products/[productId]/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f7b59238463956fe", "name": "Commented-code block (6 lines) in app/dashboard/[slug]/products/import/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/dashboard/[slug]/products/import/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6e4037c963279275", "name": "Commented-code block (5 lines) in app/dashboard/[slug]/revenue/page.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/dashboard/[slug]/revenue/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d62733ea8f8dda87", "name": "Commented-code block (6 lines) in app/catalog/[slug]/not-found.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/catalog/[slug]/not-found.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-59f315571c9bbc6f", "name": "Commented-code block (6 lines) in app/catalog/[slug]/loading.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/catalog/[slug]/loading.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f0a4869fd7852a00", "name": "Commented-code block (5 lines) in app/catalog/[slug]/page.tsx:123", "shortDescription": {"text": "Commented-code block (5 lines) in app/catalog/[slug]/page.tsx:123"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-323b4146503cde0e", "name": "Commented-code block (5 lines) in app/catalog/[slug]/layout.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/catalog/[slug]/layout.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b1a11a29c1db3719", "name": "Commented-code block (7 lines) in app/catalog/[slug]/drops/[dropId]/page.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in app/catalog/[slug]/drops/[dropId]/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3d7e8527c1569ca5", "name": "Commented-code block (6 lines) in app/s/[slug]/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/s/[slug]/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c1d523bdb166050c", "name": "Commented-code block (6 lines) in app/sign-in/[[...sign-in]]/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/sign-in/[[...sign-in]]/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cb0581d4c746fd9f", "name": "Commented-code block (7 lines) in app/import-whatsapp-catalogue/page.tsx:8", "shortDescription": {"text": "Commented-code block (7 lines) in app/import-whatsapp-catalogue/page.tsx:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-86494d8978a63802", "name": "Commented-code block (6 lines) in app/admin/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/admin/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0b24ebbb40345ce9", "name": "Commented-code block (6 lines) in app/admin/layout.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/admin/layout.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f80cc2447684801d", "name": "Commented-code block (5 lines) in app/admin/users/page.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/admin/users/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a399e3cf4dee34b3", "name": "Commented-code block (6 lines) in app/admin/upgrade-requests/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/admin/upgrade-requests/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e6e185c824509378", "name": "Commented-code block (5 lines) in app/admin/orders/page.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/admin/orders/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ec165bb3cba47539", "name": "Commented-code block (5 lines) in app/admin/analytics/page.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/admin/analytics/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7b0c477cdfd8474f", "name": "Commented-code block (6 lines) in app/admin/promotions/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/admin/promotions/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8f6570689301c111", "name": "Commented-code block (5 lines) in app/admin/audit-log/page.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/admin/audit-log/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c4e5650d85d1995e", "name": "Commented-code block (6 lines) in app/admin/moderation/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/admin/moderation/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1a8e2ee26c44cf03", "name": "Commented-code block (6 lines) in app/admin/activation/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/admin/activation/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d5d4fcaf70caaa7f", "name": "Commented-code block (6 lines) in app/admin/verifications/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/admin/verifications/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1b56b6c2a43afa0e", "name": "Commented-code block (5 lines) in app/admin/categories/page.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/admin/categories/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cf38d03f1ef86fb4", "name": "Commented-code block (5 lines) in app/admin/payment-methods/page.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/admin/payment-methods/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c370d148b2ff8d77", "name": "Commented-code block (7 lines) in app/admin/domains/page.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in app/admin/domains/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-954b5fb7b5c25cd8", "name": "Commented-code block (6 lines) in app/me/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/me/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d1b12d1ce50159d4", "name": "Commented-code block (7 lines) in app/terms/page.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in app/terms/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f1a0dc5c149fe61e", "name": "Commented-code block (7 lines) in app/actions/price-suggestion.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in app/actions/price-suggestion.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fe5e4a0a2eb41c30", "name": "Commented-code block (5 lines) in app/actions/verification.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/actions/verification.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7eddfe63eae05f36", "name": "Commented-code block (6 lines) in app/actions/catalogue-import.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/actions/catalogue-import.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a1e477bb5e7874c3", "name": "Commented-code block (6 lines) in app/actions/wishlist.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/actions/wishlist.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3fb20a28b0e691fb", "name": "Commented-code block (6 lines) in app/actions/reviews.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/actions/reviews.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-92bf01f50f8be07a", "name": "Commented-code block (6 lines) in app/actions/analytics.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/actions/analytics.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8e5f32a8089caa71", "name": "Commented-code block (6 lines) in app/actions/product.ts:8", "shortDescription": {"text": "Commented-code block (6 lines) in app/actions/product.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-d88f608cc4d03c8c", "name": "Commented-code block (5 lines) in app/actions/onboarding.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/actions/onboarding.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dcc23b0a19c19ba9", "name": "Commented-code block (6 lines) in app/actions/billing.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/actions/billing.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3cd53906f6e29400", "name": "Commented-code block (7 lines) in app/actions/stock-alerts.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in app/actions/stock-alerts.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-36a120bf7542cdaf", "name": "Commented-code block (6 lines) in app/actions/image.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/actions/image.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f90f8bb6a49a0011", "name": "Commented-code block (6 lines) in app/actions/global-categories.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/actions/global-categories.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5c5abb93707e906e", "name": "Commented-code block (6 lines) in app/actions/category.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/actions/category.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-afee9955532c462e", "name": "Commented-code block (8 lines) in app/actions/marketplace.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in app/actions/marketplace.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-66892cead75067bd", "name": "Commented-code block (7 lines) in app/actions/bulk-import.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in app/actions/bulk-import.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7ee3a0c3e7d7081a", "name": "Commented-code block (7 lines) in app/actions/follow.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in app/actions/follow.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b8aeea3ca5057caa", "name": "Commented-code block (5 lines) in app/actions/gallery.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/actions/gallery.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1455b8c33c994de1", "name": "Commented-code block (5 lines) in app/actions/orders.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/actions/orders.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6571e35eca7f0f2d", "name": "Commented-code block (6 lines) in app/actions/image-bg.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/actions/image-bg.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8fdb3a1554f9541d", "name": "Commented-code block (8 lines) in app/actions/verified-review.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in app/actions/verified-review.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1104f845c3837ac5", "name": "Commented-code block (6 lines) in app/actions/whatsapp-import.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in app/actions/whatsapp-import.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6b17fb448aaf2c82", "name": "Commented-code block (6 lines) in app/actions/manual-upgrade.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/actions/manual-upgrade.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-000f532c643ede5f", "name": "Commented-code block (7 lines) in app/actions/admin.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in app/actions/admin.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1c08128ab4ba060e", "name": "Commented-code block (5 lines) in app/actions/domains.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in app/actions/domains.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b078ee1ae7a2c59c", "name": "Commented-code block (7 lines) in app/actions/promotions.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in app/actions/promotions.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-214f6fa94373b5a4", "name": "Commented-code block (6 lines) in app/actions/shop.ts:6", "shortDescription": {"text": "Commented-code block (6 lines) in app/actions/shop.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-0ebba5c0a68199c2", "name": "Commented-code block (7 lines) in app/pay/[orderNumber]/page.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in app/pay/[orderNumber]/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-37e12dd786a2dfd9", "name": "Commented-code block (6 lines) in app/privacy/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/privacy/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9c6bd47b926461c0", "name": "Commented-code block (5 lines) in app/track/page.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/track/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-22dd30b0b5aafb03", "name": "Commented-code block (6 lines) in app/track/[orderNumber]/page.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in app/track/[orderNumber]/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4e1f4ad819189abf", "name": "Commented-code block (5 lines) in app/city/[city]/page.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in app/city/[city]/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b5c16d94b1f5b414", "name": "Commented-code block (7 lines) in app/get-started/page.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in app/get-started/page.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-115864f982ea3b86", "name": "Commented-code block (7 lines) in lib/image-placeholder.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in lib/image-placeholder.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8ef170b6f8865d02", "name": "Commented-code block (6 lines) in lib/env.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/env.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-093ddec91ed9d330", "name": "Commented-code block (6 lines) in lib/payfast.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/payfast.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b6f590c2a9c705ce", "name": "Commented-code block (5 lines) in lib/rate-limit-upstash.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/rate-limit-upstash.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3eb3b85dfb3397d1", "name": "Commented-code block (5 lines) in lib/rate-limit.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/rate-limit.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-becd0813c301d2b2", "name": "Commented-code block (7 lines) in lib/uploadthing.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in lib/uploadthing.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3a57252c7609920c", "name": "Commented-code block (6 lines) in lib/ut-api.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/ut-api.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-17fae6de43e9a709", "name": "Commented-code block (7 lines) in lib/notifications/index.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in lib/notifications/index.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-81e449eadb6cccfd", "name": "Commented-code block (5 lines) in lib/email/resend.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/email/resend.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2819821b03115bdc", "name": "Commented-code block (5 lines) in lib/email/templates/low-stock-alert.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/email/templates/low-stock-alert.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9e4adf70936d4dcf", "name": "Commented-code block (6 lines) in lib/email/templates/order-notification.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/email/templates/order-notification.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d61ca6a08c35a0b8", "name": "Commented-code block (5 lines) in lib/email/templates/welcome.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/email/templates/welcome.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6df8ca366dde0603", "name": "Commented-code block (5 lines) in lib/email/templates/reengagement.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/email/templates/reengagement.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-04cd13295dc35479", "name": "Commented-code block (5 lines) in lib/email/templates/review-notification.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/email/templates/review-notification.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e6306125bb710327", "name": "Commented-code block (6 lines) in lib/email/templates/referral-reward.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/email/templates/referral-reward.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-513307f6d6843a14", "name": "Commented-code block (6 lines) in lib/email/templates/connect-domain.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/email/templates/connect-domain.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-07ed4aeff7fbf405", "name": "Commented-code block (6 lines) in lib/offline/catalog-cache.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/offline/catalog-cache.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b826d62d5839ffd7", "name": "Commented-code block (6 lines) in lib/ai/price-suggestion.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/ai/price-suggestion.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dddcc16ab00f083f", "name": "Commented-code block (7 lines) in lib/ai/analyze-product-image.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in lib/ai/analyze-product-image.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-49b04118ad047a1a", "name": "Commented-code block (8 lines) in lib/ai/parse-text-listings.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in lib/ai/parse-text-listings.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ee8bc5c2e4aba38a", "name": "Commented-code block (6 lines) in lib/ai/remove-background.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/ai/remove-background.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b865bf8f1fc88c0d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/ai/remove-background.ts:45", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/ai/remove-background.ts:45"}, "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-7516f8a8b9a3f131", "name": "Commented-code block (6 lines) in lib/ai/translate-listing.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/ai/translate-listing.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-08b8e6adb800b22d", "name": "Commented-code block (6 lines) in lib/ai/import-draft.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/ai/import-draft.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cdfa95ac9be77cc3", "name": "Commented-code block (7 lines) in lib/marketplace/locations.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in lib/marketplace/locations.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-be122e0c9f4cff4d", "name": "Commented-code block (5 lines) in lib/config/feature-flags.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/config/feature-flags.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ab9f4dcf5f96f5fe", "name": "Commented-code block (6 lines) in lib/config/plan-limits.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/config/plan-limits.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fe3572a9d469d654", "name": "Commented-code block (5 lines) in lib/config/category-suggest.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/config/category-suggest.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5cb53f55aa9a509e", "name": "Commented-code block (7 lines) in lib/config/themes.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in lib/config/themes.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-132d3626b4da58b9", "name": "Commented-code block (6 lines) in lib/config/site.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/config/site.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-474fe95330363b1f", "name": "Commented-code block (6 lines) in lib/config/category-variants.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/config/category-variants.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a9319c3f8a139665", "name": "Commented-code block (6 lines) in lib/config/activity-actions.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/config/activity-actions.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8e14a69616a15154", "name": "Commented-code block (5 lines) in lib/config/promotions.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/config/promotions.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8a3a3cead74e2f96", "name": "Commented-code block (5 lines) in lib/auth/index.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/auth/index.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-91b996ef7defdaa6", "name": "Commented-code block (5 lines) in lib/auth/admin.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/auth/admin.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6c4665b5cbbc48bd", "name": "Commented-code block (5 lines) in lib/intelligence/product-quality.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/intelligence/product-quality.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2120bb6b287916e8", "name": "Commented-code block (8 lines) in lib/intelligence/index.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in lib/intelligence/index.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-916f0273d1a36e62", "name": "Commented-code block (5 lines) in lib/intelligence/seller-metrics.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/intelligence/seller-metrics.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0c8dc190b48cf4d1", "name": "Commented-code block (5 lines) in lib/intelligence/seller-suggestions.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/intelligence/seller-suggestions.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6c9bb027350acddb", "name": "Commented-code block (5 lines) in lib/intelligence/seller-health.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/intelligence/seller-health.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2cb3e06583e997ca", "name": "Commented-code block (5 lines) in lib/intelligence/trending.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/intelligence/trending.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d95c02ece525d74d", "name": "Commented-code block (5 lines) in lib/utils/sku.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/utils/sku.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8c752b26a0e9e15e", "name": "Commented-code block (6 lines) in lib/utils/product-slug.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/utils/product-slug.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0d23ed56465bed40", "name": "Commented-code block (7 lines) in lib/utils/listing-quality.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in lib/utils/listing-quality.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2d8ea4c990c7f64e", "name": "Commented-code block (6 lines) in lib/utils/slug.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/utils/slug.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5eee498a5af87b4a", "name": "Commented-code block (7 lines) in lib/reviews/review-requests.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in lib/reviews/review-requests.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-554e7a491059d0a5", "name": "Commented-code block (5 lines) in lib/cart/cart-context.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/cart/cart-context.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-363e4c844867b957", "name": "Commented-code block (7 lines) in lib/cart/whatsapp-message.ts:25", "shortDescription": {"text": "Commented-code block (7 lines) in lib/cart/whatsapp-message.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-1c47f7812369d6f2", "name": "Commented-code block (6 lines) in lib/cart/types.ts:6", "shortDescription": {"text": "Commented-code block (6 lines) in lib/cart/types.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-79f1dde8965c8e37", "name": "Commented-code block (6 lines) in lib/validation/ai-product.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/validation/ai-product.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f3bceb818a8935e5", "name": "Commented-code block (5 lines) in lib/validation/product.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/validation/product.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c714a6ba384481f0", "name": "Commented-code block (5 lines) in lib/validation/category.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/validation/category.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-69c56d5f13f66aa9", "name": "Commented-code block (7 lines) in lib/validation/index.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in lib/validation/index.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-34fff26cd7b765f9", "name": "Commented-code block (7 lines) in lib/validation/checkout.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in lib/validation/checkout.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-67cf0516fb3a7b0d", "name": "Commented-code block (5 lines) in lib/validation/shop.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/validation/shop.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ad5e442dcbca892e", "name": "Commented-code block (5 lines) in lib/wishlist/wishlist-context.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/wishlist/wishlist-context.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cec6d581b64b5215", "name": "Commented-code block (5 lines) in lib/wishlist/types.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in lib/wishlist/types.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-8bdab7a35c2e8176", "name": "Commented-code block (6 lines) in lib/whatsapp/business-api.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/whatsapp/business-api.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-002856b1ed7602fb", "name": "Commented-code block (6 lines) in lib/whatsapp/intent-detection.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/whatsapp/intent-detection.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d911e7ae43ee2aa0", "name": "Commented-code block (5 lines) in lib/whatsapp/auto-reply.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/whatsapp/auto-reply.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-803c9048008c67ff", "name": "Commented-code block (5 lines) in lib/whatsapp/seller-sequences.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/whatsapp/seller-sequences.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-604a825e708c4c95", "name": "Commented-code block (5 lines) in lib/whatsapp/product-import.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/whatsapp/product-import.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d6d923cc253205b0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 lib/whatsapp/product-import.ts:147", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/whatsapp/product-import.ts:147"}, "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-75ef41dc566e79ec", "name": "Commented-code block (6 lines) in lib/whatsapp/ai-sales.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/whatsapp/ai-sales.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9f40dc544c08815f", "name": "Commented-code block (5 lines) in lib/whatsapp/product-import-parser.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/whatsapp/product-import-parser.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3ce36384f983d520", "name": "Commented-code block (6 lines) in lib/whatsapp/order-reply.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/whatsapp/order-reply.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-941056189502b1e3", "name": "Commented-code block (5 lines) in lib/vercel/domains.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/vercel/domains.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5579e658ebebd760", "name": "Commented-code block (6 lines) in lib/imports/publish-mapper.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/imports/publish-mapper.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-523634c631e06ee8", "name": "Commented-code block (8 lines) in lib/imports/csv-to-drafts.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in lib/imports/csv-to-drafts.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-10de6e4789e6328e", "name": "Commented-code block (5 lines) in lib/imports/import-logic.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/imports/import-logic.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7250aa18d9d6aa0a", "name": "Commented-code block (9 lines) in lib/imports/parse-prices.ts:1", "shortDescription": {"text": "Commented-code block (9 lines) in lib/imports/parse-prices.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dfbae95bb6a949ff", "name": "Commented-code block (7 lines) in lib/imports/split-captions.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in lib/imports/split-captions.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5dc5d71093e8f792", "name": "Commented-code block (6 lines) in lib/recently-viewed/recently-viewed.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/recently-viewed/recently-viewed.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cec07ba2cd30189a", "name": "Commented-code block (7 lines) in lib/trust/seller-stats.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in lib/trust/seller-stats.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-da629f95ea2e9ee4", "name": "Commented-code block (6 lines) in lib/csv/parser.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/csv/parser.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-43e6fecfb6c34778", "name": "Commented-code block (5 lines) in lib/db/admin-users.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/db/admin-users.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-96c8c626d8c6ddad", "name": "Commented-code block (7 lines) in lib/db/catalog.ts:6", "shortDescription": {"text": "Commented-code block (7 lines) in lib/db/catalog.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-b57ce351625c9bcd", "name": "Commented-code block (6 lines) in lib/db/revenue.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/db/revenue.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-42c794c443109c8d", "name": "Commented-code block (5 lines) in lib/db/admin-moderation.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/db/admin-moderation.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2c84e7acca12430d", "name": "Commented-code block (7 lines) in lib/db/ai.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in lib/db/ai.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c13518d6277f9515", "name": "Commented-code block (5 lines) in lib/db/combos.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/db/combos.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d7760b00501d275f", "name": "Commented-code block (7 lines) in lib/db/price-suggestion.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in lib/db/price-suggestion.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-01a10a162c28ff63", "name": "Commented-code block (6 lines) in lib/db/verification.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/db/verification.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-89486b1c3a6eab6a", "name": "Commented-code block (7 lines) in lib/db/trust.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in lib/db/trust.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e938128a459924b7", "name": "Commented-code block (5 lines) in lib/db/admin-orders.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/db/admin-orders.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7a8b66af3c31cd00", "name": "Commented-code block (5 lines) in lib/db/activity-logs.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/db/activity-logs.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b8e4a9adf4492023", "name": "Commented-code block (6 lines) in lib/db/reviews.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/db/reviews.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ca39ebe89198692d", "name": "Commented-code block (6 lines) in lib/db/analytics.ts:11", "shortDescription": {"text": "Commented-code block (6 lines) in lib/db/analytics.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-9bcf1cf954caa6a4", "name": "Commented-code block (5 lines) in lib/db/shops.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/db/shops.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5bac00a2de15b9d1", "name": "Commented-code block (6 lines) in lib/db/global-categories.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/db/global-categories.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9a885882de22a6b4", "name": "Commented-code block (6 lines) in lib/db/manual-payments.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/db/manual-payments.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-61ba37a23948b2f3", "name": "Commented-code block (7 lines) in lib/db/index.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in lib/db/index.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bd2b14f9fedaf6fd", "name": "Commented-code block (7 lines) in lib/db/marketplace.ts:10", "shortDescription": {"text": "Commented-code block (7 lines) in lib/db/marketplace.ts:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a9bed5f99edb3a54", "name": "Commented-code block (6 lines) in lib/db/variants.ts:6", "shortDescription": {"text": "Commented-code block (6 lines) in lib/db/variants.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-7b69a9811350d782", "name": "Commented-code block (8 lines) in lib/db/search.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in lib/db/search.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bf20575e2f763859", "name": "Commented-code block (6 lines) in lib/db/products.ts:6", "shortDescription": {"text": "Commented-code block (6 lines) in lib/db/products.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-05176ae925bade00", "name": "Commented-code block (6 lines) in lib/db/trending.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/db/trending.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7c7717becc3a49f9", "name": "Commented-code block (6 lines) in lib/db/transaction-fees.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/db/transaction-fees.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e501696db51a1ea7", "name": "Commented-code block (6 lines) in lib/db/categories.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/db/categories.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d88e67092599e81b", "name": "Commented-code block (5 lines) in lib/db/gallery.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/db/gallery.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f06a094a5dd71eeb", "name": "Commented-code block (5 lines) in lib/db/orders.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/db/orders.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6509de30cdc8d8f6", "name": "Commented-code block (5 lines) in lib/db/drops.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/db/drops.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f07d6cee106b6294", "name": "Commented-code block (6 lines) in lib/db/admin-audit.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/db/admin-audit.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-41e9e06fb386b767", "name": "Commented-code block (7 lines) in lib/db/admin.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in lib/db/admin.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5f092da4c5298513", "name": "Commented-code block (6 lines) in lib/db/tracking.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/db/tracking.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-04be92a09cba5556", "name": "Commented-code block (7 lines) in lib/db/buyers.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in lib/db/buyers.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-57037518d7e4807b", "name": "Commented-code block (5 lines) in lib/db/referrals.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/db/referrals.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-db4f141252d13e1a", "name": "Commented-code block (5 lines) in lib/db/promotions.ts:6", "shortDescription": {"text": "Commented-code block (5 lines) in lib/db/promotions.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-2485a693abfa8172", "name": "Commented-code block (6 lines) in lib/db/seller-preferences.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/db/seller-preferences.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2b99a04461dde239", "name": "Commented-code block (6 lines) in lib/db/activation.ts:6", "shortDescription": {"text": "Commented-code block (6 lines) in lib/db/activation.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-46df563edf00f0a5", "name": "Commented-code block (5 lines) in lib/db/subscriptions.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/db/subscriptions.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c55b3e19c92f6908", "name": "Commented-code block (6 lines) in lib/shipping/rates.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/shipping/rates.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-98464558bbce3c92", "name": "Commented-code block (6 lines) in lib/reputation/tiers.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/reputation/tiers.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-66f1f034c246654b", "name": "Commented-code block (7 lines) in lib/seo/should-index.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in lib/seo/should-index.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b5f1e1ddf784dc6d", "name": "Commented-code block (5 lines) in lib/seo/json-ld.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in lib/seo/json-ld.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-33174ab9a50a6fd3", "name": "Commented-code block (6 lines) in lib/export/reports.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in lib/export/reports.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6f1615122a2fef19", "name": "Commented-code block (11 lines) in public/sw.js:1", "shortDescription": {"text": "Commented-code block (11 lines) in public/sw.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-11aac70b0c9c1f03", "name": "`fetch()` without try/.catch or AbortSignal \u2014 public/sw.js:139", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/sw.js:139"}, "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-eb08d3ac870e7483", "name": "Commented-code block (6 lines) in e2e/api.spec.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in e2e/api.spec.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fb194575f4e6baaf", "name": "Commented-code block (7 lines) in e2e/buyer-flow.spec.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in e2e/buyer-flow.spec.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5a67b581b7c2ac41", "name": "Commented-code block (6 lines) in e2e/auth.spec.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in e2e/auth.spec.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1f1fb13461d7e4bb", "name": "Commented-code block (6 lines) in e2e/marketplace.spec.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in e2e/marketplace.spec.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-09e61bdef7cfd271", "name": "Commented-code block (6 lines) in e2e/seller-flow.spec.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in e2e/seller-flow.spec.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-956d630324b5dc88", "name": "Commented-code block (5 lines) in e2e/static.spec.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in e2e/static.spec.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-18a6f4e560610437", "name": "Commented-code block (6 lines) in e2e/landing.spec.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in e2e/landing.spec.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5c41bb1a1f430bd6", "name": "39 env vars used in code but missing from .env.example", "shortDescription": {"text": "39 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `ADMIN_USER_IDS`, `BG_REMOVAL_API_KEY`, `CI`, `CLERK_WEBHOOK_SECRET`, `CRON_SECRET`, `NEXT_PUBLIC_BASE_URL`, `NEXT_PUBLIC_FF_BG_REMOVAL`, `NEXT_PUBLIC_FF_BUYER_ACCOUNTS` + 31 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}}]}}, "automationDetails": {"id": "repobility/23173"}, "properties": {"repository": "yasinjemal/TradeFeed", "repoUrl": "https://github.com/yasinjemal/TradeFeed", "branch": "main"}, "results": [{"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: yasinjemal/TradeFeed"}, "properties": {"repobilityId": 431370, "scanner": "foundry_dataset", "fingerprint": "a77f04b8653b7cd1bc4207286e7e07b8973b0a9718171ce6ff01dfbdb1b1f16d", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"keys": ["bug_fix", "claimed_resolved_unverified", "human_feedback_general", "ui_or_frontend", "human_reported_issue_then_fix_attempt", "human_reported_issue_no_linked_fix", "not_resolved_or_not_observed", "unlinked_human_feedback", "ambiguous_needs_more_evidence", "thread_has_human_issue_and_fix_context", "issue_or_pull_request_thread", "runtime_failure", "deployment_env_gap", "data_schema_persistence", "build_install_failure", "positive_human_signal", "source_or_other", "dependency_or_build", "positive_feedback_no_linked_change", "human_positive_or_acceptance_signal", "blueprint_human_gap_disagreement", "mostly follows blueprint"], "count": 22, "_omitted": "large_dict"}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"claimed_resolved_unverified": 8, "not_resolved_or_not_observed": 4, "ambiguous_needs_more_evidence": 4, "human_positive_or_acceptance_signal": 2}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 88, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 7, "thread_has_comment": 5, "thread_touches_file": 4, "thread_has_pr_review": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 10, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 4, "thread_has_comment_chain": 7, "comment_chain_links_commit": 7, "comment_chain_touches_file": 28, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 7}, "node_count": 40, "node_types": {"repo": 1, "commit": 6, "thread": 1, "comment": 5, "pr_file": 4, "alignment": 1, "pr_review": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 10, "comment_chain": 7, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "yasinjemal/TradeFeed#5", "issue_number": "5", "quality_tiers": {"unresolved": 5, "assumption_check": 1, "weak_supervision": 4}, "repo_full_name": "yasinjemal/TradeFeed", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-6793679d0bdc60b9", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"ui_or_frontend": 20, "source_or_other": 10, "dependency_or_build": 10}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: weak_supervision_needs_review\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#5\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#5\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yasinjemal/TradeFeed#5\nRepo: yasinjemal/TradeFeed\nIssue/PR number: 5\nGraph consistency label: weak_supervision_needs_review\nNodes: 40\nEdges: 88\nNode types: {'link_quality': 10, 'comment_chain': 7, 'commit': 6, 'comment': 5, 'pr_file': 4, 'pr_review': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_touches_file': 28, 'chain_has_link_quality': 10, 'thread_has_comment_chain': 7, 'comment_has_chain': 7, 'comment_chain_links_commit': 7, 'issue_chain_has_comment_chain': 7, 'thread_has_comment': 5, 'thread_touches_file': 4, 'issue_chain_touches_file': 4, 'thread_has_pr_review': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1}\nLabels: {'bug_fix': 6, 'claimed_resolved_unverified': 4, 'human_feedback_general': 2, 'ui_or_frontend': 2, 'human_reported_issue_then_fix_attempt': 2, 'human_reported_issue_no_linked_fix': 2, 'not_resolved_or_not_observed': 2, 'unlinked_human_feedback': 2, 'ambiguous_needs_more_evidence': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'runtime_failure': 1, 'deployment_env_gap': 1, 'data_schema_persistence': 1, 'build_install_failure': 1, 'positive_human_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 8, 'not_resolved_or_not_observed': 4, 'ambiguous_needs_more_evidence': 4, 'human_positive_or_acceptance_signal': 2}\nQuality tiers: {'unresolved': 5, 'weak_supervision': 4, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/yasinjemal/TradeFeed", "source_id": "graph-query-motif_query-b352e1871158644a", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/unresolved_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "yasinjemal/TradeFeed", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: yasinjemal/TradeFeed"}, "properties": {"repobilityId": 431369, "scanner": "foundry_dataset", "fingerprint": "e9fb59db04a66a47b9c57574fb0620852e34b36b1ec057b36e9736bf2a2b8643", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"bug_fix": 3, "test_ci_gap": 1, "deployment_env_gap": 1, "api_integration_gap": 1, "dependency_or_build": 1, "verification_or_tests": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 4, "blueprint_human_gap_disagreement": 2, "human_reported_issue_no_linked_fix": 2, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 8, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 34, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 3, "thread_has_comment": 2, "thread_has_pr_review": 1, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 7, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 3, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 3}, "node_count": 25, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 2, "alignment": 2, "pr_review": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 7, "comment_chain": 3, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "yasinjemal/TradeFeed#4", "issue_number": "4", "quality_tiers": {"unresolved": 2, "assumption_check": 2, "weak_supervision": 3}, "repo_full_name": "yasinjemal/TradeFeed", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-749455afabe8f4d2", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: supported_by_verification_signal\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#4\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#4\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yasinjemal/TradeFeed#4\nRepo: yasinjemal/TradeFeed\nIssue/PR number: 4\nGraph consistency label: supported_by_verification_signal\nNodes: 25\nEdges: 34\nNode types: {'link_quality': 7, 'commit': 5, 'comment_chain': 3, 'comment': 2, 'alignment': 2, 'thread': 1, 'repo': 1, 'pr_review': 1, 'issue_chain': 1, 'fix_outcome': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 7, 'comment_chain_links_commit': 5, 'thread_has_comment_chain': 3, 'comment_has_chain': 3, 'issue_chain_has_comment_chain': 3, 'thread_has_comment': 2, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_pr_review': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 4, 'bug_fix': 3, 'human_reported_issue_no_linked_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'blueprint_human_gap_disagreement': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'deployment_env_gap': 1, 'api_integration_gap': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'dependency_or_build': 1, 'verification_or_tests': 1, 'claimed_resolved_with_verification_signal': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 8, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'weak_supervision': 3, 'unresolved': 2, 'assumption_check': 2}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/yasinjemal/TradeFeed", "source_id": "graph-query-motif_query-d425275b7e95fd9c", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/unresolved_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "yasinjemal/TradeFeed", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: yasinjemal/TradeFeed"}, "properties": {"repobilityId": 431368, "scanner": "foundry_dataset", "fingerprint": "08a5055de01e83d456e5327c9db5f6b7037c85b4b8cb6e1ce073c025e54a4dbd", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"bug_fix": 4, "ui_or_frontend": 3, "runtime_failure": 1, "source_or_other": 1, "deployment_env_gap": 1, "dependency_or_build": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 1, "human_reported_issue_no_linked_fix": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"claimed_resolved_unverified": 6, "not_resolved_or_not_observed": 2}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 37, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 4, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 4, "thread_has_comment_chain": 2, "comment_chain_links_commit": 5, "comment_chain_touches_file": 8, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 21, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 2, "pr_file": 4, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "yasinjemal/TradeFeed#3", "issue_number": "3", "quality_tiers": {"unresolved": 1, "weak_supervision": 3}, "repo_full_name": "yasinjemal/TradeFeed", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-acc16c091485c814", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"ui_or_frontend": 15, "source_or_other": 5}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: weak_supervision_needs_review\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#3\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#3\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yasinjemal/TradeFeed#3\nRepo: yasinjemal/TradeFeed\nIssue/PR number: 3\nGraph consistency label: weak_supervision_needs_review\nNodes: 21\nEdges: 37\nNode types: {'commit': 5, 'pr_file': 4, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_touches_file': 8, 'comment_chain_links_commit': 5, 'thread_touches_file': 4, 'chain_has_link_quality': 4, 'issue_chain_touches_file': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 4, 'ui_or_frontend': 3, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'runtime_failure': 1, 'deployment_env_gap': 1, 'source_or_other': 1, 'human_reported_issue_then_fix_attempt': 1, 'dependency_or_build': 1, 'human_reported_issue_no_linked_fix': 1, 'not_resolved_or_not_observed': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'not_resolved_or_not_observed': 2}\nQuality tiers: {'weak_supervision': 3, 'unresolved': 1}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/yasinjemal/TradeFeed", "source_id": "graph-query-motif_query-ea3de89a0a935b67", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/unresolved_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "yasinjemal/TradeFeed", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: yasinjemal/TradeFeed"}, "properties": {"repobilityId": 431367, "scanner": "foundry_dataset", "fingerprint": "a5e22b17ebc8ced6c235f6195557fd9e9f62ad18a2ef53468b354f48f99bfd0a", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"bug_fix": 4, "ui_or_frontend": 1, "runtime_failure": 1, "source_or_other": 1, "deployment_env_gap": 1, "dependency_or_build": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 1, "human_reported_issue_no_linked_fix": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"claimed_resolved_unverified": 6, "not_resolved_or_not_observed": 2}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 29, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 2, "thread_has_comment_chain": 2, "comment_chain_links_commit": 5, "comment_chain_touches_file": 4, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 19, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 2, "pr_file": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "yasinjemal/TradeFeed#2", "issue_number": "2", "quality_tiers": {"unresolved": 1, "weak_supervision": 3}, "repo_full_name": "yasinjemal/TradeFeed", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-a3b38c666af1380b", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"ui_or_frontend": 5, "source_or_other": 5}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: weak_supervision_needs_review\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#2\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#2\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yasinjemal/TradeFeed#2\nRepo: yasinjemal/TradeFeed\nIssue/PR number: 2\nGraph consistency label: weak_supervision_needs_review\nNodes: 19\nEdges: 29\nNode types: {'commit': 5, 'link_quality': 4, 'comment': 2, 'pr_file': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'comment_chain_touches_file': 4, 'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_touches_file': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'issue_chain_touches_file': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 4, 'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'runtime_failure': 1, 'deployment_env_gap': 1, 'ui_or_frontend': 1, 'source_or_other': 1, 'human_reported_issue_then_fix_attempt': 1, 'dependency_or_build': 1, 'human_reported_issue_no_linked_fix': 1, 'not_resolved_or_not_observed': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'not_resolved_or_not_observed': 2}\nQuality tiers: {'weak_supervision': 3, 'unresolved': 1}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/yasinjemal/TradeFeed", "source_id": "graph-query-motif_query-9be4136205ab7581", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/unresolved_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "yasinjemal/TradeFeed", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: yasinjemal/TradeFeed"}, "properties": {"repobilityId": 431366, "scanner": "foundry_dataset", "fingerprint": "36152335219a7cedfa91178155c7afcd9566f8eaff3e4f45671ff66d7401ba84", "category": "practices", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback without linked fix evidence", "intent": "Negative/unresolved examples that should not be hallucinated into fixes.", "labels": {"bug_fix": 3, "runtime_failure": 1, "source_or_other": 1, "deployment_env_gap": 1, "dependency_or_build": 1, "verification_or_tests": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 3, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 2, "claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 25, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 5, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 18, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 2, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "yasinjemal/TradeFeed#1", "issue_number": "1", "quality_tiers": {"unresolved": 1, "weak_supervision": 3}, "repo_full_name": "yasinjemal/TradeFeed", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-d655e97554a39d72", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {"source_or_other": 5}}, "text": "Graph query export: Human feedback without linked fix evidence\nQuery id: unresolved_feedback\nQuery type: motif_query\nIntent: Negative/unresolved examples that should not be hallucinated into fixes.\nMotif: unlinked_feedback_needs_evidence\nTraining usage: negative_or_unresolved\nGraph gold label: supported_by_verification_signal\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#1\nEvidence:\nGraph motif: Human feedback exists without a linked fix\nMotif id: unlinked_feedback_needs_evidence\nPolarity: bad\nTraining usage: negative_or_unresolved\nSeverity: medium\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#1\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yasinjemal/TradeFeed#1\nRepo: yasinjemal/TradeFeed\nIssue/PR number: 1\nGraph consistency label: supported_by_verification_signal\nNodes: 18\nEdges: 25\nNode types: {'commit': 5, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'bug_fix': 3, 'claimed_resolved_with_verification_signal': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'runtime_failure': 1, 'deployment_env_gap': 1, 'source_or_other': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'dependency_or_build': 1, 'verification_or_tests': 1, 'human_reported_issue_no_linked_fix': 1, 'not_resolved_or_not_observed': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6, 'not_resolved_or_not_observed': 2}\nQuality tiers: {'weak_supervision': 3, 'unresolved': 1}\nCI labels: {}\nCurriculum targets:\n- Teach models to preserve unresolved human feedback instead of hallucinating fixes.\n- Build issue-to-regression examples where no accepted fix exists yet.\nAssumption checks:\n- Can a commit be linked by issue number, SHA, changed path, or time window?\n- If no link exists, is this explicitly labelled unresolved?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/yasinjemal/TradeFeed", "source_id": "graph-query-motif_query-8cfb7d2b96654287", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/unresolved_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "yasinjemal/TradeFeed", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: yasinjemal/TradeFeed"}, "properties": {"repobilityId": 405652, "scanner": "foundry_dataset", "fingerprint": "4f07ebbc48541b73c44e7e7078ddd927a8327f339433ccb0a75e17a77c5e9e02", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 2, "ui_or_frontend": 1, "deployment_env_gap": 1, "api_integration_gap": 1, "build_install_failure": 1, "mostly follows blueprint": 1, "claimed_resolved_unverified": 5, "issue_or_pull_request_thread": 1, "blueprint_human_gap_disagreement": 1, "human_reported_issue_then_fix_attempt": 3, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_unverified": 10}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 35, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 3, "thread_has_comment": 2, "thread_touches_file": 1, "thread_has_pr_review": 1, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 6, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 3, "comment_chain_links_commit": 5, "comment_chain_touches_file": 3, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 3}, "node_count": 21, "node_types": {"repo": 1, "commit": 2, "thread": 1, "comment": 2, "pr_file": 1, "alignment": 1, "pr_review": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 3, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "yasinjemal/TradeFeed#6", "issue_number": "6", "quality_tiers": {"high_confidence": 4, "assumption_check": 1, "weak_supervision": 1}, "repo_full_name": "yasinjemal/TradeFeed", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-a806675e54c274e6", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"ui_or_frontend": 6}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_high_confidence_link\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#6\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#6\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yasinjemal/TradeFeed#6\nRepo: yasinjemal/TradeFeed\nIssue/PR number: 6\nGraph consistency label: supported_by_high_confidence_link\nNodes: 21\nEdges: 35\nNode types: {'link_quality': 6, 'comment_chain': 3, 'comment': 2, 'commit': 2, 'thread': 1, 'repo': 1, 'pr_review': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 6, 'comment_chain_links_commit': 5, 'thread_has_comment_chain': 3, 'comment_has_chain': 3, 'comment_chain_touches_file': 3, 'issue_chain_has_comment_chain': 3, 'thread_has_comment': 2, 'repo_has_thread': 1, 'thread_has_pr_review': 1, 'thread_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1}\nLabels: {'claimed_resolved_unverified': 5, 'human_reported_issue_then_fix_attempt': 3, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'build_install_failure': 1, 'deployment_env_gap': 1, 'api_integration_gap': 1, 'ui_or_frontend': 1, 'blueprint_human_gap_disagreement': 1, 'mostly follows blueprint': 1}\nOutcomes: {'claimed_resolved_unverified': 10}\nQuality tiers: {'high_confidence': 4, 'weak_supervision': 1, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/yasinjemal/TradeFeed", "source_id": "graph-query-motif_query-0a0c2e87b24be657", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "yasinjemal/TradeFeed", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: yasinjemal/TradeFeed"}, "properties": {"repobilityId": 405651, "scanner": "foundry_dataset", "fingerprint": "a397d65dc7cc89997e84a77f1d9ed0f9d167c35ae6dd9de542734accc44c69ae", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"keys": ["bug_fix", "claimed_resolved_unverified", "human_feedback_general", "ui_or_frontend", "human_reported_issue_then_fix_attempt", "human_reported_issue_no_linked_fix", "not_resolved_or_not_observed", "unlinked_human_feedback", "ambiguous_needs_more_evidence", "thread_has_human_issue_and_fix_context", "issue_or_pull_request_thread", "runtime_failure", "deployment_env_gap", "data_schema_persistence", "build_install_failure", "positive_human_signal", "source_or_other", "dependency_or_build", "positive_feedback_no_linked_change", "human_positive_or_acceptance_signal", "blueprint_human_gap_disagreement", "mostly follows blueprint"], "count": 22, "_omitted": "large_dict"}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"claimed_resolved_unverified": 8, "not_resolved_or_not_observed": 4, "ambiguous_needs_more_evidence": 4, "human_positive_or_acceptance_signal": 2}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 88, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 7, "thread_has_comment": 5, "thread_touches_file": 4, "thread_has_pr_review": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 10, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 4, "thread_has_comment_chain": 7, "comment_chain_links_commit": 7, "comment_chain_touches_file": 28, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 7}, "node_count": 40, "node_types": {"repo": 1, "commit": 6, "thread": 1, "comment": 5, "pr_file": 4, "alignment": 1, "pr_review": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 10, "comment_chain": 7, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "yasinjemal/TradeFeed#5", "issue_number": "5", "quality_tiers": {"unresolved": 5, "assumption_check": 1, "weak_supervision": 4}, "repo_full_name": "yasinjemal/TradeFeed", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-d45b0207e2e58cf8", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"ui_or_frontend": 20, "source_or_other": 10, "dependency_or_build": 10}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: weak_supervision_needs_review\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#5\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#5\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yasinjemal/TradeFeed#5\nRepo: yasinjemal/TradeFeed\nIssue/PR number: 5\nGraph consistency label: weak_supervision_needs_review\nNodes: 40\nEdges: 88\nNode types: {'link_quality': 10, 'comment_chain': 7, 'commit': 6, 'comment': 5, 'pr_file': 4, 'pr_review': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_touches_file': 28, 'chain_has_link_quality': 10, 'thread_has_comment_chain': 7, 'comment_has_chain': 7, 'comment_chain_links_commit': 7, 'issue_chain_has_comment_chain': 7, 'thread_has_comment': 5, 'thread_touches_file': 4, 'issue_chain_touches_file': 4, 'thread_has_pr_review': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1}\nLabels: {'bug_fix': 6, 'claimed_resolved_unverified': 4, 'human_feedback_general': 2, 'ui_or_frontend': 2, 'human_reported_issue_then_fix_attempt': 2, 'human_reported_issue_no_linked_fix': 2, 'not_resolved_or_not_observed': 2, 'unlinked_human_feedback': 2, 'ambiguous_needs_more_evidence': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'runtime_failure': 1, 'deployment_env_gap': 1, 'data_schema_persistence': 1, 'build_install_failure': 1, 'positive_human_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 8, 'not_resolved_or_not_observed': 4, 'ambiguous_needs_more_evidence': 4, 'human_positive_or_acceptance_signal': 2}\nQuality tiers: {'unresolved': 5, 'weak_supervision': 4, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/yasinjemal/TradeFeed", "source_id": "graph-query-motif_query-d0c1d8dcf0a97847", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "yasinjemal/TradeFeed", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_blueprint_gap", "level": "warning", "message": {"text": "Foundry mined blueprint gap alignment: yasinjemal/TradeFeed"}, "properties": {"repobilityId": 405650, "scanner": "foundry_dataset", "fingerprint": "4cb45b6d421ddde77d30d01b97a6665ce26a9baa28d18cc270c8893c9d853e65", "category": "tech_debt", "severity": "medium", "confidence": 0.7, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Human feedback aligned with blueprint or architecture gaps", "intent": "Curriculum-gap examples connecting issue threads to helicopter-view gaps.", "labels": {"bug_fix": 3, "test_ci_gap": 1, "deployment_env_gap": 1, "api_integration_gap": 1, "dependency_or_build": 1, "verification_or_tests": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 4, "blueprint_human_gap_disagreement": 2, "human_reported_issue_no_linked_fix": 2, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "blueprint_gap_alignment", "outcomes": {"not_resolved_or_not_observed": 8, "claimed_resolved_with_verification_signal": 2}, "polarity": "mixed", "query_id": "blueprint_gap_alignment", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 34, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 3, "thread_has_comment": 2, "thread_has_pr_review": 1, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 7, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 3, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 3}, "node_count": 25, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 2, "alignment": 2, "pr_review": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 7, "comment_chain": 3, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "yasinjemal/TradeFeed#4", "issue_number": "4", "quality_tiers": {"unresolved": 2, "assumption_check": 2, "weak_supervision": 3}, "repo_full_name": "yasinjemal/TradeFeed", "training_usage": "curriculum_gap", "source_motif_id": "graph-pattern-motif-thread-d6801dc58e5fef7e", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Human feedback aligned with blueprint or architecture gaps\nQuery id: blueprint_gap_alignment\nQuery type: motif_query\nIntent: Curriculum-gap examples connecting issue threads to helicopter-view gaps.\nMotif: blueprint_gap_alignment\nTraining usage: curriculum_gap\nGraph gold label: supported_by_verification_signal\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#4\nEvidence:\nGraph motif: Human feedback aligns with blueprint or architecture gaps\nMotif id: blueprint_gap_alignment\nPolarity: mixed\nTraining usage: curriculum_gap\nSeverity: medium\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#4\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yasinjemal/TradeFeed#4\nRepo: yasinjemal/TradeFeed\nIssue/PR number: 4\nGraph consistency label: supported_by_verification_signal\nNodes: 25\nEdges: 34\nNode types: {'link_quality': 7, 'commit': 5, 'comment_chain': 3, 'comment': 2, 'alignment': 2, 'thread': 1, 'repo': 1, 'pr_review': 1, 'issue_chain': 1, 'fix_outcome': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 7, 'comment_chain_links_commit': 5, 'thread_has_comment_chain': 3, 'comment_has_chain': 3, 'issue_chain_has_comment_chain': 3, 'thread_has_comment': 2, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_pr_review': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 4, 'bug_fix': 3, 'human_reported_issue_no_linked_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'blueprint_human_gap_disagreement': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'deployment_env_gap': 1, 'api_integration_gap': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'dependency_or_build': 1, 'verification_or_tests': 1, 'claimed_resolved_with_verification_signal': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 8, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'weak_supervision': 3, 'unresolved': 2, 'assumption_check': 2}\nCI labels: {}\nCurriculum targets:\n- Use helicopter-view architecture/schema/design evidence beside issue threads.\n- Teach models to compare requested product class against implementation layers.\nAssumption checks:\n- Which blueprint layer is absent: frontend, API, data, auth, tests, or deployment?\n- Does human feedback confirm the same architectural gap?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/yasinjemal/TradeFeed", "source_id": "graph-query-motif_query-fc670a4eb34f22c9", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/blueprint_gap_alignment/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "yasinjemal/TradeFeed", "source_dataset": "graph_queries/blueprint_gap_alignment", "training_usage": "curriculum_gap"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: yasinjemal/TradeFeed"}, "properties": {"repobilityId": 384302, "scanner": "foundry_dataset", "fingerprint": "30e5d4c385182b908b6cabbd715efc5857aac49dc766d50650efedeefd4ae123", "category": "practices", "severity": "medium", "confidence": 0.62, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "comment_chain_pattern_product", "source": "comment_chain_pattern_miner", "product": "assumption_checks", "synthetic": false, "thread_key": "yasinjemal/TradeFeed#7", "human_labels": ["deployment_env_gap", "docs_or_claims", "security_auth_secret"], "issue_number": "7", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.795, "repo_full_name": "yasinjemal/TradeFeed", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-5aec7f10390c5d72", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 1, "docs": 4, "tests": 1, "routes_api": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"docs_or_claims": 1}, "linked_commit_count": 6, "helicopter_view_count": 2, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#7\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: yasinjemal/TradeFeed#7\nRepo: yasinjemal/TradeFeed\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 6\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'security_auth_secret': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {'docs_or_claims': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-25f1f3d5e7f5d91c\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/yasinjemal/TradeFeed/pull/7\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: yasinjemal/TradeFeed\\nAuthor: Copilot (Bot)\\nURL: https://github.com/yasinjemal/TradeFeed/pull/7\\nTitle: docs: add TradeFeed platform redesign master document\\nBody:\\nCreates a structured single-source-of-truth redesign document covering the full TradeFeed platform \u2014 auditing current state, defining the design system, and laying out a phased implementation roadmap.\\n\\n## Added: `/docs/tradefeed-redesign.md`\\n\\n- **Project Overview** \u2014 platform summary, full tech stack table, goals, and 4 target user personas\\n- **Current Problems Audit** \u2014 9 UI issues, 10 UX friction points, 7 trust gaps, 10 missing features; all tagged with severity and location\\n- **Design System** \u2014 brand color tokens (mapped from `globals.css`), Inter typography scale, spacing conventions, border radius tokens, and canonical button/card/badge styles\\n- **Page Breakdown (Roadmap)** \u2014 8 pages (Homepage, Marketplace, Product Page, Add Product, Dashboard, Seller Shop, Auth, Profile) each with `Status`, `Priority`, and specific improvement items\\n- **Component Inventory** \u2014 specs for 8 reusable components (`ProductCard`, `SellerCard`, `TrustBadge`,\"\n  },\n  {\n    \"id\": \"github-feedback-comment-9b3419856b6263b6\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/yasinjemal/TradeFeed/pull/7#issuecomment-4084957430\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: yasinjemal/TradeFeed\\nAuthor: vercel[bot] (Bot)\\nURL: https://github.com/yasinjemal/TradeFeed/pull/7#issuecomment-4084957430\\nTitle: \\nBody:\\n[vc]: #B8LZL7lEDuCaT58zcmAinPhjjF/UoR5Ll9NvqzEk/5s=:eyJpc01vbm9yZXBvIjp0cnVlLCJ0eXBlIjoiZ2l0aHViIiwicHJvamVjdHMiOlt7Im5hbWUiOiJ0cmFkZS1mZWVkIiwicHJvamVjdElkIjoicHJqX3FrWkVHYnRxc2l2c1NrQU51aFJOZklV\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/yasinjemal/TradeFeed", "source_id": "comment-chain-pattern-assumption_checks-9ac58cf4a023b957", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "yasinjemal/TradeFeed", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: yasinjemal/TradeFeed"}, "properties": {"repobilityId": 384301, "scanner": "foundry_dataset", "fingerprint": "a9d116358cb7eb0f0ff975cefde2405351873ac54dbaa9141233bb0c8799057a", "category": "practices", "severity": "medium", "confidence": 0.62, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "comment_chain_pattern_product", "source": "comment_chain_pattern_miner", "product": "assumption_checks", "synthetic": false, "thread_key": "yasinjemal/TradeFeed#6", "human_labels": ["api_integration_gap", "build_install_failure", "deployment_env_gap", "ui_or_frontend"], "issue_number": "6", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.912, "repo_full_name": "yasinjemal/TradeFeed", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-0879b8cc760560a9", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 1, "docs": 4, "tests": 1, "routes_api": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 1, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"ui_or_frontend": 1}, "linked_commit_count": 5, "helicopter_view_count": 2, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#6\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_high_confidence, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: yasinjemal/TradeFeed#6\nRepo: yasinjemal/TradeFeed\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 3\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'build_install_failure': 1, 'deployment_env_gap': 1, 'api_integration_gap': 1}\nPolarities: {'bad': 3}\nChanged file labels: {'ui_or_frontend': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-e4119db712edce2f\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"build_install_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/yasinjemal/TradeFeed/pull/6\",\n    \"text\": \"GitHub feedback: build_install_failure\\nPolarity: bad\\nKind: pull_request_body\\nRepo: yasinjemal/TradeFeed\\nAuthor: Copilot (Bot)\\nURL: https://github.com/yasinjemal/TradeFeed/pull/6\\nTitle: fix: remove extra closing brace in sign-in page JSX comment\\nBody:\\nTurbopack build was failing due to a stray `}` after a JSX comment in the sign-in page, producing an `Unexpected token` parse error.\\n\\n### Change\\n\\n- **`app/sign-in/[[...sign-in]]/page.tsx`** \u2014 removed duplicate `}` on line 32\\n\\n```diff\\n- {/* Background decorative circles */}}\\n+ {/* Background decorative circles */}\\n```\\n\\n<!-- START COPILOT ORIGINAL PROMPT -->\\n\\n\\n\\n<details>\\n\\n<summary>Original prompt</summary>\\n\\n> ## Bug\\n> \\n> The Turbopack build fails due to a syntax error in `app/sign-in/[[...sign-in]]/page.tsx` on line 32.\\n> \\n> ### Error\\n> \\n> ```\\n> Parsing ecmascript source code failed\\n> > 32 |         {/* Background decorative circles */}}\\n>      |                                              ^\\n> Unexpected token. Did you mean `{'}'}` or `&rbrace;`?\\n> ```\\n> \\n> ### Fix\\n> \\n> On line 32, there is an extra closing curly brace `}` after the JSX comment. Change:\\n> \\n> ```tsx\\n> {/* Background decorative circles */}}\\n> ```\\n> \\n> to:\\n> \\n> ```tsx\\n> {/\"\n  },\n  {\n    \"id\": \"github-feedback-comment-7f63cb9cd99df15a\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/yasinjemal/TradeFeed/pull/6#issuecomment-4079295080\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: yasinjemal/TradeFeed\\nAuthor: vercel[bot] (Bot)\\nURL: https://github.com/yasinjemal/TradeFeed/pull/6#issuecomment-4079295080\\nTitle: \\nBody:\\n[vc]: #+Vx8UlXMu3ryyG6C/3gkvrD/oZrNhZ/E7Pg15RPitfI=:eyJpc01vbm9yZXBvIjp0cnVlLCJ0eXBlIjoiZ2l0aHViIiwicHJvamVjdHMiOlt7Im5hbWUiOiJ0cmFkZS\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/yasinjemal/TradeFeed", "source_id": "comment-chain-pattern-assumption_checks-7b78c078db51bd64", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "yasinjemal/TradeFeed", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: yasinjemal/TradeFeed"}, "properties": {"repobilityId": 384300, "scanner": "foundry_dataset", "fingerprint": "34bd573dc89789ba4e6f2ed93cd4e2637e8a8cbb9dbf2ca3e6bf98682c8c9ac9", "category": "practices", "severity": "medium", "confidence": 0.62, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "comment_chain_pattern_product", "source": "comment_chain_pattern_miner", "product": "assumption_checks", "synthetic": false, "thread_key": "yasinjemal/TradeFeed#5", "human_labels": ["build_install_failure", "data_schema_persistence", "dependency_or_build", "deployment_env_gap", "human_feedback_general", "positive_human_signal", "runtime_failure", "source_or_other", "ui_or_frontend"], "issue_number": "5", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.65, "repo_full_name": "yasinjemal/TradeFeed", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-ad5877d83cb82db1", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 1, "docs": 4, "tests": 1, "routes_api": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 4, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"ui_or_frontend": 2, "source_or_other": 1, "dependency_or_build": 1}, "linked_commit_count": 7, "helicopter_view_count": 2, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#5\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: yasinjemal/TradeFeed#5\nRepo: yasinjemal/TradeFeed\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 7\nLinked commit count: 7\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 4\nLabels: {'runtime_failure': 1, 'deployment_env_gap': 1, 'human_feedback_general': 2, 'data_schema_persistence': 1, 'build_install_failure': 1, 'positive_human_signal': 1}\nPolarities: {'bad': 4, 'neutral': 2, 'good': 1}\nChanged file labels: {'ui_or_frontend': 2, 'source_or_other': 1, 'dependency_or_build': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-2f069e5c3be37b66\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"runtime_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/yasinjemal/TradeFeed/pull/5\",\n    \"text\": \"GitHub feedback: runtime_failure\\nPolarity: bad\\nKind: pull_request_body\\nRepo: yasinjemal/TradeFeed\\nAuthor: Copilot (Bot)\\nURL: https://github.com/yasinjemal/TradeFeed/pull/5\\nTitle: Fix checkout: surface real errors instead of swallowing them as generic \\\"Failed to place order\\\"\\nBody:\\n`checkoutAction`'s catch block unconditionally returned a generic message, hiding the real failure reason. `validateStock` also couldn't distinguish inactive/missing variants from genuinely out-of-stock ones, and `createOrder` threw an opaque internal error containing a raw `variantId`.\\n\\n## Server (`lib/db/orders.ts`)\\n- `StockValidationResult.errors` gains `unavailable?: boolean` \u2014 set when a variant isn't found with `isActive: true`, vs `available < requested` for actual stock shortfalls\\n- `createOrder` throws a user-readable message using the product name instead of the internal `variantId`:\\n  ```ts\\n  // Before\\n  throw new Error(`Variant not found or inactive: ${item.variantId}`);\\n  // After\\n  throw new Error(`\\\"${item.productName}\\\" is no longer available. Please remove it from your cart and try again.`);\\n  ```\\n\\n## Action (`app/actions/orders.ts`)\\n- Catch block propagates `error.message` when the thrown e\"\n  },\n  {\n    \"id\": \"github-feedback-comment-f91b160fa5c363f0\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/yasinjemal/TradeFeed/pull/5#issuecomment-4035042456\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: yasinjemal/TradeFeed\\nAuthor: vercel[bot] (Bot)\\nURL: https://github.com/yasinjemal/TradeFeed/pull/5#issuecomment-4035042456\\nTitle: \\nBody:\\n[vc]: #MI\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/yasinjemal/TradeFeed", "source_id": "comment-chain-pattern-assumption_checks-7c3e39ba0b4edd06", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "yasinjemal/TradeFeed", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: yasinjemal/TradeFeed"}, "properties": {"repobilityId": 384299, "scanner": "foundry_dataset", "fingerprint": "9a7e356649f2f34823b1aef7309cbcdaa294a03f4e124d5d874b9e1c3c97a37b", "category": "practices", "severity": "medium", "confidence": 0.62, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "comment_chain_pattern_product", "source": "comment_chain_pattern_miner", "product": "assumption_checks", "synthetic": false, "thread_key": "yasinjemal/TradeFeed#3", "human_labels": ["deployment_env_gap", "runtime_failure", "source_or_other", "ui_or_frontend"], "issue_number": "3", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.65, "repo_full_name": "yasinjemal/TradeFeed", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-aa956f8f3efe2fec", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 1, "docs": 4, "tests": 1, "routes_api": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 4, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"ui_or_frontend": 3, "source_or_other": 1}, "linked_commit_count": 5, "helicopter_view_count": 2, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#3\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: yasinjemal/TradeFeed#3\nRepo: yasinjemal/TradeFeed\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 4\nLabels: {'runtime_failure': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {'ui_or_frontend': 3, 'source_or_other': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-3beed4539708b98a\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"runtime_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/yasinjemal/TradeFeed/pull/3\",\n    \"text\": \"GitHub feedback: runtime_failure\\nPolarity: bad\\nKind: pull_request_body\\nRepo: yasinjemal/TradeFeed\\nAuthor: Copilot (Bot)\\nURL: https://github.com/yasinjemal/TradeFeed/pull/3\\nTitle: fix: resolve 4 pre-existing lint errors blocking CI\\nBody:\\nFour pre-existing lint errors were preventing CI from passing, blocking PR merges. Each fix is minimal and surgical.\\n\\n## Changes\\n\\n- **`app/global-error.tsx`** \u2014 Replace `<a href=\\\"/\\\">` with Next.js `<Link href=\\\"/\\\">` to satisfy `@next/next/no-html-link-for-pages`\\n- **`check-cols.js` \u2192 `check-cols.cjs`** \u2014 Rename to CommonJS extension so `require()` is valid; avoids rewriting a utility-only script to ESM\\n- **`components/admin/admin-shop-list.tsx`** \u2014 Hoist `Date.now()` out of the `.map()` render loop into `const now = Date.now()` in the component body to satisfy `react-hooks/purity`\\n- **`components/catalog/add-to-cart.tsx`** \u2014 Add missing `imageUrl` dep to `useCallback` to match React Compiler's inferred dependencies and resolve `react-hooks/preserve-manual-memoization`\\n\\n```tsx\\n// before\\n}, [selectedVariant, canAdd, addItem, productId, productName, option1Label, ...]);\\n\\n// after\\n}, [selectedVariant, canAdd, addItem, productId, productName, imageUrl, op\"\n  },\n  {\n    \"id\": \"github-feedback-comment-006fff1c115d52df\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/yasinjemal/TradeFeed/pull/3#issuecomment-4034979759\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: yasinjemal/TradeFeed\\nAuthor: vercel[bot] (Bot)\\nURL: https://github.com/yasinjemal/TradeFeed/pull/3#issuecomment-4034979759\\nTitle: \\nBody:\\n[vc]: #Hop3C1kyBwsE+7C4cUGJXJp9niJJTOYCYJy7ClFmiBc=:eyJpc01vbm9yZXBvIjp0cnVlLCJ0eXBlIjoiZ2l0aHViIiwicHJvamVjdHMiOlt7Im5hbWUiOiJ0cmFkZS1mZWVkIiwicHJvamVjdElkIjoicHJqX3FrWkVHYn\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/yasinjemal/TradeFeed", "source_id": "comment-chain-pattern-assumption_checks-9bb197cca68c5f0c", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "yasinjemal/TradeFeed", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: yasinjemal/TradeFeed"}, "properties": {"repobilityId": 384298, "scanner": "foundry_dataset", "fingerprint": "c6120365db0da87c490fc6cf765b83d512a6f07311ca8deff49b8192afe1de9b", "category": "practices", "severity": "medium", "confidence": 0.62, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "comment_chain_pattern_product", "source": "comment_chain_pattern_miner", "product": "assumption_checks", "synthetic": false, "thread_key": "yasinjemal/TradeFeed#2", "human_labels": ["deployment_env_gap", "runtime_failure", "source_or_other", "ui_or_frontend"], "issue_number": "2", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.65, "repo_full_name": "yasinjemal/TradeFeed", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-1eaa51104b212f60", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 1, "docs": 4, "tests": 1, "routes_api": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 2, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"ui_or_frontend": 1, "source_or_other": 1}, "linked_commit_count": 5, "helicopter_view_count": 2, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#2\nOutcome: claimed_resolved_unverified\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: yasinjemal/TradeFeed#2\nRepo: yasinjemal/TradeFeed\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 2\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 2\nLabels: {'runtime_failure': 1, 'deployment_env_gap': 1}\nPolarities: {'bad': 2}\nChanged file labels: {'ui_or_frontend': 1, 'source_or_other': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-99f73df83f4ede8b\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"runtime_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/yasinjemal/TradeFeed/pull/2\",\n    \"text\": \"GitHub feedback: runtime_failure\\nPolarity: bad\\nKind: pull_request_body\\nRepo: yasinjemal/TradeFeed\\nAuthor: Copilot (Bot)\\nURL: https://github.com/yasinjemal/TradeFeed/pull/2\\nTitle: Fix: checkout fails on all products due to whatsappMessage validation + silent errors\\nBody:\\n`checkoutAction` was throwing unhandled exceptions on every product, landing in the generic catch block. Two root causes: `whatsappMessage` was required in Zod but nullable in the DB, and all errors (validation + unexpected) were swallowed without logging.\\n\\n## Changes\\n\\n**`lib/validation/checkout.ts`**\\n- Made `whatsappMessage` optional to match `String?` in Prisma schema \u2014 previously an empty/undefined value would cause silent validation failure\\n\\n```ts\\n// before\\nwhatsappMessage: z.string().max(10000, \\\"Message too long\\\"),\\n\\n// after\\nwhatsappMessage: z.string().max(10000, \\\"Message too long\\\").optional().or(z.literal(\\\"\\\")),\\n```\\n\\n**`app/actions/orders.ts`**\\n- Added `console.error` when Zod validation fails, logging the full `parsed.error.issues` payload to Vercel Function logs\\n- Added `console.error` in the catch block before `reportError` to surface the actual exception message\\n\\n<!-- START COPILOT ORIGINAL PROMPT -->\\n\\n\\n\\n<d\"\n  },\n  {\n    \"id\": \"github-feedback-comment-d186060fae81678d\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/yasinjemal/TradeFeed/pull/2#issuecomment-4034950079\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: yasinjemal/TradeFeed\\nAuthor: vercel[bot] (Bot)\\nURL: https://github.com/yasinjemal/TradeFeed/pull/2#issuecomment-4034950079\\nTitle: \\nBody:\\n[vc]: #X9hgWJl+VyMWACh1mLsU67MBdx0+8hGksdxTAa4pLzc=:eyJpc01vbm9yZXBvIjp0cnVlLCJ0eXBlIjoiZ2l0aHViIiwicHJvamVjdHMiOlt7Im5hbWUiOiJ0cmFkZS1mZWVkIiwicHJvamVjdElkIjoicHJ\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/yasinjemal/TradeFeed", "source_id": "comment-chain-pattern-assumption_checks-6fcecea9028f5402", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/assumption_checks/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "yasinjemal/TradeFeed", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: yasinjemal/TradeFeed"}, "properties": {"repobilityId": 420949, "scanner": "foundry_dataset", "fingerprint": "9d5f35dcbc82f4276d0c716847a6bef9542ac858d693eebe02012a3d9d07e2e8", "category": "testing", "severity": "high", "confidence": 0.78, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Feedback exposes missing tests or CI", "intent": "Hard negatives for feedback/fix chains without adequate guardrails.", "labels": {"bug_fix": 3, "test_ci_gap": 1, "deployment_env_gap": 1, "api_integration_gap": 1, "dependency_or_build": 1, "verification_or_tests": 1, "mostly follows blueprint": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 4, "blueprint_human_gap_disagreement": 2, "human_reported_issue_no_linked_fix": 2, "thread_has_human_issue_and_fix_context": 2, "claimed_resolved_with_verification_signal": 1, "human_reported_issue_then_verified_fix_attempt": 1}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"not_resolved_or_not_observed": 8, "claimed_resolved_with_verification_signal": 2}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 34, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 3, "thread_has_comment": 2, "thread_has_pr_review": 1, "alignment_uses_comment": 2, "alignment_uses_finding": 2, "chain_has_link_quality": 7, "comment_aligns_finding": 2, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 3, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 3}, "node_count": 25, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 2, "alignment": 2, "pr_review": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 7, "comment_chain": 3, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "yasinjemal/TradeFeed#4", "issue_number": "4", "quality_tiers": {"unresolved": 2, "assumption_check": 2, "weak_supervision": 3}, "repo_full_name": "yasinjemal/TradeFeed", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-c9861f5e654c97ae", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Feedback exposes missing tests or CI\nQuery id: test_ci_gap_after_feedback\nQuery type: motif_query\nIntent: Hard negatives for feedback/fix chains without adequate guardrails.\nMotif: test_ci_gap_after_feedback\nTraining usage: hard_negative\nGraph gold label: supported_by_verification_signal\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#4\nEvidence:\nGraph motif: Feedback or fix context exposes missing test/CI guardrails\nMotif id: test_ci_gap_after_feedback\nPolarity: bad\nTraining usage: hard_negative\nSeverity: high\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#4\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yasinjemal/TradeFeed#4\nRepo: yasinjemal/TradeFeed\nIssue/PR number: 4\nGraph consistency label: supported_by_verification_signal\nNodes: 25\nEdges: 34\nNode types: {'link_quality': 7, 'commit': 5, 'comment_chain': 3, 'comment': 2, 'alignment': 2, 'thread': 1, 'repo': 1, 'pr_review': 1, 'issue_chain': 1, 'fix_outcome': 1, 'blueprint_finding': 1}\nEdge types: {'chain_has_link_quality': 7, 'comment_chain_links_commit': 5, 'thread_has_comment_chain': 3, 'comment_has_chain': 3, 'issue_chain_has_comment_chain': 3, 'thread_has_comment': 2, 'alignment_uses_comment': 2, 'alignment_uses_finding': 2, 'comment_aligns_finding': 2, 'repo_has_thread': 1, 'thread_has_pr_review': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 4, 'bug_fix': 3, 'human_reported_issue_no_linked_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'blueprint_human_gap_disagreement': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'deployment_env_gap': 1, 'api_integration_gap': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'dependency_or_build': 1, 'verification_or_tests': 1, 'claimed_resolved_with_verification_signal': 1, 'mostly follows blueprint': 1}\nOutcomes: {'not_resolved_or_not_observed': 8, 'claimed_resolved_with_verification_signal': 2}\nQuality tiers: {'weak_supervision': 3, 'unresolved': 2, 'assumption_check': 2}\nCI labels: {}\nCurriculum targets:\n- Turn human feedback into regression tests and CI gates.\n- Penalize fixes that do not add or exercise verification for affected workflows.\nAssumption checks:\n- Did the fix add tests for the exact complaint?\n- Does CI run those tests, or is verification only implied?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/yasinjemal/TradeFeed", "source_id": "graph-query-motif_query-f6af508e34205cdb", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/test_ci_gap_after_feedback/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "yasinjemal/TradeFeed", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: yasinjemal/TradeFeed"}, "properties": {"repobilityId": 411488, "scanner": "foundry_dataset", "fingerprint": "30753435a2122495e53f21a5c79a24f9eefa7b20da352c3a357787908779bfaf", "category": "quality", "severity": "high", "confidence": 0.76, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Schema, UI, and API mismatch", "intent": "Assumption-check examples for data-path consistency across layers.", "labels": {"keys": ["bug_fix", "claimed_resolved_unverified", "human_feedback_general", "ui_or_frontend", "human_reported_issue_then_fix_attempt", "human_reported_issue_no_linked_fix", "not_resolved_or_not_observed", "unlinked_human_feedback", "ambiguous_needs_more_evidence", "thread_has_human_issue_and_fix_context", "issue_or_pull_request_thread", "runtime_failure", "deployment_env_gap", "data_schema_persistence", "build_install_failure", "positive_human_signal", "source_or_other", "dependency_or_build", "positive_feedback_no_linked_change", "human_positive_or_acceptance_signal", "blueprint_human_gap_disagreement", "mostly follows blueprint"], "count": 22, "_omitted": "large_dict"}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"claimed_resolved_unverified": 8, "not_resolved_or_not_observed": 4, "ambiguous_needs_more_evidence": 4, "human_positive_or_acceptance_signal": 2}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 88, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 7, "thread_has_comment": 5, "thread_touches_file": 4, "thread_has_pr_review": 2, "alignment_uses_comment": 1, "alignment_uses_finding": 1, "chain_has_link_quality": 10, "comment_aligns_finding": 1, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 4, "thread_has_comment_chain": 7, "comment_chain_links_commit": 7, "comment_chain_touches_file": 28, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 7}, "node_count": 40, "node_types": {"repo": 1, "commit": 6, "thread": 1, "comment": 5, "pr_file": 4, "alignment": 1, "pr_review": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 10, "comment_chain": 7, "blueprint_finding": 1}, "query_type": "motif_query", "thread_key": "yasinjemal/TradeFeed#5", "issue_number": "5", "quality_tiers": {"unresolved": 5, "assumption_check": 1, "weak_supervision": 4}, "repo_full_name": "yasinjemal/TradeFeed", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-a9e84df57ff6214e", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"ui_or_frontend": 20, "source_or_other": 10, "dependency_or_build": 10}}, "text": "Graph query export: Schema, UI, and API mismatch\nQuery id: schema_ui_api_mismatch\nQuery type: motif_query\nIntent: Assumption-check examples for data-path consistency across layers.\nMotif: schema_ui_api_mismatch\nTraining usage: assumption_check\nGraph gold label: weak_supervision_needs_review\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#5\nEvidence:\nGraph motif: Schema, UI, and API evidence do not line up\nMotif id: schema_ui_api_mismatch\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#5\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yasinjemal/TradeFeed#5\nRepo: yasinjemal/TradeFeed\nIssue/PR number: 5\nGraph consistency label: weak_supervision_needs_review\nNodes: 40\nEdges: 88\nNode types: {'link_quality': 10, 'comment_chain': 7, 'commit': 6, 'comment': 5, 'pr_file': 4, 'pr_review': 2, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1, 'alignment': 1, 'blueprint_finding': 1}\nEdge types: {'comment_chain_touches_file': 28, 'chain_has_link_quality': 10, 'thread_has_comment_chain': 7, 'comment_has_chain': 7, 'comment_chain_links_commit': 7, 'issue_chain_has_comment_chain': 7, 'thread_has_comment': 5, 'thread_touches_file': 4, 'issue_chain_touches_file': 4, 'thread_has_pr_review': 2, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1, 'alignment_uses_comment': 1, 'alignment_uses_finding': 1}\nLabels: {'bug_fix': 6, 'claimed_resolved_unverified': 4, 'human_feedback_general': 2, 'ui_or_frontend': 2, 'human_reported_issue_then_fix_attempt': 2, 'human_reported_issue_no_linked_fix': 2, 'not_resolved_or_not_observed': 2, 'unlinked_human_feedback': 2, 'ambiguous_needs_more_evidence': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'runtime_failure': 1, 'deployment_env_gap': 1, 'data_schema_persistence': 1, 'build_install_failure': 1, 'positive_human_signal': 1}\nOutcomes: {'claimed_resolved_unverified': 8, 'not_resolved_or_not_observed': 4, 'ambiguous_needs_more_evidence': 4, 'human_positive_or_acceptance_signal': 2}\nQuality tiers: {'unresolved': 5, 'weak_supervision': 4, 'assumption_check': 1}\nCI labels: {}\nCurriculum targets:\n- Create schema-to-API-to-UI consistency tasks with migrations and tests.\n- Teach models to verify persistence, route contracts, and UI state together.\nAssumption checks:\n- Do schema changes have matching API and UI handling?\n- Are migrations and tests present for the data path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/yasinjemal/TradeFeed", "source_id": "graph-query-motif_query-e93ff3ecd7ee57ab", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/schema_ui_api_mismatch/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "yasinjemal/TradeFeed", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_docs_only_fix", "level": "error", "message": {"text": "Foundry mined docs only runtime fix: yasinjemal/TradeFeed"}, "properties": {"repobilityId": 406335, "scanner": "foundry_dataset", "fingerprint": "e54d9e817cc3fe2651bc7ef8535f89478933d81db9eb5669169006a68487f8f5", "category": "practices", "severity": "high", "confidence": 0.8, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Docs-only response to runtime or integration issue", "intent": "Assumption-check examples where docs or claims are not enough proof.", "labels": {"bug_fix": 2, "docs_or_chore": 1, "docs_or_claims": 1, "deployment_env_gap": 1, "dependency_or_build": 1, "security_or_secrets": 1, "security_auth_secret": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 1, "comment_has_related_commit_context": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "docs_only_runtime_fix", "outcomes": {"claimed_resolved_unverified": 6, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "docs_only_runtime_fix", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 6, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 18, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 2, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "yasinjemal/TradeFeed#7", "issue_number": "7", "quality_tiers": {"weak_supervision": 4}, "repo_full_name": "yasinjemal/TradeFeed", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-e3b5786c6ac72146", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"docs_or_claims": 5}}, "text": "Graph query export: Docs-only response to runtime or integration issue\nQuery id: docs_only_runtime_fix\nQuery type: motif_query\nIntent: Assumption-check examples where docs or claims are not enough proof.\nMotif: docs_only_runtime_fix\nTraining usage: assumption_check\nGraph gold label: weak_supervision_needs_review\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#7\nEvidence:\nGraph motif: Runtime/integration complaint answered mostly with docs or claims\nMotif id: docs_only_runtime_fix\nPolarity: bad\nTraining usage: assumption_check\nSeverity: high\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#7\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yasinjemal/TradeFeed#7\nRepo: yasinjemal/TradeFeed\nIssue/PR number: 7\nGraph consistency label: weak_supervision_needs_review\nNodes: 18\nEdges: 26\nNode types: {'commit': 5, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 6, 'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'claimed_resolved_unverified': 3, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'docs_or_claims': 1, 'human_reported_issue_then_fix_attempt': 1, 'docs_or_chore': 1, 'security_or_secrets': 1, 'dependency_or_build': 1, 'comment_has_related_commit_context': 1, 'ambiguous_needs_more_evidence': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'weak_supervision': 4}\nCI labels: {}\nCurriculum targets:\n- Train models to reject docs-only fixes for runtime, integration, data, or security failures.\n- Add paired examples where the correct fix changes executable paths and adds verification.\nAssumption checks:\n- Do changed files include executable code or only documentation/claims?\n- Does the complaint require runtime behavior that docs cannot prove?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/yasinjemal/TradeFeed", "source_id": "graph-query-motif_query-9f7fd64a6a6e9794", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/docs_only_runtime_fix/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "yasinjemal/TradeFeed", "source_dataset": "graph_queries/docs_only_runtime_fix", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: yasinjemal/TradeFeed"}, "properties": {"repobilityId": 392291, "scanner": "foundry_dataset", "fingerprint": "67bdf1685761d27872106c11d65e5414910e856f7c36b724aabeb3a204a363e6", "category": "practices", "severity": "high", "confidence": 0.84, "triageState": "open", "verdict": "confirmed", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "comment_chain_pattern_product", "source": "comment_chain_pattern_miner", "product": "bad_chains", "synthetic": false, "thread_key": "yasinjemal/TradeFeed#4", "human_labels": ["api_integration_gap", "deployment_env_gap", "test_ci_gap"], "issue_number": "4", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.607, "repo_full_name": "yasinjemal/TradeFeed", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-b30df0c8ac8bb9fc", "helicopter_views": {"schemas": 2}, "artifact_families": {"ci": 1, "docs": 4, "tests": 1, "routes_api": 1, "architecture": 1}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 5, "helicopter_view_count": 2, "source_artifact_count": 8, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 2, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#4\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_and_fix_context\nSource graph label: source_backed_multi_signal_graph\nReasons: source_graph_has_real_artifacts, source_graph_has_verification_artifacts, repo_has_isolated_helicopter_views, link_quality_weak_supervision, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: yasinjemal/TradeFeed#4\nRepo: yasinjemal/TradeFeed\nThread label: thread_has_human_issue_and_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 3\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'test_ci_gap': 1, 'deployment_env_gap': 1, 'api_integration_gap': 1}\nPolarities: {'bad': 3}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-41c3b241cdcc827b\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/yasinjemal/TradeFeed/pull/4\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: yasinjemal/TradeFeed\\nAuthor: Copilot (Bot)\\nURL: https://github.com/yasinjemal/TradeFeed/pull/4\\nTitle: [WIP] Fix ESLint purity issues in multiple files\\nBody:\\n- [ ] Fix `Date.now()` calls in `app/catalog/[slug]/page.tsx` (lines 217, 237) - replace with single `const now = Date.now()` variable\\n- [ ] Fix `Date.now()` in `components/admin/admin-shop-list.tsx` - wrap with `useMemo`\\n- [ ] Fix `Math.random()` in `app/dashboard/[slug]/referrals/page.tsx` - extract to utility function outside component\\n- [ ] Fix `require()` in `check-cols.js` - add eslint-disable-next-line comment\\n- [ ] Fix `handleAdd` useCallback missing `minWholesaleQty` dependency in `components/catalog/add-to-cart.tsx`\\n- [ ] Fix `handleCheckout` useCallback missing `buyerName`, `buyerNote`, `buyerPhone`, `marketingConsent` dependencies in `components/catalog/cart-panel.tsx`\\n\\n<!-- START COPILOT ORIGINAL PROMPT -->\\n\\n\\n\\n<details>\\n\\n<summary>Original prompt</summary>\\n\\nMultiple files are failing CI due to ESLint 'cannot call impure function during render' (react-hooks/purity) and memoization errors. Resolve these issues as follows:\\n\\n1. In `app/catalog/[slu\"\n  },\n  {\n    \"id\": \"github-feedback-comment-7beb865c6bb59083\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/yasinjemal/TradeFeed/pull/4#issuecomment-4035011595\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: yasinjemal/TradeFeed\\nAuthor: vercel[bot] (Bot)\\nURL: https://github.com/yasinjemal/TradeFeed/pull/4#issuecomment-4035011595\\nTitle: \\nBody:\\n[vc]: #ZxOUoEi3HX9OrLu77svtAabd0vRgrCPec1+Mxu5/suA=:eyJpc01vbm9yZXBvIjp0cnVlLCJ0eXBlIjoiZ2l0aHViIiwicHJvamVjdHMiOlt7Im5hbWUiOiJ0cmFkZS1mZWVkIiwicHJvamVjdElkIjoicHJqX3FrWkVHYnRxc2l2c1NrQU51aFJOZklVOGlITUo\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/yasinjemal/TradeFeed", "source_id": "comment-chain-pattern-bad_chains-03cacaaf84d2f332", "synthetic": false, "gold_label": "", "graph_label": "source_backed_multi_signal_graph", "source_path": "/data/distillate/foundry_data/comment_chain_patterns/bad_chains/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "yasinjemal/TradeFeed", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: yasinjemal/TradeFeed"}, "properties": {"repobilityId": 415156, "scanner": "foundry_dataset", "fingerprint": "4a1be51bc187f0a135cc1c9c518485078d99a7da9d76f61c012272fb205ad8b2", "category": "auth", "severity": "critical", "confidence": 0.78, "triageState": "open", "verdict": "needs_review", "isResolved": false, "reason": "Imported from mined Foundry/Fable5 evidence with real GitHub/source provenance. Review source_id before acting.", "evidence": {"meta": {"kind": "graph_query_record", "title": "Security/auth changes without enough guardrails", "intent": "Assumption-check security/auth examples requiring stronger tests or CI.", "labels": {"bug_fix": 2, "docs_or_chore": 1, "docs_or_claims": 1, "deployment_env_gap": 1, "dependency_or_build": 1, "security_or_secrets": 1, "security_auth_secret": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 1, "comment_has_related_commit_context": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"claimed_resolved_unverified": 6, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "thread_touches_file": 1, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 6, "comment_chain_touches_file": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 18, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 2, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "yasinjemal/TradeFeed#7", "issue_number": "7", "quality_tiers": {"weak_supervision": 4}, "repo_full_name": "yasinjemal/TradeFeed", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-fd71e9b876982a20", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {"docs_or_claims": 5}}, "text": "Graph query export: Security/auth changes without enough guardrails\nQuery id: security_auth_guardrail_gaps\nQuery type: motif_query\nIntent: Assumption-check security/auth examples requiring stronger tests or CI.\nMotif: security_auth_without_guardrails\nTraining usage: assumption_check\nGraph gold label: weak_supervision_needs_review\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#7\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: yasinjemal/TradeFeed\nThread: yasinjemal/TradeFeed#7\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: yasinjemal/TradeFeed#7\nRepo: yasinjemal/TradeFeed\nIssue/PR number: 7\nGraph consistency label: weak_supervision_needs_review\nNodes: 18\nEdges: 26\nNode types: {'commit': 5, 'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'pr_file': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 6, 'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'comment_chain_touches_file': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'thread_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'claimed_resolved_unverified': 3, 'bug_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'deployment_env_gap': 1, 'docs_or_claims': 1, 'human_reported_issue_then_fix_attempt': 1, 'docs_or_chore': 1, 'security_or_secrets': 1, 'dependency_or_build': 1, 'comment_has_related_commit_context': 1, 'ambiguous_needs_more_evidence': 1}\nOutcomes: {'claimed_resolved_unverified': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'weak_supervision': 4}\nCI labels: {}\nCurriculum targets:\n- Train auth boundary repair with tests, permission matrices, and secret-handling checks.\n- Keep risky auth changes separate from ordinary bug-fix examples.\nAssumption checks:\n- Are auth/permission paths covered by tests?\n- Are secrets, CORS, or access rules verified rather than summarized?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/yasinjemal/TradeFeed", "source_id": "graph-query-motif_query-370155b2cfba53e0", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/security_auth_guardrail_gaps/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "yasinjemal/TradeFeed", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "scanner-bead75b0f9233e05", "level": "none", "message": {"text": "No API endpoints detected"}, "properties": {"repobilityId": "0f8bb852027c38f8", "scanner": "scanner-primary", "fingerprint": "bead75b0f9233e05", "layer": "api", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-9bfa5dff980d6381", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-images.ts:110"}, "properties": {"repobilityId": "86f47f22944a14bb", "scanner": "scanner-primary", "fingerprint": "9bfa5dff980d6381", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-94cd8e4d3f1b5f89", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/upgrade-admin.ts:8"}, "properties": {"repobilityId": "6dcda5fd18c0623c", "scanner": "scanner-primary", "fingerprint": "94cd8e4d3f1b5f89", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-73d99891dd7dfb17", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-products.ts:21"}, "properties": {"repobilityId": "5949f68f699d935f", "scanner": "scanner-primary", "fingerprint": "73d99891dd7dfb17", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-75915b69d8cc41b7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/backfill-product-slugs.ts:32"}, "properties": {"repobilityId": "4a7ed64b344ae558", "scanner": "scanner-primary", "fingerprint": "75915b69d8cc41b7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-de5849047a344449", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-global-categories.ts:478"}, "properties": {"repobilityId": "e9924da977d163cd", "scanner": "scanner-primary", "fingerprint": "de5849047a344449", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3de2df4fa6937c59", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/db-health-check.ts:187"}, "properties": {"repobilityId": "c73f907d2444f645", "scanner": "scanner-primary", "fingerprint": "3de2df4fa6937c59", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a0ee5007007e5019", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/check-db.ts:10"}, "properties": {"repobilityId": "65969f3f2a8e8353", "scanner": "scanner-primary", "fingerprint": "a0ee5007007e5019", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1f857cb31fd6d48c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/seed-plans.ts:16"}, "properties": {"repobilityId": "cf072bfbc5547a5f", "scanner": "scanner-primary", "fingerprint": "1f857cb31fd6d48c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1f0e7264e3bcd747", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/migrate-images.ts:68"}, "properties": {"repobilityId": "7b11a59c89b1decf", "scanner": "scanner-primary", "fingerprint": "1f0e7264e3bcd747", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e12aafe6d06aee39", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/archive/backfill-product-prices.ts:15"}, "properties": {"repobilityId": "de98f6708c3d33b5", "scanner": "scanner-primary", "fingerprint": "e12aafe6d06aee39", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-89d9d5f6f65fd1b7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 prisma/seed.ts:15"}, "properties": {"repobilityId": "f77d7e0fb34b08e2", "scanner": "scanner-primary", "fingerprint": "89d9d5f6f65fd1b7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-98cea43a59595e6b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/orders/buyer-order-list.tsx:199"}, "properties": {"repobilityId": "b2435b97e7e5c404", "scanner": "scanner-primary", "fingerprint": "98cea43a59595e6b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b6675886e091e004", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/marketplace/marketplace-product-card.tsx:146"}, "properties": {"repobilityId": "16059183b35ff19e", "scanner": "scanner-primary", "fingerprint": "b6675886e091e004", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b8eb259dbc18e497", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/marketplace/featured-shop-card.tsx:46"}, "properties": {"repobilityId": "b39fb50ac09ee444", "scanner": "scanner-primary", "fingerprint": "b8eb259dbc18e497", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-13e925950a03aa0f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/analytics/analytics-dashboard.tsx:206"}, "properties": {"repobilityId": "9b7c94a872316b7f", "scanner": "scanner-primary", "fingerprint": "13e925950a03aa0f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-498927ebd521c3cc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/tf/sticky-cta-bar.tsx:44"}, "properties": {"repobilityId": "4d80c3bc1ebc5273", "scanner": "scanner-primary", "fingerprint": "498927ebd521c3cc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e0b4fe2b2dc85fc9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/tf/product-card.tsx:176"}, "properties": {"repobilityId": "5c9badcc9ec4cd82", "scanner": "scanner-primary", "fingerprint": "e0b4fe2b2dc85fc9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-835c9c5e7f42de9a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/tf/product/tf-order-panel.tsx:235"}, "properties": {"repobilityId": "4e09340277f342c6", "scanner": "scanner-primary", "fingerprint": "835c9c5e7f42de9a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c2bafbbb08e3e71f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/tf/dashboard/tf-dashboard-home.tsx:94"}, "properties": {"repobilityId": "e885cc2589674be3", "scanner": "scanner-primary", "fingerprint": "c2bafbbb08e3e71f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-17cc08d132649d86", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/tf/motion/tf-live-ticker.tsx:52"}, "properties": {"repobilityId": "1810a47fcf068bae", "scanner": "scanner-primary", "fingerprint": "17cc08d132649d86", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-76632da079695208", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/tf/landing/phone-mock.tsx:39"}, "properties": {"repobilityId": "32a793d40d72a48c", "scanner": "scanner-primary", "fingerprint": "76632da079695208", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-183fc6bcde69a837", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/product/edit-product-form.tsx:72"}, "properties": {"repobilityId": "4af4b29a2f481f3e", "scanner": "scanner-primary", "fingerprint": "183fc6bcde69a837", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9a70aea2b47fe27b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/product/create-product-form.tsx:496"}, "properties": {"repobilityId": "abef8e043a365405", "scanner": "scanner-primary", "fingerprint": "9a70aea2b47fe27b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6b966ea953e09a75", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/product/variant-grid.tsx:167"}, "properties": {"repobilityId": "3c1ca5273d9275b1", "scanner": "scanner-primary", "fingerprint": "6b966ea953e09a75", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-799021e48a63c12e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/product/bulk-category-mapper.tsx:253"}, "properties": {"repobilityId": "a6f0599208f12817", "scanner": "scanner-primary", "fingerprint": "799021e48a63c12e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e604e185812d80a6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/promotions/promote-dashboard.tsx:382"}, "properties": {"repobilityId": "878231604eaaba4e", "scanner": "scanner-primary", "fingerprint": "e604e185812d80a6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f79130ada86d2327", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/dashboard/team-page.tsx:402"}, "properties": {"repobilityId": "b8aea33b7937579f", "scanner": "scanner-primary", "fingerprint": "f79130ada86d2327", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-882f4a2513f81d70", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/dashboard/referral-invite.tsx:59"}, "properties": {"repobilityId": "dfdbf1b2d4f2a74e", "scanner": "scanner-primary", "fingerprint": "882f4a2513f81d70", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-70da14eb6b4f7c50", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/dashboard/shop-switcher.tsx:81"}, "properties": {"repobilityId": "634e6be69d2de147", "scanner": "scanner-primary", "fingerprint": "70da14eb6b4f7c50", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-13fbf9f38e4042ce", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/dashboard/catalog-qr-share.tsx:195"}, "properties": {"repobilityId": "d7f0d2f7672395fe", "scanner": "scanner-primary", "fingerprint": "13fbf9f38e4042ce", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-60e4b548bf4a9861", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/dashboard/trending-products.tsx:73"}, "properties": {"repobilityId": "8dbaab34c3878b7c", "scanner": "scanner-primary", "fingerprint": "60e4b548bf4a9861", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6cb245dfe4c57d2a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/dashboard/mobile-nav.tsx:239"}, "properties": {"repobilityId": "ba2ec304d3800c55", "scanner": "scanner-primary", "fingerprint": "6cb245dfe4c57d2a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8fb3fb32424f01e3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/import/import-review-grid.tsx:328"}, "properties": {"repobilityId": "eeaf7af0421b5d80", "scanner": "scanner-primary", "fingerprint": "8fb3fb32424f01e3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f883b0ff6805c292", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/import/whatsapp-import-flow.tsx:345"}, "properties": {"repobilityId": "896b96966289c944", "scanner": "scanner-primary", "fingerprint": "f883b0ff6805c292", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a28a94623138456f", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/catalog/seller-info-card.tsx:50"}, "properties": {"repobilityId": "d142d6b6055d8578", "scanner": "scanner-primary", "fingerprint": "a28a94623138456f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1d22baaa0fb11e78", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/catalog/product-breadcrumb.tsx:39"}, "properties": {"repobilityId": "bfdff7f5ed7a9770", "scanner": "scanner-primary", "fingerprint": "1d22baaa0fb11e78", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3b77a7494b0f8c40", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/catalog/cart-panel.tsx:384"}, "properties": {"repobilityId": "36d1a8d88a89d4e8", "scanner": "scanner-primary", "fingerprint": "3b77a7494b0f8c40", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5bccb1a396ab8147", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/catalog/combo-section.tsx:158"}, "properties": {"repobilityId": "973c5882c2c75270", "scanner": "scanner-primary", "fingerprint": "5bccb1a396ab8147", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d149363779a18567", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/catalog/shop-profile.tsx:480"}, "properties": {"repobilityId": "9413431c8f375c23", "scanner": "scanner-primary", "fingerprint": "d149363779a18567", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c88fdc635064d81e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/catalog/shop-hero.tsx:336"}, "properties": {"repobilityId": "02f6224bc0ebd8b1", "scanner": "scanner-primary", "fingerprint": "c88fdc635064d81e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ce877397690ebf90", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/catalog/sticky-buy-bar.tsx:47"}, "properties": {"repobilityId": "a6e326474676767e", "scanner": "scanner-primary", "fingerprint": "ce877397690ebf90", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-46fda2d877e33bd1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/catalog/similar-products.tsx:88"}, "properties": {"repobilityId": "a896b75c9224838a", "scanner": "scanner-primary", "fingerprint": "46fda2d877e33bd1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6f43eccdea4be01b", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 components/reviews/product-reviews.tsx:203"}, "properties": {"repobilityId": "7d307174e0c64640", "scanner": "scanner-primary", "fingerprint": "6f43eccdea4be01b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-9a787aad6379d3ae", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/drops/drop-form.tsx:186"}, "properties": {"repobilityId": "a2adb6955deec053", "scanner": "scanner-primary", "fingerprint": "9a787aad6379d3ae", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-70c32854c5cab185", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/admin-promotion-dashboard.tsx:168"}, "properties": {"repobilityId": "1a3c046dc1b1e2bf", "scanner": "scanner-primary", "fingerprint": "70c32854c5cab185", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-99832816e25b0cc0", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/upgrade-requests-panel.tsx:183"}, "properties": {"repobilityId": "64526c2f94b06ff5", "scanner": "scanner-primary", "fingerprint": "99832816e25b0cc0", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-b887c4053c58e750", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/admin-user-list.tsx:187"}, "properties": {"repobilityId": "e38ca0ab3d0321f5", "scanner": "scanner-primary", "fingerprint": "b887c4053c58e750", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-afc4d46ebe45659a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/wholesale-buyer-list.tsx:111"}, "properties": {"repobilityId": "393aec9190e2c2c1", "scanner": "scanner-primary", "fingerprint": "afc4d46ebe45659a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f303b38c86adfc6d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/admin/verification-queue.tsx:103"}, "properties": {"repobilityId": "a794e8fd32eee95e", "scanner": "scanner-primary", "fingerprint": "f303b38c86adfc6d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1eb2c63df5cd58c2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/landing/product-preview-section.tsx:117"}, "properties": {"repobilityId": "9e3dbdd1f7bc340e", "scanner": "scanner-primary", "fingerprint": "1eb2c63df5cd58c2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-3fbedc9962633b56", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/category/category-manager.tsx:178"}, "properties": {"repobilityId": "dd0e45fa4ba1bcf9", "scanner": "scanner-primary", "fingerprint": "3fbedc9962633b56", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-497e5795b99de457", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/bulk-import/bulk-import-form.tsx:475"}, "properties": {"repobilityId": "dc73b404cfd1c61f", "scanner": "scanner-primary", "fingerprint": "497e5795b99de457", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a95f3e8d85104128", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/shop/shop-settings-form.tsx:809"}, "properties": {"repobilityId": "4d525b4e007fd00c", "scanner": "scanner-primary", "fingerprint": "a95f3e8d85104128", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0648d8859008893a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/shop/shop-gallery-upload.tsx:204"}, "properties": {"repobilityId": "299fe39623a72e3b", "scanner": "scanner-primary", "fingerprint": "0648d8859008893a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-ed8fe4cd5732383e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/shop/settings-sidebar.tsx:73"}, "properties": {"repobilityId": "2aec3da36f382d6f", "scanner": "scanner-primary", "fingerprint": "ed8fe4cd5732383e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bce4f7bcfa1fd5a1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/shop/team-section.tsx:193"}, "properties": {"repobilityId": "a9c10c56cfc0fc2f", "scanner": "scanner-primary", "fingerprint": "bce4f7bcfa1fd5a1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-37beab471a359762", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 components/revenue/revenue-dashboard.tsx:342"}, "properties": {"repobilityId": "227159413fbf3010", "scanner": "scanner-primary", "fingerprint": "37beab471a359762", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0d7bf3684327e5ba", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/seo/faq.tsx:26"}, "properties": {"repobilityId": "e0c2798d0af56a22", "scanner": "scanner-primary", "fingerprint": "0d7bf3684327e5ba", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-d41a9559bf00e97a", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 components/seo/seo-page.tsx:56"}, "properties": {"repobilityId": "86f6e17a282a9421", "scanner": "scanner-primary", "fingerprint": "d41a9559bf00e97a", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-42ddf52cd31f09c1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/page.tsx:361"}, "properties": {"repobilityId": "2a6638282026d4f9", "scanner": "scanner-primary", "fingerprint": "42ddf52cd31f09c1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-cf74533889c56d41", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/page.tsx:750"}, "properties": {"repobilityId": "6779a4843a9d41ee", "scanner": "scanner-primary", "fingerprint": "cf74533889c56d41", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-9c6100bd6ad25b12", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/layout.tsx:98"}, "properties": {"repobilityId": "6f16eb9b82a2dcd6", "scanner": "scanner-primary", "fingerprint": "9c6100bd6ad25b12", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-06f22acc68c40eab", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/sell-on-whatsapp/page.tsx:47"}, "properties": {"repobilityId": "85ff378f6558236f", "scanner": "scanner-primary", "fingerprint": "06f22acc68c40eab", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-e2865a4c368abf50", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/marketplace/page.tsx:164"}, "properties": {"repobilityId": "01d2eb55da8adc8c", "scanner": "scanner-primary", "fingerprint": "e2865a4c368abf50", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-f8567d1fff097c9d", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/marketplace/[province]/page.tsx:149"}, "properties": {"repobilityId": "b41f6220609eb5d6", "scanner": "scanner-primary", "fingerprint": "f8567d1fff097c9d", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-5861733bf7203e48", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/marketplace/[province]/[city]/page.tsx:158"}, "properties": {"repobilityId": "6cc89e7a1aff8f33", "scanner": "scanner-primary", "fingerprint": "5861733bf7203e48", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-22c2abd97880a82f", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/marketplace/[province]/[city]/[category]/page.tsx:227"}, "properties": {"repobilityId": "a70597eb76930877", "scanner": "scanner-primary", "fingerprint": "22c2abd97880a82f", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-3c66f162c5d911bb", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/marketplace/category/[slug]/page.tsx:179"}, "properties": {"repobilityId": "47338934cba7a6aa", "scanner": "scanner-primary", "fingerprint": "3c66f162c5d911bb", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-c29f0cae3b09bfae", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/uploadthing/core.ts:48"}, "properties": {"repobilityId": "ee6e7594dfc8622a", "scanner": "scanner-primary", "fingerprint": "c29f0cae3b09bfae", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e3e3011c7c6abdb1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/cron/seller-sequences/route.ts:41"}, "properties": {"repobilityId": "1e4c836fd394883e", "scanner": "scanner-primary", "fingerprint": "e3e3011c7c6abdb1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0c4da1d316fb7a22", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/cron/subscription-expiry/route.ts:95"}, "properties": {"repobilityId": "f431fefddf8c2b71", "scanner": "scanner-primary", "fingerprint": "0c4da1d316fb7a22", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-730c2612d2e5dd35", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/cron/ranking-computation/route.ts:238"}, "properties": {"repobilityId": "46142c5415b15ca0", "scanner": "scanner-primary", "fingerprint": "730c2612d2e5dd35", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b98d13e00d91d6ef", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/cron/domain-health/route.ts:118"}, "properties": {"repobilityId": "de74324bf8df7c37", "scanner": "scanner-primary", "fingerprint": "b98d13e00d91d6ef", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-32d3e0277df33309", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/cron/data-retention/route.ts:119"}, "properties": {"repobilityId": "216b163a3996fefa", "scanner": "scanner-primary", "fingerprint": "32d3e0277df33309", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9a645220c8e05c43", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/webhooks/whatsapp/route.ts:60"}, "properties": {"repobilityId": "4ddb4ad2cbd26f6b", "scanner": "scanner-primary", "fingerprint": "9a645220c8e05c43", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-508b72ac8c2fadaa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/webhooks/clerk/route.ts:158"}, "properties": {"repobilityId": "fedd801a8173be9b", "scanner": "scanner-primary", "fingerprint": "508b72ac8c2fadaa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9e9095d685097ef7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 app/api/webhooks/payfast/route.ts:47"}, "properties": {"repobilityId": "a816da7289dbe653", "scanner": "scanner-primary", "fingerprint": "9e9095d685097ef7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e9711735591a22b4", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 app/api/feeds/google/route.ts:36"}, "properties": {"repobilityId": "3f67c95a8b0d5368", "scanner": "scanner-primary", "fingerprint": "e9711735591a22b4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-89524538d426c521", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/dashboard/[slug]/page.tsx:159"}, "properties": {"repobilityId": "9bfe5411ad4d14b9", "scanner": "scanner-primary", "fingerprint": "89524538d426c521", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-634ad73be190f9cd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/dashboard/[slug]/conversations/page.tsx:148"}, "properties": {"repobilityId": "fd86630fab913913", "scanner": "scanner-primary", "fingerprint": "634ad73be190f9cd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4e7201ee0ad5f08e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/dashboard/[slug]/drops/page.tsx:126"}, "properties": {"repobilityId": "440ac0133adfae11", "scanner": "scanner-primary", "fingerprint": "4e7201ee0ad5f08e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2fb9c26526d7e09a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/dashboard/[slug]/products/page.tsx:170"}, "properties": {"repobilityId": "c44e14e5f63f5bd8", "scanner": "scanner-primary", "fingerprint": "2fb9c26526d7e09a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-d73c2687ec46f2e9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/catalog/[slug]/page.tsx:332"}, "properties": {"repobilityId": "df4033c004989e45", "scanner": "scanner-primary", "fingerprint": "d73c2687ec46f2e9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7dfa330ed2e8c490", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/catalog/[slug]/layout.tsx:233"}, "properties": {"repobilityId": "14fc714255a45a4b", "scanner": "scanner-primary", "fingerprint": "7dfa330ed2e8c490", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-68f54567967fcbf9", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/catalog/[slug]/layout.tsx:133"}, "properties": {"repobilityId": "18d367aa0ea21d2e", "scanner": "scanner-primary", "fingerprint": "68f54567967fcbf9", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-f0c2cc3f3a6e5f7f", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/catalog/[slug]/products/[productId]/page.tsx:204"}, "properties": {"repobilityId": "9cf6199a2d03d770", "scanner": "scanner-primary", "fingerprint": "f0c2cc3f3a6e5f7f", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-1e8477de6ce23a56", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/catalog/[slug]/combos/[comboId]/page.tsx:132"}, "properties": {"repobilityId": "2d2528e3dd920759", "scanner": "scanner-primary", "fingerprint": "1e8477de6ce23a56", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7a1fe63434c69f44", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/admin/activation/page.tsx:95"}, "properties": {"repobilityId": "4b4e32b7172c01c3", "scanner": "scanner-primary", "fingerprint": "7a1fe63434c69f44", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-88c958141d5d6a63", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/me/page.tsx:112"}, "properties": {"repobilityId": "c386a36ee757112e", "scanner": "scanner-primary", "fingerprint": "88c958141d5d6a63", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6961869035c47c0a", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/pay/[orderNumber]/page.tsx:186"}, "properties": {"repobilityId": "56390e39fe80418f", "scanner": "scanner-primary", "fingerprint": "6961869035c47c0a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f5e575dcea7d244d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 app/track/[orderNumber]/page.tsx:337"}, "properties": {"repobilityId": "fbc7a7426e9b446d", "scanner": "scanner-primary", "fingerprint": "f5e575dcea7d244d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-38c1968725855f07", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/(public)/how-it-works/page.tsx:122"}, "properties": {"repobilityId": "ab86e3435d9e503b", "scanner": "scanner-primary", "fingerprint": "38c1968725855f07", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-753e90cb3ab029cb", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 app/(public)/faq/page.tsx:204"}, "properties": {"repobilityId": "b08b61f92736e547", "scanner": "scanner-primary", "fingerprint": "753e90cb3ab029cb", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-52b3d902150ea04a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/email/resend.ts:40"}, "properties": {"repobilityId": "0c30dae6e42f9f01", "scanner": "scanner-primary", "fingerprint": "52b3d902150ea04a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c2b42a24f40d04b2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/ai/analyze-product-image.ts:33"}, "properties": {"repobilityId": "2f6dafc9a975682d", "scanner": "scanner-primary", "fingerprint": "c2b42a24f40d04b2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b96354bb6c9c52f6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/ai/remove-background.ts:34"}, "properties": {"repobilityId": "d4075da54dabb8ff", "scanner": "scanner-primary", "fingerprint": "b96354bb6c9c52f6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ea5f8b04ec9d8cf6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/ai/translate-listing.ts:80"}, "properties": {"repobilityId": "2e6b2e71333a5dac", "scanner": "scanner-primary", "fingerprint": "ea5f8b04ec9d8cf6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-77e92e04a6c2f21a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/ai/import-draft.ts:90"}, "properties": {"repobilityId": "f511d4db0752e52d", "scanner": "scanner-primary", "fingerprint": "77e92e04a6c2f21a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-45f72c770bb245f2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/whatsapp/business-api.ts:49"}, "properties": {"repobilityId": "be409cff9e0c45e8", "scanner": "scanner-primary", "fingerprint": "45f72c770bb245f2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4d27dab1ac54701a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/whatsapp/product-import.ts:123"}, "properties": {"repobilityId": "b9f516667abba1be", "scanner": "scanner-primary", "fingerprint": "4d27dab1ac54701a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1122404831a50d93", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/whatsapp/ai-sales.ts:146"}, "properties": {"repobilityId": "d4169fd085e86a89", "scanner": "scanner-primary", "fingerprint": "1122404831a50d93", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7fb6beec4c944faa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/vercel/domains.ts:79"}, "properties": {"repobilityId": "916fa4f4a032fbbc", "scanner": "scanner-primary", "fingerprint": "7fb6beec4c944faa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3b41bbcc27dd0914", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/db/search.ts:67"}, "properties": {"repobilityId": "58cce7080b2a720e", "scanner": "scanner-primary", "fingerprint": "3b41bbcc27dd0914", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3f93681a202f87a9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/db/referrals.ts:107"}, "properties": {"repobilityId": "32a9fa8c0bfb4d9b", "scanner": "scanner-primary", "fingerprint": "3f93681a202f87a9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-db504521e26f8f7b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 lib/db/promotions.ts:102"}, "properties": {"repobilityId": "eaadd1696ae141ba", "scanner": "scanner-primary", "fingerprint": "db504521e26f8f7b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ac10733f07bf96cf", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in components/seo/faq.tsx:26"}, "properties": {"repobilityId": "f9b13900aedf4a0c", "scanner": "scanner-primary", "fingerprint": "ac10733f07bf96cf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "components/seo/faq.tsx"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-efcada02ee36daea", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in components/seo/seo-page.tsx:56"}, "properties": {"repobilityId": "8a45389425cc1286", "scanner": "scanner-primary", "fingerprint": "efcada02ee36daea", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "components/seo/seo-page.tsx"}, "region": {"startLine": 56}}}]}, {"ruleId": "scanner-b91ac14d85ff479b", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/page.tsx:750"}, "properties": {"repobilityId": "cfec9d1837258177", "scanner": "scanner-primary", "fingerprint": "b91ac14d85ff479b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/page.tsx"}, "region": {"startLine": 750}}}]}, {"ruleId": "scanner-938b79ab7c439d3d", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/layout.tsx:98"}, "properties": {"repobilityId": "69d4743587f721a0", "scanner": "scanner-primary", "fingerprint": "938b79ab7c439d3d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/layout.tsx"}, "region": {"startLine": 98}}}]}, {"ruleId": "scanner-8931d3abaf47805c", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/sell-on-whatsapp/page.tsx:47"}, "properties": {"repobilityId": "dc411cbb9f638073", "scanner": "scanner-primary", "fingerprint": "8931d3abaf47805c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/sell-on-whatsapp/page.tsx"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-30b114b2ffc58bae", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/marketplace/page.tsx:164"}, "properties": {"repobilityId": "8be568c473d3c887", "scanner": "scanner-primary", "fingerprint": "30b114b2ffc58bae", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/marketplace/page.tsx"}, "region": {"startLine": 164}}}]}, {"ruleId": "scanner-0e1fd12cc91848e6", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/marketplace/[province]/page.tsx:149"}, "properties": {"repobilityId": "cc03ee7c79ec84c2", "scanner": "scanner-primary", "fingerprint": "0e1fd12cc91848e6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/marketplace/[province]/page.tsx"}, "region": {"startLine": 149}}}]}, {"ruleId": "scanner-93c532db829f120a", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/marketplace/[province]/[city]/page.tsx:158"}, "properties": {"repobilityId": "d66b28e218048a32", "scanner": "scanner-primary", "fingerprint": "93c532db829f120a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/marketplace/[province]/[city]/page.tsx"}, "region": {"startLine": 158}}}]}, {"ruleId": "scanner-d8f5007b5b2b4d52", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/marketplace/[province]/[city]/[category]/page.tsx:227"}, "properties": {"repobilityId": "2825e4694b57aa7b", "scanner": "scanner-primary", "fingerprint": "d8f5007b5b2b4d52", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/marketplace/[province]/[city]/[category]/page.tsx"}, "region": {"startLine": 227}}}]}, {"ruleId": "scanner-b52e06fc60139146", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/marketplace/category/[slug]/page.tsx:179"}, "properties": {"repobilityId": "4160f6fa13156641", "scanner": "scanner-primary", "fingerprint": "b52e06fc60139146", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/marketplace/category/[slug]/page.tsx"}, "region": {"startLine": 179}}}]}, {"ruleId": "scanner-ca5f47a77cfecb04", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/catalog/[slug]/layout.tsx:133"}, "properties": {"repobilityId": "8f837cc52dc4d2ab", "scanner": "scanner-primary", "fingerprint": "ca5f47a77cfecb04", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/catalog/[slug]/layout.tsx"}, "region": {"startLine": 133}}}]}, {"ruleId": "scanner-bd7033031a4b31ae", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/catalog/[slug]/products/[productId]/page.tsx:204"}, "properties": {"repobilityId": "9086d50aaad572d8", "scanner": "scanner-primary", "fingerprint": "bd7033031a4b31ae", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/catalog/[slug]/products/[productId]/page.tsx"}, "region": {"startLine": 204}}}]}, {"ruleId": "scanner-b1aba7f07ebd13d2", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/(public)/how-it-works/page.tsx:122"}, "properties": {"repobilityId": "642b9cde57273112", "scanner": "scanner-primary", "fingerprint": "b1aba7f07ebd13d2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/(public)/how-it-works/page.tsx"}, "region": {"startLine": 122}}}]}, {"ruleId": "scanner-6a9570e1200a5a77", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in app/(public)/faq/page.tsx:204"}, "properties": {"repobilityId": "27dc2acbb40860f5", "scanner": "scanner-primary", "fingerprint": "6a9570e1200a5a77", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "app/(public)/faq/page.tsx"}, "region": {"startLine": 204}}}]}, {"ruleId": "scanner-14e0692c774afeec", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in lib/payfast.ts:43"}, "properties": {"repobilityId": "0050d31d0719ad33", "scanner": "scanner-primary", "fingerprint": "14e0692c774afeec", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/payfast.ts"}, "region": {"startLine": 43}}}]}, {"ruleId": "scanner-ae8b6fd4c916ab03", "level": "note", "message": {"text": "Insecure pattern 'document_write' in lib/export/reports.ts:82"}, "properties": {"repobilityId": "30aafae06d59442f", "scanner": "scanner-primary", "fingerprint": "ae8b6fd4c916ab03", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "lib/export/reports.ts"}, "region": {"startLine": 82}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ae16880318b99912", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "989a74409a402368", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ae16880318b99912", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 76}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "989a74409a402368", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 79}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "bd7f3c1c34d83159", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 102}}}]}, {"ruleId": "scanner-cb639d9a10a47b23", "level": "note", "message": {"text": "package.json defines install-time lifecycle scripts"}, "properties": {"repobilityId": "edeab51902066991", "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-347ad98ab11ff9be", "level": "note", "message": {"text": "Very large file: components/shop/shop-settings-form.tsx (1135 lines)"}, "properties": {"repobilityId": "375609b1bf9c0785", "scanner": "scanner-primary", "fingerprint": "347ad98ab11ff9be", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6d12985bfcfc75aa", "level": "note", "message": {"text": "Very large file: app/page.tsx (961 lines)"}, "properties": {"repobilityId": "5e5eaf124a1a5246", "scanner": "scanner-primary", "fingerprint": "6d12985bfcfc75aa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "b5a61bd63fafd3b0", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-01f96f71d9907a8c", "level": "note", "message": {"text": "README lacks setup or run instructions"}, "properties": {"repobilityId": "56fc9683655b3097", "scanner": "scanner-primary", "fingerprint": "01f96f71d9907a8c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["docs", "readme", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "5e4ca9d01ad6d817", "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": "11a79622cc973586", "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": "f3441d70981757d8", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "4406b30a92a0d0e1", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "39a62cee3368025e", "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": "f3345f598ab1eaa0", "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": "62b9cce48a9a4b28", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-dcc94a168cd98873", "level": "none", "message": {"text": "Commented-code block (5 lines) in playwright.config.ts:1"}, "properties": {"repobilityId": "9c50d9dd8cb629a3", "scanner": "scanner-primary", "fingerprint": "dcc94a168cd98873", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8fa590b348edfb28", "level": "none", "message": {"text": "Commented-code block (8 lines) in proxy.ts:1"}, "properties": {"repobilityId": "08e7fc3296fec8a0", "scanner": "scanner-primary", "fingerprint": "8fa590b348edfb28", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-517e66a88a6c8e4c", "level": "none", "message": {"text": "Commented-code block (7 lines) in types/index.ts:1"}, "properties": {"repobilityId": "7555818c20d02d9e", "scanner": "scanner-primary", "fingerprint": "517e66a88a6c8e4c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b19bd4dfbd3ab7d3", "level": "none", "message": {"text": "Commented-code block (6 lines) in i18n/config.ts:1"}, "properties": {"repobilityId": "d22810f7c3bb9709", "scanner": "scanner-primary", "fingerprint": "b19bd4dfbd3ab7d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4a48549149574b25", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/catalogue-import.test.ts:1"}, "properties": {"repobilityId": "a919e2c428fa7eb8", "scanner": "scanner-primary", "fingerprint": "4a48549149574b25", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab93c0301aed2b21", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/review-actions.test.ts:1"}, "properties": {"repobilityId": "e5af2663361cf7b7", "scanner": "scanner-primary", "fingerprint": "ab93c0301aed2b21", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8d99570f603a5953", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/marketplace-interleave.test.ts:1"}, "properties": {"repobilityId": "4584d9606e888991", "scanner": "scanner-primary", "fingerprint": "8d99570f603a5953", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a57ee62d9cc8212", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/ai-safety.test.ts:1"}, "properties": {"repobilityId": "0998ec80d4803490", "scanner": "scanner-primary", "fingerprint": "9a57ee62d9cc8212", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1099397cb6d2dab4", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/payfast.test.ts:1"}, "properties": {"repobilityId": "05adc5c23362e2ac", "scanner": "scanner-primary", "fingerprint": "1099397cb6d2dab4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fa2c5fa592330d7c", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/checkout.test.ts:1"}, "properties": {"repobilityId": "ed50244d22fb3977", "scanner": "scanner-primary", "fingerprint": "fa2c5fa592330d7c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f9173ff523613cbf", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/ai-deepening.test.ts:1"}, "properties": {"repobilityId": "45e8199df6cb040f", "scanner": "scanner-primary", "fingerprint": "f9173ff523613cbf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2052c79ac3956083", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/trust-system.test.ts:1"}, "properties": {"repobilityId": "e4a82dd2ebbc1b75", "scanner": "scanner-primary", "fingerprint": "2052c79ac3956083", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-85bf3fbf622a0b16", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/tenant-isolation.test.ts:1"}, "properties": {"repobilityId": "272ef7c438f0c312", "scanner": "scanner-primary", "fingerprint": "85bf3fbf622a0b16", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-38a8c3118687e402", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/seed-images.ts:1"}, "properties": {"repobilityId": "18579e4f11bf0348", "scanner": "scanner-primary", "fingerprint": "38a8c3118687e402", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-86ce99eb758ccaca", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/seed-products.ts:1"}, "properties": {"repobilityId": "913f6187f9d00289", "scanner": "scanner-primary", "fingerprint": "86ce99eb758ccaca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de435150f70a39fc", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/backfill-product-slugs.ts:1"}, "properties": {"repobilityId": "7912ee51abc9bf59", "scanner": "scanner-primary", "fingerprint": "de435150f70a39fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b73e9248dcc05993", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/seed-global-categories.ts:1"}, "properties": {"repobilityId": "950e3acc24739f7e", "scanner": "scanner-primary", "fingerprint": "b73e9248dcc05993", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-91bda4c55888be84", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/db-health-check.ts:1"}, "properties": {"repobilityId": "d68a8c75d8bf3052", "scanner": "scanner-primary", "fingerprint": "91bda4c55888be84", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9003864407a1bea2", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/seed-plans.ts:2"}, "properties": {"repobilityId": "4247f346cf402b9a", "scanner": "scanner-primary", "fingerprint": "9003864407a1bea2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dc0c9299075d0635", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/archive/migrate-images.ts:20"}, "properties": {"repobilityId": "22ddb9359b307903", "scanner": "scanner-primary", "fingerprint": "dc0c9299075d0635", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3ba948fd3072892", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/archive/backfill-product-prices.ts:1"}, "properties": {"repobilityId": "05c8b3da5c49338b", "scanner": "scanner-primary", "fingerprint": "d3ba948fd3072892", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d43a5a56e9afb965", "level": "none", "message": {"text": "Commented-code block (5 lines) in prisma/seed.ts:1"}, "properties": {"repobilityId": "cb7bda53f20b8af3", "scanner": "scanner-primary", "fingerprint": "d43a5a56e9afb965", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7307a00335866a83", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/floating-whatsapp.tsx:1"}, "properties": {"repobilityId": "e84f069c30237509", "scanner": "scanner-primary", "fingerprint": "7307a00335866a83", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-49bf1f08697a880d", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/cookie-consent.tsx:1"}, "properties": {"repobilityId": "6f0db4f737acafa1", "scanner": "scanner-primary", "fingerprint": "49bf1f08697a880d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-265df8d1c79abb54", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/notifications/notification-settings.tsx:3"}, "properties": {"repobilityId": "5f81e4f5230d4ce4", "scanner": "scanner-primary", "fingerprint": "265df8d1c79abb54", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fb71a6d19e809a41", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 components/notifications/whatsapp-sequence-toggle.tsx:21"}, "properties": {"repobilityId": "b0af2c90ed8744b5", "scanner": "scanner-primary", "fingerprint": "fb71a6d19e809a41", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-82c46b04a3ae903e", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/orders/buyer-order-list.tsx:3"}, "properties": {"repobilityId": "2d62fa2e5c968b4e", "scanner": "scanner-primary", "fingerprint": "82c46b04a3ae903e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f682731a3940240", "level": "none", "message": {"text": "Commented-code block (9 lines) in components/orders/orders-dashboard.tsx:1"}, "properties": {"repobilityId": "767f59f91b6cad1d", "scanner": "scanner-primary", "fingerprint": "1f682731a3940240", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4e5f8757d0c5bbe5", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/marketplace/marketplace-activity.tsx:1"}, "properties": {"repobilityId": "aab158cc28df320a", "scanner": "scanner-primary", "fingerprint": "4e5f8757d0c5bbe5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fd62460fe1ddc3fa", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/marketplace/category-bar.tsx:1"}, "properties": {"repobilityId": "5f1a10b72584e32d", "scanner": "scanner-primary", "fingerprint": "fd62460fe1ddc3fa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5ed34108ebd894c6", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/tracking/tracking-search.tsx:3"}, "properties": {"repobilityId": "befc7c8f2890d350", "scanner": "scanner-primary", "fingerprint": "5ed34108ebd894c6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7ee252a9ba4a414f", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/tracking/order-timeline.tsx:3"}, "properties": {"repobilityId": "c9406467aa964575", "scanner": "scanner-primary", "fingerprint": "7ee252a9ba4a414f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a89440cff4562271", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/analytics/analytics-dashboard.tsx:1"}, "properties": {"repobilityId": "9662e513545eea8c", "scanner": "scanner-primary", "fingerprint": "a89440cff4562271", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8b6470a7c876ccd8", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/tf/verified-seller-card.tsx:9"}, "properties": {"repobilityId": "f845cb30649a65d7", "scanner": "scanner-primary", "fingerprint": "8b6470a7c876ccd8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3e0c03b51af9e590", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/tf/button.tsx:7"}, "properties": {"repobilityId": "f76178e9717273e7", "scanner": "scanner-primary", "fingerprint": "3e0c03b51af9e590", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-563666c4d31241e7", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/tf/tf-fonts.tsx:3"}, "properties": {"repobilityId": "a59aa29786a6c132", "scanner": "scanner-primary", "fingerprint": "563666c4d31241e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1a1717fc942c2b4", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/tf/sticky-cta-bar.tsx:6"}, "properties": {"repobilityId": "0a8c59aa56931098", "scanner": "scanner-primary", "fingerprint": "e1a1717fc942c2b4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7bf9283e9d688cae", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/tf/bottom-nav.tsx:8"}, "properties": {"repobilityId": "43cbf5b4969f4ea1", "scanner": "scanner-primary", "fingerprint": "7bf9283e9d688cae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-24190029db0e6612", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/tf/marketplace/tf-filter-sheet.tsx:12"}, "properties": {"repobilityId": "ba83fa8b0aae638f", "scanner": "scanner-primary", "fingerprint": "24190029db0e6612", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d08976133e4b8813", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/tf/product/tf-order-panel.tsx:10"}, "properties": {"repobilityId": "e9dd0527301e8e40", "scanner": "scanner-primary", "fingerprint": "d08976133e4b8813", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-24637d3da072703b", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/tf/product/tf-product-page.tsx:16"}, "properties": {"repobilityId": "d29517fc7a567144", "scanner": "scanner-primary", "fingerprint": "24637d3da072703b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7bfd45fa6d92c225", "level": "none", "message": {"text": "Commented-code block (10 lines) in components/tf/product/tf-gallery.tsx:9"}, "properties": {"repobilityId": "b0b088d682e66559", "scanner": "scanner-primary", "fingerprint": "7bfd45fa6d92c225", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e3bb8ec3bbfc5428", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/tf/dashboard/tf-dashboard-home.tsx:22"}, "properties": {"repobilityId": "0b05b4a8532dc2f3", "scanner": "scanner-primary", "fingerprint": "e3bb8ec3bbfc5428", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5136789a20be874d", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/tf/motion/tf-live-ticker.tsx:7"}, "properties": {"repobilityId": "dce7385bf9b19cc2", "scanner": "scanner-primary", "fingerprint": "5136789a20be874d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d805376a7d49f441", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/tf/motion/tf-count-up.tsx:5"}, "properties": {"repobilityId": "617d694f64edbf33", "scanner": "scanner-primary", "fingerprint": "d805376a7d49f441", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f7d3a4c4c7ce1330", "level": "none", "message": {"text": "Commented-code block (9 lines) in components/tf/motion/tf-tilt.tsx:12"}, "properties": {"repobilityId": "ee307dce80de76df", "scanner": "scanner-primary", "fingerprint": "f7d3a4c4c7ce1330", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c4a019ed9153a5e0", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/tf/landing/tf-header.tsx:5"}, "properties": {"repobilityId": "3e5a7cfd6bffec4d", "scanner": "scanner-primary", "fingerprint": "c4a019ed9153a5e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ae40873b76e6f0a5", "level": "none", "message": {"text": "Commented-code block (8 lines) in components/tf/checkout/tf-cart-panel.tsx:34"}, "properties": {"repobilityId": "55ad5e9bde5435ff", "scanner": "scanner-primary", "fingerprint": "ae40873b76e6f0a5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-56976d07d5a719d3", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/tf/storefront/tf-storefront.tsx:16"}, "properties": {"repobilityId": "f8c0abb63e5be90a", "scanner": "scanner-primary", "fingerprint": "56976d07d5a719d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-40d9f614007358f7", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/tf/storefront/tf-reviews.tsx:6"}, "properties": {"repobilityId": "135203148f07bbbd", "scanner": "scanner-primary", "fingerprint": "40d9f614007358f7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2a6a532e87b9ed65", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/product/quick-sell-form.tsx:1"}, "properties": {"repobilityId": "20d426f64e61e2ef", "scanner": "scanner-primary", "fingerprint": "2a6a532e87b9ed65", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba6c5eb11d73c6d4", "level": "none", "message": {"text": "Commented-code block (8 lines) in components/product/price-suggestion-hint.tsx:1"}, "properties": {"repobilityId": "7adee1d53640929e", "scanner": "scanner-primary", "fingerprint": "ba6c5eb11d73c6d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-69ecce2590dac7d3", "level": "none", "message": {"text": "Commented-code block (8 lines) in components/product/variant-bulk-editor.tsx:1"}, "properties": {"repobilityId": "fd242717830a60ab", "scanner": "scanner-primary", "fingerprint": "69ecce2590dac7d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-007533a7dc70005e", "level": "none", "message": {"text": "Commented-code block (11 lines) in components/product/smart-variant-creator.tsx:1"}, "properties": {"repobilityId": "e6966b9c550b8329", "scanner": "scanner-primary", "fingerprint": "007533a7dc70005e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-507c23875ab09fc0", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/product/global-category-picker.tsx:1"}, "properties": {"repobilityId": "3d3d3b029dc2e212", "scanner": "scanner-primary", "fingerprint": "507c23875ab09fc0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-926da6cafa22be41", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/product/product-wizard.tsx:1"}, "properties": {"repobilityId": "25e349294ed236bb", "scanner": "scanner-primary", "fingerprint": "926da6cafa22be41", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3c885fb9bdf6fef", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/product/bg-remove-button.tsx:1"}, "properties": {"repobilityId": "5d42e5b7f0995f51", "scanner": "scanner-primary", "fingerprint": "d3c885fb9bdf6fef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b3043d7b3a9af70", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/product/listing-quality-score.tsx:1"}, "properties": {"repobilityId": "221a94d0fe606d74", "scanner": "scanner-primary", "fingerprint": "7b3043d7b3a9af70", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6ae4927778b69d68", "level": "none", "message": {"text": "Commented-code block (10 lines) in components/product/image-upload.tsx:1"}, "properties": {"repobilityId": "d75c2b09904b634a", "scanner": "scanner-primary", "fingerprint": "6ae4927778b69d68", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab370b56bebbacb3", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/product/edit-product-form.tsx:1"}, "properties": {"repobilityId": "272e0adfbdd44f76", "scanner": "scanner-primary", "fingerprint": "ab370b56bebbacb3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d505121a37cfb954", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/product/create-product-form.tsx:1"}, "properties": {"repobilityId": "b96782f9f5a66c2c", "scanner": "scanner-primary", "fingerprint": "d505121a37cfb954", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-614dae7a4ba96e05", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/product/first-listing-checklist.tsx:1"}, "properties": {"repobilityId": "0f3bcb04f8efdce0", "scanner": "scanner-primary", "fingerprint": "614dae7a4ba96e05", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f89e494b2cb4678", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/product/variant-grid.tsx:1"}, "properties": {"repobilityId": "2be42d8f0a624ba8", "scanner": "scanner-primary", "fingerprint": "1f89e494b2cb4678", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ae1019377f1df1ff", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/product/seller-tip.tsx:1"}, "properties": {"repobilityId": "6175ad5629058297", "scanner": "scanner-primary", "fingerprint": "ae1019377f1df1ff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-af930f1d2bdb6312", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/product/delete-product-button.tsx:1"}, "properties": {"repobilityId": "6c578b710160e08f", "scanner": "scanner-primary", "fingerprint": "af930f1d2bdb6312", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db5ed0eed29f26b2", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/product/add-variant-form.tsx:1"}, "properties": {"repobilityId": "e56ecebf4a20cff5", "scanner": "scanner-primary", "fingerprint": "db5ed0eed29f26b2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d26c88319874fde1", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/product/variant-list.tsx:1"}, "properties": {"repobilityId": "d362452ab2c27e45", "scanner": "scanner-primary", "fingerprint": "d26c88319874fde1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fa2637c95502050f", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/product/bulk-category-mapper.tsx:1"}, "properties": {"repobilityId": "88d181a5f655767a", "scanner": "scanner-primary", "fingerprint": "fa2637c95502050f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-843d1194551d7207", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/ui/empty-state.tsx:1"}, "properties": {"repobilityId": "494877f96d8a68f8", "scanner": "scanner-primary", "fingerprint": "843d1194551d7207", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fba96e7d3284ab93", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/ui/tradefeed-logo.tsx:1"}, "properties": {"repobilityId": "0eec929084f6f187", "scanner": "scanner-primary", "fingerprint": "fba96e7d3284ab93", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db35d9e6eaa2f6f1", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/ui/back-to-top.tsx:1"}, "properties": {"repobilityId": "4f762d0a1733a614", "scanner": "scanner-primary", "fingerprint": "db35d9e6eaa2f6f1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-53b7c46edda9a8fb", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/ui/global-bottom-nav.tsx:7"}, "properties": {"repobilityId": "a0c623afe92e8978", "scanner": "scanner-primary", "fingerprint": "53b7c46edda9a8fb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b4a339cb7234c2de", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/ui/illustrations.tsx:1"}, "properties": {"repobilityId": "04b24271e24d1d72", "scanner": "scanner-primary", "fingerprint": "b4a339cb7234c2de", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f5d37fc9f2de49e8", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/dashboard/team-page.tsx:1"}, "properties": {"repobilityId": "4111561f3365a7ab", "scanner": "scanner-primary", "fingerprint": "f5d37fc9f2de49e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1633fdc94f0c853f", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/dashboard/referral-invite.tsx:1"}, "properties": {"repobilityId": "20a35b31a4cca5a9", "scanner": "scanner-primary", "fingerprint": "1633fdc94f0c853f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f74b1e5f60d4f4f9", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/dashboard/shop-switcher.tsx:1"}, "properties": {"repobilityId": "e5374a806a64e649", "scanner": "scanner-primary", "fingerprint": "f74b1e5f60d4f4f9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-16540d1427cbd91f", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/dashboard/seller-health-card.tsx:1"}, "properties": {"repobilityId": "72de36b1368c9d9e", "scanner": "scanner-primary", "fingerprint": "16540d1427cbd91f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-12131cefa973181c", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/dashboard/activity-log-list.tsx:1"}, "properties": {"repobilityId": "711b61f806836405", "scanner": "scanner-primary", "fingerprint": "12131cefa973181c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c108c434af7abaa3", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/dashboard/mobile-bottom-nav.tsx:1"}, "properties": {"repobilityId": "a3155b418428eeb9", "scanner": "scanner-primary", "fingerprint": "c108c434af7abaa3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a356f4eb2d2145c", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/dashboard/trending-products.tsx:1"}, "properties": {"repobilityId": "d54efd6930111a78", "scanner": "scanner-primary", "fingerprint": "1a356f4eb2d2145c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1f8151bdfa7c562", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/dashboard/mobile-nav.tsx:1"}, "properties": {"repobilityId": "cfff565f6c82751a", "scanner": "scanner-primary", "fingerprint": "e1f8151bdfa7c562", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-385c1441a14fe53c", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/dashboard/order-notification-sound.tsx:1"}, "properties": {"repobilityId": "7154610aeaff51e1", "scanner": "scanner-primary", "fingerprint": "385c1441a14fe53c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e0d68f65e8ef450e", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/dashboard/quick-reply-templates.tsx:1"}, "properties": {"repobilityId": "cc3f5dbf4ec95889", "scanner": "scanner-primary", "fingerprint": "e0d68f65e8ef450e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3af001eba5bdc25f", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/import/photo-import-flow.tsx:1"}, "properties": {"repobilityId": "17e4f5b9aeac1a8e", "scanner": "scanner-primary", "fingerprint": "3af001eba5bdc25f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ee45f943516572c7", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/import/import-review-grid.tsx:1"}, "properties": {"repobilityId": "ae3941d02ce66e47", "scanner": "scanner-primary", "fingerprint": "ee45f943516572c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-12c226396cf3d660", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/import/whatsapp-import-flow.tsx:1"}, "properties": {"repobilityId": "b642397158a66ba2", "scanner": "scanner-primary", "fingerprint": "12c226396cf3d660", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-658497dfc224ce28", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/catalog/cart-panel.tsx:1"}, "properties": {"repobilityId": "ef3659b5bb9637ad", "scanner": "scanner-primary", "fingerprint": "658497dfc224ce28", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ec7d46cf61dfcf40", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/catalog/shop-review-highlights.tsx:1"}, "properties": {"repobilityId": "168cb663f8e3a971", "scanner": "scanner-primary", "fingerprint": "ec7d46cf61dfcf40", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f71123559c1583b4", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/catalog/add-combo-to-cart.tsx:1"}, "properties": {"repobilityId": "1c62290d51a0a06f", "scanner": "scanner-primary", "fingerprint": "f71123559c1583b4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0948d42a01c2eec1", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/catalog/shop-about-section.tsx:1"}, "properties": {"repobilityId": "4b65aef014c319b4", "scanner": "scanner-primary", "fingerprint": "0948d42a01c2eec1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1668e78e8df2df3b", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/catalog/whatsapp-cta-context.tsx:1"}, "properties": {"repobilityId": "fbc03ed25eaad9c7", "scanner": "scanner-primary", "fingerprint": "1668e78e8df2df3b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-99a56156dbb53ab6", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/catalog/combo-section.tsx:1"}, "properties": {"repobilityId": "aba05bd8eb8dfba4", "scanner": "scanner-primary", "fingerprint": "99a56156dbb53ab6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-80c64e2b37b1ea2d", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/catalog/recently-viewed-strip.tsx:1"}, "properties": {"repobilityId": "1ea92184414766f0", "scanner": "scanner-primary", "fingerprint": "80c64e2b37b1ea2d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-286fd37f2252a9f7", "level": "none", "message": {"text": "Commented-code block (12 lines) in components/catalog/product-image-gallery.tsx:1"}, "properties": {"repobilityId": "947c95c58f19f658", "scanner": "scanner-primary", "fingerprint": "286fd37f2252a9f7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b7b7ae3362ac7f92", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/catalog/shop-profile.tsx:1"}, "properties": {"repobilityId": "25f2ffa0b27493a4", "scanner": "scanner-primary", "fingerprint": "b7b7ae3362ac7f92", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-37bad38866c80765", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/catalog/wishlist-heart.tsx:1"}, "properties": {"repobilityId": "bd8ca736ee0b0611", "scanner": "scanner-primary", "fingerprint": "37bad38866c80765", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c07a7d0b62d6af25", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/catalog/cart-button.tsx:1"}, "properties": {"repobilityId": "5eee7becc91686a0", "scanner": "scanner-primary", "fingerprint": "c07a7d0b62d6af25", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3835747dfce6848f", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/catalog/add-to-cart.tsx:1"}, "properties": {"repobilityId": "dfbe5529bf9c5acc", "scanner": "scanner-primary", "fingerprint": "3835747dfce6848f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-22a01d18bc8a4a60", "level": "none", "message": {"text": "Commented-code block (8 lines) in components/catalog/seller-trust-stats.tsx:1"}, "properties": {"repobilityId": "711b0ab5a6709612", "scanner": "scanner-primary", "fingerprint": "22a01d18bc8a4a60", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c486dc0030e90c07", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/catalog/catalog-search-filter.tsx:1"}, "properties": {"repobilityId": "66c435cc0ebbd274", "scanner": "scanner-primary", "fingerprint": "c486dc0030e90c07", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41e0dfe9b47f5250", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/catalog/share-product.tsx:1"}, "properties": {"repobilityId": "02fb6642863974c8", "scanner": "scanner-primary", "fingerprint": "41e0dfe9b47f5250", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2e04341a27a98f53", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/catalog/follow-shop-button.tsx:1"}, "properties": {"repobilityId": "e5eb0c7c6afe2c0e", "scanner": "scanner-primary", "fingerprint": "2e04341a27a98f53", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-86a23538421a9308", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/catalog/whatsapp-cta-product-setter.tsx:1"}, "properties": {"repobilityId": "a527eac936c23dde", "scanner": "scanner-primary", "fingerprint": "86a23538421a9308", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-29b7ed4585611ae4", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/catalog/wishlist-button.tsx:1"}, "properties": {"repobilityId": "eaaafddc59cc30cb", "scanner": "scanner-primary", "fingerprint": "29b7ed4585611ae4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1003cdd8e10b540a", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/catalog/share-catalog.tsx:1"}, "properties": {"repobilityId": "ac7dbc57ab0374b6", "scanner": "scanner-primary", "fingerprint": "1003cdd8e10b540a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-71521c7d63e9ead1", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/catalog/wishlist-panel.tsx:1"}, "properties": {"repobilityId": "cb42c8aebc706df0", "scanner": "scanner-primary", "fingerprint": "71521c7d63e9ead1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-784a97136889e606", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/catalog/offline-banner.tsx:1"}, "properties": {"repobilityId": "f2a8f2023fc23678", "scanner": "scanner-primary", "fingerprint": "784a97136889e606", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9c8a751c389551f8", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/catalog/catalog-cache-manager.tsx:1"}, "properties": {"repobilityId": "9e252294a102c27f", "scanner": "scanner-primary", "fingerprint": "9c8a751c389551f8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1801906e57abc0de", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/catalog/shop-hero.tsx:1"}, "properties": {"repobilityId": "5943c7bd6ea772ff", "scanner": "scanner-primary", "fingerprint": "1801906e57abc0de", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3969273b7fe8044d", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/catalog/sticky-whatsapp-cta.tsx:1"}, "properties": {"repobilityId": "ce24f15d6bfc4901", "scanner": "scanner-primary", "fingerprint": "3969273b7fe8044d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ee5de8a02af20853", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/reviews/reviews-dashboard.tsx:3"}, "properties": {"repobilityId": "608440f41271508c", "scanner": "scanner-primary", "fingerprint": "ee5de8a02af20853", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c588a6f32d011588", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/reviews/product-reviews.tsx:3"}, "properties": {"repobilityId": "d2bd5bec35eac46e", "scanner": "scanner-primary", "fingerprint": "c588a6f32d011588", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ed89f264e6319194", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/reviews/verified-review-form.tsx:1"}, "properties": {"repobilityId": "dfb8542f73bc487b", "scanner": "scanner-primary", "fingerprint": "ed89f264e6319194", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-60f7ba2963fc24c4", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/drops/drop-form.tsx:1"}, "properties": {"repobilityId": "baf103f75aeac8b4", "scanner": "scanner-primary", "fingerprint": "60f7ba2963fc24c4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-872b302e251ce377", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/billing/billing-dashboard.tsx:1"}, "properties": {"repobilityId": "7eddae29625930b1", "scanner": "scanner-primary", "fingerprint": "872b302e251ce377", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3f0b8415b245b46f", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/billing/upgrade-form.tsx:1"}, "properties": {"repobilityId": "4a673b2e89b4958a", "scanner": "scanner-primary", "fingerprint": "3f0b8415b245b46f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3575175d588d9c0a", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/admin/admin-promotion-dashboard.tsx:1"}, "properties": {"repobilityId": "aa9e90487ea3f447", "scanner": "scanner-primary", "fingerprint": "3575175d588d9c0a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5489f6e5ae381f53", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/admin/upgrade-requests-panel.tsx:1"}, "properties": {"repobilityId": "cbc16d2428dc2699", "scanner": "scanner-primary", "fingerprint": "5489f6e5ae381f53", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-731fcdaddc42f2d2", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/admin/admin-user-list.tsx:1"}, "properties": {"repobilityId": "c7f90bc202011dd4", "scanner": "scanner-primary", "fingerprint": "731fcdaddc42f2d2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-257ccb53d1551e70", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/admin/payment-methods-manager.tsx:1"}, "properties": {"repobilityId": "382cbb0fa0b53818", "scanner": "scanner-primary", "fingerprint": "257ccb53d1551e70", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-be29d19ca2ddf9c1", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/admin/admin-moderation-list.tsx:1"}, "properties": {"repobilityId": "ad966d2dedfe1797", "scanner": "scanner-primary", "fingerprint": "be29d19ca2ddf9c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3a75f6fda2fa7839", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/admin/admin-order-list.tsx:1"}, "properties": {"repobilityId": "1f7e8d47b487f501", "scanner": "scanner-primary", "fingerprint": "3a75f6fda2fa7839", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f38cb184ee25b66e", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/admin/admin-category-manager.tsx:1"}, "properties": {"repobilityId": "fbc54a2543e2f9f9", "scanner": "scanner-primary", "fingerprint": "f38cb184ee25b66e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9ebb71e79c5518f1", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/admin/admin-marketplace-analytics.tsx:1"}, "properties": {"repobilityId": "24d96c61a698f52a", "scanner": "scanner-primary", "fingerprint": "9ebb71e79c5518f1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5c751fab359e0220", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/admin/admin-audit-log.tsx:1"}, "properties": {"repobilityId": "bdfbc9ce3d8fb297", "scanner": "scanner-primary", "fingerprint": "5c751fab359e0220", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1278714faaa05903", "level": "none", "message": {"text": "Commented-code block (10 lines) in components/admin/admin-shop-list.tsx:1"}, "properties": {"repobilityId": "4ae56a81e288d7db", "scanner": "scanner-primary", "fingerprint": "1278714faaa05903", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dc048c36f4bb6f8d", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/admin/verification-queue.tsx:1"}, "properties": {"repobilityId": "1f5ecc802316097f", "scanner": "scanner-primary", "fingerprint": "dc048c36f4bb6f8d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ebd3bbd4802abe21", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/landing/animated-stats.tsx:5"}, "properties": {"repobilityId": "55311270ac1350ff", "scanner": "scanner-primary", "fingerprint": "ebd3bbd4802abe21", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5b5b62a3c507c97a", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/landing/mobile-nav.tsx:1"}, "properties": {"repobilityId": "218615f053ff612e", "scanner": "scanner-primary", "fingerprint": "5b5b62a3c507c97a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-42d48e8e901856d4", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/combo/delete-combo-button.tsx:1"}, "properties": {"repobilityId": "aa155c3eb0e773f8", "scanner": "scanner-primary", "fingerprint": "42d48e8e901856d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f75edb37660ba86", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/combo/combo-form.tsx:1"}, "properties": {"repobilityId": "30d4818bb29b022b", "scanner": "scanner-primary", "fingerprint": "0f75edb37660ba86", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a63dcd92cce02cdd", "level": "none", "message": {"text": "Commented-code block (5 lines) in components/combo/combo-category-manager.tsx:1"}, "properties": {"repobilityId": "8861cb4f02610e9d", "scanner": "scanner-primary", "fingerprint": "a63dcd92cce02cdd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4cd93febf61f328d", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/category/category-manager.tsx:1"}, "properties": {"repobilityId": "abd85ebe64fa2cfc", "scanner": "scanner-primary", "fingerprint": "4cd93febf61f328d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d9e1c081883534ef", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/bulk-import/bulk-import-form.tsx:3"}, "properties": {"repobilityId": "1ca5988d5aba0445", "scanner": "scanner-primary", "fingerprint": "d9e1c081883534ef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-47f1e52e791dca70", "level": "none", "message": {"text": "Commented-code block (12 lines) in components/shop/shop-settings-form.tsx:1"}, "properties": {"repobilityId": "b44e5ac8368e9d28", "scanner": "scanner-primary", "fingerprint": "47f1e52e791dca70", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b66cb0611bd29d5", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/shop/shop-gallery-upload.tsx:1"}, "properties": {"repobilityId": "ee691cbce2c76eea", "scanner": "scanner-primary", "fingerprint": "9b66cb0611bd29d5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6297d72fa29778f6", "level": "none", "message": {"text": "Commented-code block (12 lines) in components/shop/custom-domain-settings.tsx:1"}, "properties": {"repobilityId": "3899f8f50d7d8ba6", "scanner": "scanner-primary", "fingerprint": "6297d72fa29778f6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e13566c91596cbe0", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/shop/verification-request-card.tsx:1"}, "properties": {"repobilityId": "a42546350e3934de", "scanner": "scanner-primary", "fingerprint": "e13566c91596cbe0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dd1c17cbe9ce145b", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/shop/settings-sidebar.tsx:1"}, "properties": {"repobilityId": "8e6d7b48a198bb1e", "scanner": "scanner-primary", "fingerprint": "dd1c17cbe9ce145b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7517ee22b6954e9c", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/shop/seller-preferences-form.tsx:1"}, "properties": {"repobilityId": "7d5a89bc11ec3ec5", "scanner": "scanner-primary", "fingerprint": "7517ee22b6954e9c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4710a5a2b6bcf20d", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/shop/create-shop-form.tsx:1"}, "properties": {"repobilityId": "89a6e2dfb86bf0a7", "scanner": "scanner-primary", "fingerprint": "4710a5a2b6bcf20d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0634571122831d0d", "level": "none", "message": {"text": "Commented-code block (7 lines) in components/shop/get-started-flow.tsx:1"}, "properties": {"repobilityId": "889085f057b36eeb", "scanner": "scanner-primary", "fingerprint": "0634571122831d0d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d43bef3564409e66", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/shop/shop-location-fields.tsx:1"}, "properties": {"repobilityId": "5d8441b15fe888da", "scanner": "scanner-primary", "fingerprint": "d43bef3564409e66", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b2fae8e89b0e300", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/revenue/revenue-dashboard.tsx:3"}, "properties": {"repobilityId": "a4ecd5373228a6bb", "scanner": "scanner-primary", "fingerprint": "9b2fae8e89b0e300", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cbd7c761a6610f34", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/seo/seo-page.tsx:10"}, "properties": {"repobilityId": "48550513c13a451b", "scanner": "scanner-primary", "fingerprint": "cbd7c761a6610f34", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b20b29a9f96d906c", "level": "none", "message": {"text": "Commented-code block (6 lines) in components/export/export-buttons.tsx:1"}, "properties": {"repobilityId": "5dd7b507f82e7851", "scanner": "scanner-primary", "fingerprint": "b20b29a9f96d906c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b9d987ce647f3bac", "level": "none", "message": {"text": "Commented-code block (10 lines) in app/robots.ts:1"}, "properties": {"repobilityId": "67c772c585be66f3", "scanner": "scanner-primary", "fingerprint": "b9d987ce647f3bac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e4c17f4e98329c9a", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/sitemap.ts:1"}, "properties": {"repobilityId": "7e80e81c3c88b62d", "scanner": "scanner-primary", "fingerprint": "e4c17f4e98329c9a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fd94c68b2f3e9116", "level": "none", "message": {"text": "Commented-code block (18 lines) in app/page.tsx:51"}, "properties": {"repobilityId": "e1c3178a50c9098c", "scanner": "scanner-primary", "fingerprint": "fd94c68b2f3e9116", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d6723d6e4a036f1", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/sign-up/[[...sign-up]]/page.tsx:1"}, "properties": {"repobilityId": "a891774c12e45c9e", "scanner": "scanner-primary", "fingerprint": "0d6723d6e4a036f1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-253cb9e1cae879bd", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/orders/page.tsx:1"}, "properties": {"repobilityId": "f7256b5d79392b6b", "scanner": "scanner-primary", "fingerprint": "253cb9e1cae879bd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cde7f4d997a4c7d7", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/marketplace/page.tsx:24"}, "properties": {"repobilityId": "9f6f5d6378d57d0c", "scanner": "scanner-primary", "fingerprint": "cde7f4d997a4c7d7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41c06f37c39a5376", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/marketplace/[province]/page.tsx:23"}, "properties": {"repobilityId": "93f7289e67cf08a3", "scanner": "scanner-primary", "fingerprint": "41c06f37c39a5376", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b3384bb0562725ff", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/marketplace/[province]/[city]/page.tsx:24"}, "properties": {"repobilityId": "21153991d8f8d29e", "scanner": "scanner-primary", "fingerprint": "b3384bb0562725ff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2924cf0a0a31e763", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/marketplace/[province]/[city]/[category]/page.tsx:27"}, "properties": {"repobilityId": "4f3593aabc57e055", "scanner": "scanner-primary", "fingerprint": "2924cf0a0a31e763", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4a8bb77d602c6d79", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/marketplace/category/[slug]/page.tsx:18"}, "properties": {"repobilityId": "c7ff5f12ee0042cf", "scanner": "scanner-primary", "fingerprint": "4a8bb77d602c6d79", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca1dea604064c25b", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/create-shop/page.tsx:1"}, "properties": {"repobilityId": "468299106aeb97a6", "scanner": "scanner-primary", "fingerprint": "ca1dea604064c25b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ff05e2958b5c5db7", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/review/[token]/page.tsx:1"}, "properties": {"repobilityId": "9d0fe94da7418326", "scanner": "scanner-primary", "fingerprint": "ff05e2958b5c5db7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1697062cee205984", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/contact/page.tsx:1"}, "properties": {"repobilityId": "c2ca50e76b47fd38", "scanner": "scanner-primary", "fingerprint": "1697062cee205984", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-86cfbf1ac2baca5d", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/merchant-feed/route.ts:11"}, "properties": {"repobilityId": "5ad4f5b14c569bd3", "scanner": "scanner-primary", "fingerprint": "86cfbf1ac2baca5d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f8b23db2f4c2c221", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/api/ai/generate-product/route.ts:6"}, "properties": {"repobilityId": "7d5edb4da2611c25", "scanner": "scanner-primary", "fingerprint": "f8b23db2f4c2c221", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c829a8782657ecb9", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/health/route.ts:1"}, "properties": {"repobilityId": "afa42ab2f123de32", "scanner": "scanner-primary", "fingerprint": "c829a8782657ecb9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b0ef9f358d884c62", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/shops/[shopId]/order-count/route.ts:1"}, "properties": {"repobilityId": "27e76e0c95d6954a", "scanner": "scanner-primary", "fingerprint": "b0ef9f358d884c62", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ddcef1d82bf6f6e5", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/search/autocomplete/route.ts:1"}, "properties": {"repobilityId": "763a5a087f1160c8", "scanner": "scanner-primary", "fingerprint": "ddcef1d82bf6f6e5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f6f4539a298587a0", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/admin/export/orders/route.ts:1"}, "properties": {"repobilityId": "7e53f513adb0547b", "scanner": "scanner-primary", "fingerprint": "f6f4539a298587a0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-601f07781984f33a", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/uploadthing/route.ts:1"}, "properties": {"repobilityId": "cb1caea5316bd356", "scanner": "scanner-primary", "fingerprint": "601f07781984f33a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-47018e203ca81d1e", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/uploadthing/core.ts:1"}, "properties": {"repobilityId": "32f90598e906ec3b", "scanner": "scanner-primary", "fingerprint": "47018e203ca81d1e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fb0f19e4e11a394c", "level": "none", "message": {"text": "Commented-code block (10 lines) in app/api/cron/seller-sequences/route.ts:1"}, "properties": {"repobilityId": "aca2baa9b8686218", "scanner": "scanner-primary", "fingerprint": "fb0f19e4e11a394c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a720873b7af44b4c", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/cron/subscription-expiry/route.ts:1"}, "properties": {"repobilityId": "df6e3bf22863e981", "scanner": "scanner-primary", "fingerprint": "a720873b7af44b4c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d90e6f8dc5f5e224", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/cron/ranking-computation/route.ts:1"}, "properties": {"repobilityId": "908fae2808ead2ca", "scanner": "scanner-primary", "fingerprint": "d90e6f8dc5f5e224", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-585cef1489c53fea", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/cron/domain-health/route.ts:1"}, "properties": {"repobilityId": "3df70d83f8553d6f", "scanner": "scanner-primary", "fingerprint": "585cef1489c53fea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6baaff07f7fb1e8c", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/cron/data-retention/route.ts:1"}, "properties": {"repobilityId": "f71a743b065e1b9a", "scanner": "scanner-primary", "fingerprint": "6baaff07f7fb1e8c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f08740f03375d96f", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/shipping/rates/route.ts:1"}, "properties": {"repobilityId": "f0a18e9fb74b4c99", "scanner": "scanner-primary", "fingerprint": "f08740f03375d96f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-51d593d8244dc801", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/og/route.tsx:1"}, "properties": {"repobilityId": "dfef94e3fe2196d8", "scanner": "scanner-primary", "fingerprint": "51d593d8244dc801", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf4c2fad19300e4c", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/api/webhooks/whatsapp/route.ts:1"}, "properties": {"repobilityId": "b036ed3207985ac5", "scanner": "scanner-primary", "fingerprint": "bf4c2fad19300e4c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4bf7dce8958b7b77", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/api/webhooks/clerk/route.ts:17"}, "properties": {"repobilityId": "fb99585a02d21d20", "scanner": "scanner-primary", "fingerprint": "4bf7dce8958b7b77", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-09cf654a01a0f3e0", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/api/webhooks/payfast/route.ts:1"}, "properties": {"repobilityId": "ade724ed62ba07fe", "scanner": "scanner-primary", "fingerprint": "09cf654a01a0f3e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1c9e1c0d8c48db04", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 app/api/feeds/google/route.ts:13"}, "properties": {"repobilityId": "b3bfd3e60bff550c", "scanner": "scanner-primary", "fingerprint": "1c9e1c0d8c48db04", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-716d97f8e38f6196", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/dashboard/page.tsx:1"}, "properties": {"repobilityId": "08712b3eabbd3721", "scanner": "scanner-primary", "fingerprint": "716d97f8e38f6196", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-40be3857509e9cc2", "level": "none", "message": {"text": "Commented-code block (12 lines) in app/dashboard/[slug]/page.tsx:1"}, "properties": {"repobilityId": "d9985eb135c2ede1", "scanner": "scanner-primary", "fingerprint": "40be3857509e9cc2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4075ffbcd6a06a0a", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/dashboard/[slug]/layout.tsx:1"}, "properties": {"repobilityId": "71f57b709802829a", "scanner": "scanner-primary", "fingerprint": "4075ffbcd6a06a0a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-70498360c89e8ce1", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/dashboard/[slug]/settings/page.tsx:1"}, "properties": {"repobilityId": "75fd7a71ab196aef", "scanner": "scanner-primary", "fingerprint": "70498360c89e8ce1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ae1a42e81ea3b826", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/dashboard/[slug]/notifications/page.tsx:1"}, "properties": {"repobilityId": "03277aefa3bccf85", "scanner": "scanner-primary", "fingerprint": "ae1a42e81ea3b826", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8021aa4fb94f77a6", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/dashboard/[slug]/orders/page.tsx:1"}, "properties": {"repobilityId": "f34a6b12a545b956", "scanner": "scanner-primary", "fingerprint": "8021aa4fb94f77a6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a20d29f9b69a44ea", "level": "none", "message": {"text": "Commented-code block (11 lines) in app/dashboard/[slug]/referrals/page.tsx:1"}, "properties": {"repobilityId": "9632e6c56fa8fcd8", "scanner": "scanner-primary", "fingerprint": "a20d29f9b69a44ea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-88ab07003ea4dbc9", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/dashboard/[slug]/analytics/page.tsx:1"}, "properties": {"repobilityId": "14e49be6a15da314", "scanner": "scanner-primary", "fingerprint": "88ab07003ea4dbc9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7aaf554d288cb97d", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/dashboard/[slug]/activity/page.tsx:1"}, "properties": {"repobilityId": "928b60a8bbd7a5c9", "scanner": "scanner-primary", "fingerprint": "7aaf554d288cb97d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-389157123a1dd482", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/dashboard/[slug]/conversations/page.tsx:1"}, "properties": {"repobilityId": "5c4aad3eddd44330", "scanner": "scanner-primary", "fingerprint": "389157123a1dd482", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2a70a16438002623", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/dashboard/[slug]/conversations/[conversationId]/page.tsx:1"}, "properties": {"repobilityId": "8c77d9e946970a5b", "scanner": "scanner-primary", "fingerprint": "2a70a16438002623", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b4d41d13255d71c0", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/dashboard/[slug]/import/page.tsx:1"}, "properties": {"repobilityId": "99fcce784137cf5c", "scanner": "scanner-primary", "fingerprint": "b4d41d13255d71c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-113f95cd2c0e42a7", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/dashboard/[slug]/team/page.tsx:1"}, "properties": {"repobilityId": "d436060fada14be4", "scanner": "scanner-primary", "fingerprint": "113f95cd2c0e42a7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-75efad23e69dfb9f", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/dashboard/[slug]/customers/page.tsx:1"}, "properties": {"repobilityId": "d089547ff06f9d14", "scanner": "scanner-primary", "fingerprint": "75efad23e69dfb9f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d27b07e443c0b52", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/dashboard/[slug]/promote/page.tsx:1"}, "properties": {"repobilityId": "bacb66613d8eb314", "scanner": "scanner-primary", "fingerprint": "0d27b07e443c0b52", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0efb5e6ccd098dda", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/dashboard/[slug]/marketplace-categories/page.tsx:1"}, "properties": {"repobilityId": "96b64fb4343e2698", "scanner": "scanner-primary", "fingerprint": "0efb5e6ccd098dda", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-64519eac0bd0b038", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/dashboard/[slug]/reviews/page.tsx:1"}, "properties": {"repobilityId": "8ebead19a9aae0ce", "scanner": "scanner-primary", "fingerprint": "64519eac0bd0b038", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d19412d419d444e2", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/dashboard/[slug]/templates/page.tsx:1"}, "properties": {"repobilityId": "61da9e2620180c26", "scanner": "scanner-primary", "fingerprint": "d19412d419d444e2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6734c13f242e2f17", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/dashboard/[slug]/boost/page.tsx:1"}, "properties": {"repobilityId": "97febb58e7d7be1b", "scanner": "scanner-primary", "fingerprint": "6734c13f242e2f17", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2d466b745641f5bd", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/dashboard/[slug]/billing/page.tsx:1"}, "properties": {"repobilityId": "cc20afd6848e125e", "scanner": "scanner-primary", "fingerprint": "2d466b745641f5bd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f03d745025f1be79", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/dashboard/[slug]/billing/upgrade/page.tsx:1"}, "properties": {"repobilityId": "95a42fab087e39fa", "scanner": "scanner-primary", "fingerprint": "f03d745025f1be79", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-698ec17e92c927e8", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/dashboard/[slug]/categories/page.tsx:1"}, "properties": {"repobilityId": "581b3dab916603e6", "scanner": "scanner-primary", "fingerprint": "698ec17e92c927e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-44216d5fa9110592", "level": "none", "message": {"text": "Commented-code block (9 lines) in app/dashboard/[slug]/products/[productId]/page.tsx:1"}, "properties": {"repobilityId": "85f3e547b873092d", "scanner": "scanner-primary", "fingerprint": "44216d5fa9110592", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f7b59238463956fe", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/dashboard/[slug]/products/import/page.tsx:1"}, "properties": {"repobilityId": "1fd46691a052f0c4", "scanner": "scanner-primary", "fingerprint": "f7b59238463956fe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6e4037c963279275", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/dashboard/[slug]/revenue/page.tsx:1"}, "properties": {"repobilityId": "21af347f7f60a357", "scanner": "scanner-primary", "fingerprint": "6e4037c963279275", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d62733ea8f8dda87", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/catalog/[slug]/not-found.tsx:1"}, "properties": {"repobilityId": "0d4c9f871be205b5", "scanner": "scanner-primary", "fingerprint": "d62733ea8f8dda87", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-59f315571c9bbc6f", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/catalog/[slug]/loading.tsx:1"}, "properties": {"repobilityId": "7c2bba61e2851d83", "scanner": "scanner-primary", "fingerprint": "59f315571c9bbc6f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f0a4869fd7852a00", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/catalog/[slug]/page.tsx:123"}, "properties": {"repobilityId": "b6582978936b2fb1", "scanner": "scanner-primary", "fingerprint": "f0a4869fd7852a00", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-323b4146503cde0e", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/catalog/[slug]/layout.tsx:1"}, "properties": {"repobilityId": "887cc0e4d37654c6", "scanner": "scanner-primary", "fingerprint": "323b4146503cde0e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b1a11a29c1db3719", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/catalog/[slug]/drops/[dropId]/page.tsx:1"}, "properties": {"repobilityId": "73e5fa176ed2677c", "scanner": "scanner-primary", "fingerprint": "b1a11a29c1db3719", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3d7e8527c1569ca5", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/s/[slug]/page.tsx:1"}, "properties": {"repobilityId": "3986df307697a3ae", "scanner": "scanner-primary", "fingerprint": "3d7e8527c1569ca5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c1d523bdb166050c", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/sign-in/[[...sign-in]]/page.tsx:1"}, "properties": {"repobilityId": "41ab69c95892a731", "scanner": "scanner-primary", "fingerprint": "c1d523bdb166050c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb0581d4c746fd9f", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/import-whatsapp-catalogue/page.tsx:8"}, "properties": {"repobilityId": "7c23c047706abad7", "scanner": "scanner-primary", "fingerprint": "cb0581d4c746fd9f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-86494d8978a63802", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/admin/page.tsx:1"}, "properties": {"repobilityId": "a632c9bfae6fea97", "scanner": "scanner-primary", "fingerprint": "86494d8978a63802", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0b24ebbb40345ce9", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/admin/layout.tsx:1"}, "properties": {"repobilityId": "6094452fc836fa3a", "scanner": "scanner-primary", "fingerprint": "0b24ebbb40345ce9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f80cc2447684801d", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/admin/users/page.tsx:1"}, "properties": {"repobilityId": "a7acb1c6939a529f", "scanner": "scanner-primary", "fingerprint": "f80cc2447684801d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a399e3cf4dee34b3", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/admin/upgrade-requests/page.tsx:1"}, "properties": {"repobilityId": "0961eff070abf5be", "scanner": "scanner-primary", "fingerprint": "a399e3cf4dee34b3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e6e185c824509378", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/admin/orders/page.tsx:1"}, "properties": {"repobilityId": "4f6d88f92cfee123", "scanner": "scanner-primary", "fingerprint": "e6e185c824509378", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ec165bb3cba47539", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/admin/analytics/page.tsx:1"}, "properties": {"repobilityId": "24b69f71a34a7be2", "scanner": "scanner-primary", "fingerprint": "ec165bb3cba47539", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b0c477cdfd8474f", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/admin/promotions/page.tsx:1"}, "properties": {"repobilityId": "5a429565f7ba67b4", "scanner": "scanner-primary", "fingerprint": "7b0c477cdfd8474f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8f6570689301c111", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/admin/audit-log/page.tsx:1"}, "properties": {"repobilityId": "9095247ed93dc258", "scanner": "scanner-primary", "fingerprint": "8f6570689301c111", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c4e5650d85d1995e", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/admin/moderation/page.tsx:1"}, "properties": {"repobilityId": "b10ee662e5b3f9a9", "scanner": "scanner-primary", "fingerprint": "c4e5650d85d1995e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a8e2ee26c44cf03", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/admin/activation/page.tsx:1"}, "properties": {"repobilityId": "92109c9b23161232", "scanner": "scanner-primary", "fingerprint": "1a8e2ee26c44cf03", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d5d4fcaf70caaa7f", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/admin/verifications/page.tsx:1"}, "properties": {"repobilityId": "11d90a6dda691110", "scanner": "scanner-primary", "fingerprint": "d5d4fcaf70caaa7f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1b56b6c2a43afa0e", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/admin/categories/page.tsx:1"}, "properties": {"repobilityId": "a4f78848d07c72c3", "scanner": "scanner-primary", "fingerprint": "1b56b6c2a43afa0e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf38d03f1ef86fb4", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/admin/payment-methods/page.tsx:1"}, "properties": {"repobilityId": "c053e65275c7ab06", "scanner": "scanner-primary", "fingerprint": "cf38d03f1ef86fb4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c370d148b2ff8d77", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/admin/domains/page.tsx:1"}, "properties": {"repobilityId": "139a28fc6c706946", "scanner": "scanner-primary", "fingerprint": "c370d148b2ff8d77", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-954b5fb7b5c25cd8", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/me/page.tsx:1"}, "properties": {"repobilityId": "0fbd303725e4e27b", "scanner": "scanner-primary", "fingerprint": "954b5fb7b5c25cd8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d1b12d1ce50159d4", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/terms/page.tsx:1"}, "properties": {"repobilityId": "e9288b45e64f8f5e", "scanner": "scanner-primary", "fingerprint": "d1b12d1ce50159d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1a0dc5c149fe61e", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/actions/price-suggestion.ts:1"}, "properties": {"repobilityId": "b3597b8b827f96a2", "scanner": "scanner-primary", "fingerprint": "f1a0dc5c149fe61e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fe5e4a0a2eb41c30", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/actions/verification.ts:1"}, "properties": {"repobilityId": "45a95462f5886db0", "scanner": "scanner-primary", "fingerprint": "fe5e4a0a2eb41c30", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7eddfe63eae05f36", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/actions/catalogue-import.ts:1"}, "properties": {"repobilityId": "ef17941306010282", "scanner": "scanner-primary", "fingerprint": "7eddfe63eae05f36", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a1e477bb5e7874c3", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/actions/wishlist.ts:1"}, "properties": {"repobilityId": "16b1051ef61276d5", "scanner": "scanner-primary", "fingerprint": "a1e477bb5e7874c3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3fb20a28b0e691fb", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/actions/reviews.ts:1"}, "properties": {"repobilityId": "dc79d8a1019f1a9e", "scanner": "scanner-primary", "fingerprint": "3fb20a28b0e691fb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-92bf01f50f8be07a", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/actions/analytics.ts:1"}, "properties": {"repobilityId": "af1600a53cf9f591", "scanner": "scanner-primary", "fingerprint": "92bf01f50f8be07a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8e5f32a8089caa71", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/actions/product.ts:8"}, "properties": {"repobilityId": "8c44de256a61eee3", "scanner": "scanner-primary", "fingerprint": "8e5f32a8089caa71", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d88f608cc4d03c8c", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/actions/onboarding.ts:1"}, "properties": {"repobilityId": "5968f278514ad27e", "scanner": "scanner-primary", "fingerprint": "d88f608cc4d03c8c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dcc23b0a19c19ba9", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/actions/billing.ts:1"}, "properties": {"repobilityId": "05008afe804f47d5", "scanner": "scanner-primary", "fingerprint": "dcc23b0a19c19ba9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3cd53906f6e29400", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/actions/stock-alerts.ts:1"}, "properties": {"repobilityId": "36b3005e701f11fc", "scanner": "scanner-primary", "fingerprint": "3cd53906f6e29400", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-36a120bf7542cdaf", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/actions/image.ts:1"}, "properties": {"repobilityId": "4b54be5ad34b6712", "scanner": "scanner-primary", "fingerprint": "36a120bf7542cdaf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f90f8bb6a49a0011", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/actions/global-categories.ts:1"}, "properties": {"repobilityId": "4e1cfdfd7516b058", "scanner": "scanner-primary", "fingerprint": "f90f8bb6a49a0011", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5c5abb93707e906e", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/actions/category.ts:1"}, "properties": {"repobilityId": "c3906fbefc731235", "scanner": "scanner-primary", "fingerprint": "5c5abb93707e906e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-afee9955532c462e", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/actions/marketplace.ts:1"}, "properties": {"repobilityId": "9ae986c025b72276", "scanner": "scanner-primary", "fingerprint": "afee9955532c462e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-66892cead75067bd", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/actions/bulk-import.ts:1"}, "properties": {"repobilityId": "562971483b69987f", "scanner": "scanner-primary", "fingerprint": "66892cead75067bd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7ee3a0c3e7d7081a", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/actions/follow.ts:1"}, "properties": {"repobilityId": "a3022446e53b7aac", "scanner": "scanner-primary", "fingerprint": "7ee3a0c3e7d7081a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b8aeea3ca5057caa", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/actions/gallery.ts:1"}, "properties": {"repobilityId": "919af389a7f59294", "scanner": "scanner-primary", "fingerprint": "b8aeea3ca5057caa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1455b8c33c994de1", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/actions/orders.ts:1"}, "properties": {"repobilityId": "024fe2c787f0c4a2", "scanner": "scanner-primary", "fingerprint": "1455b8c33c994de1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6571e35eca7f0f2d", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/actions/image-bg.ts:1"}, "properties": {"repobilityId": "a8660c3c5713e36b", "scanner": "scanner-primary", "fingerprint": "6571e35eca7f0f2d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8fdb3a1554f9541d", "level": "none", "message": {"text": "Commented-code block (8 lines) in app/actions/verified-review.ts:1"}, "properties": {"repobilityId": "ecca39869456ba61", "scanner": "scanner-primary", "fingerprint": "8fdb3a1554f9541d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1104f845c3837ac5", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/actions/whatsapp-import.ts:3"}, "properties": {"repobilityId": "c3371bb9cc62bcda", "scanner": "scanner-primary", "fingerprint": "1104f845c3837ac5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6b17fb448aaf2c82", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/actions/manual-upgrade.ts:1"}, "properties": {"repobilityId": "77a7c56a0f6c7bb4", "scanner": "scanner-primary", "fingerprint": "6b17fb448aaf2c82", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-000f532c643ede5f", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/actions/admin.ts:1"}, "properties": {"repobilityId": "a3119ac49c540340", "scanner": "scanner-primary", "fingerprint": "000f532c643ede5f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1c08128ab4ba060e", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/actions/domains.ts:3"}, "properties": {"repobilityId": "234f776e4b1d1003", "scanner": "scanner-primary", "fingerprint": "1c08128ab4ba060e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b078ee1ae7a2c59c", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/actions/promotions.ts:1"}, "properties": {"repobilityId": "950bcc4673cd6e34", "scanner": "scanner-primary", "fingerprint": "b078ee1ae7a2c59c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-214f6fa94373b5a4", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/actions/shop.ts:6"}, "properties": {"repobilityId": "4fc51a5190109a87", "scanner": "scanner-primary", "fingerprint": "214f6fa94373b5a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0ebba5c0a68199c2", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/pay/[orderNumber]/page.tsx:1"}, "properties": {"repobilityId": "be5d993be7c0a1b8", "scanner": "scanner-primary", "fingerprint": "0ebba5c0a68199c2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-37e12dd786a2dfd9", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/privacy/page.tsx:1"}, "properties": {"repobilityId": "7688255a8152cf6e", "scanner": "scanner-primary", "fingerprint": "37e12dd786a2dfd9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9c6bd47b926461c0", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/track/page.tsx:1"}, "properties": {"repobilityId": "01f375594259f230", "scanner": "scanner-primary", "fingerprint": "9c6bd47b926461c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-22dd30b0b5aafb03", "level": "none", "message": {"text": "Commented-code block (6 lines) in app/track/[orderNumber]/page.tsx:1"}, "properties": {"repobilityId": "82cfe857036d04e3", "scanner": "scanner-primary", "fingerprint": "22dd30b0b5aafb03", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4e1f4ad819189abf", "level": "none", "message": {"text": "Commented-code block (5 lines) in app/city/[city]/page.tsx:1"}, "properties": {"repobilityId": "ba94eb657d9d30b3", "scanner": "scanner-primary", "fingerprint": "4e1f4ad819189abf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b5c16d94b1f5b414", "level": "none", "message": {"text": "Commented-code block (7 lines) in app/get-started/page.tsx:1"}, "properties": {"repobilityId": "839c1ebd68072ff7", "scanner": "scanner-primary", "fingerprint": "b5c16d94b1f5b414", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-115864f982ea3b86", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/image-placeholder.ts:1"}, "properties": {"repobilityId": "60269a6b795f62db", "scanner": "scanner-primary", "fingerprint": "115864f982ea3b86", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ef170b6f8865d02", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/env.ts:1"}, "properties": {"repobilityId": "3d7d461e8557e054", "scanner": "scanner-primary", "fingerprint": "8ef170b6f8865d02", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-093ddec91ed9d330", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/payfast.ts:1"}, "properties": {"repobilityId": "b6f3302887cff895", "scanner": "scanner-primary", "fingerprint": "093ddec91ed9d330", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b6f590c2a9c705ce", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/rate-limit-upstash.ts:1"}, "properties": {"repobilityId": "eb687e6a9c1e3c0c", "scanner": "scanner-primary", "fingerprint": "b6f590c2a9c705ce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3eb3b85dfb3397d1", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/rate-limit.ts:1"}, "properties": {"repobilityId": "6c95f569d443fb5a", "scanner": "scanner-primary", "fingerprint": "3eb3b85dfb3397d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-becd0813c301d2b2", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/uploadthing.ts:1"}, "properties": {"repobilityId": "4b1493fd6c75c016", "scanner": "scanner-primary", "fingerprint": "becd0813c301d2b2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3a57252c7609920c", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/ut-api.ts:1"}, "properties": {"repobilityId": "3d54c1fc9c6c6dc9", "scanner": "scanner-primary", "fingerprint": "3a57252c7609920c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-17fae6de43e9a709", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/notifications/index.ts:1"}, "properties": {"repobilityId": "e8fe1e432f8c0cf0", "scanner": "scanner-primary", "fingerprint": "17fae6de43e9a709", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-81e449eadb6cccfd", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/email/resend.ts:1"}, "properties": {"repobilityId": "12a517107000f2c1", "scanner": "scanner-primary", "fingerprint": "81e449eadb6cccfd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2819821b03115bdc", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/email/templates/low-stock-alert.ts:1"}, "properties": {"repobilityId": "ebd3cb5b1b947248", "scanner": "scanner-primary", "fingerprint": "2819821b03115bdc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9e4adf70936d4dcf", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/email/templates/order-notification.ts:1"}, "properties": {"repobilityId": "aeb71211b4dde5e6", "scanner": "scanner-primary", "fingerprint": "9e4adf70936d4dcf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d61ca6a08c35a0b8", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/email/templates/welcome.ts:1"}, "properties": {"repobilityId": "4b0322be7027224d", "scanner": "scanner-primary", "fingerprint": "d61ca6a08c35a0b8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6df8ca366dde0603", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/email/templates/reengagement.ts:1"}, "properties": {"repobilityId": "88d1f24a56f4c68c", "scanner": "scanner-primary", "fingerprint": "6df8ca366dde0603", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-04cd13295dc35479", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/email/templates/review-notification.ts:1"}, "properties": {"repobilityId": "5581478013ffebcb", "scanner": "scanner-primary", "fingerprint": "04cd13295dc35479", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e6306125bb710327", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/email/templates/referral-reward.ts:1"}, "properties": {"repobilityId": "b89a3c73944e81df", "scanner": "scanner-primary", "fingerprint": "e6306125bb710327", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-513307f6d6843a14", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/email/templates/connect-domain.ts:1"}, "properties": {"repobilityId": "80c0a943cce0474b", "scanner": "scanner-primary", "fingerprint": "513307f6d6843a14", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-07ed4aeff7fbf405", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/offline/catalog-cache.ts:1"}, "properties": {"repobilityId": "7460d79480578618", "scanner": "scanner-primary", "fingerprint": "07ed4aeff7fbf405", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b826d62d5839ffd7", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/ai/price-suggestion.ts:1"}, "properties": {"repobilityId": "a9570966008f1eb0", "scanner": "scanner-primary", "fingerprint": "b826d62d5839ffd7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dddcc16ab00f083f", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/ai/analyze-product-image.ts:1"}, "properties": {"repobilityId": "1a2c4dafef69ef16", "scanner": "scanner-primary", "fingerprint": "dddcc16ab00f083f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-49b04118ad047a1a", "level": "none", "message": {"text": "Commented-code block (8 lines) in lib/ai/parse-text-listings.ts:1"}, "properties": {"repobilityId": "930377010816f0f5", "scanner": "scanner-primary", "fingerprint": "49b04118ad047a1a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ee8bc5c2e4aba38a", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/ai/remove-background.ts:1"}, "properties": {"repobilityId": "66263a261c152af7", "scanner": "scanner-primary", "fingerprint": "ee8bc5c2e4aba38a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b865bf8f1fc88c0d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/ai/remove-background.ts:45"}, "properties": {"repobilityId": "8df4513fb8c7b830", "scanner": "scanner-primary", "fingerprint": "b865bf8f1fc88c0d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7516f8a8b9a3f131", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/ai/translate-listing.ts:1"}, "properties": {"repobilityId": "9c8b19412f645919", "scanner": "scanner-primary", "fingerprint": "7516f8a8b9a3f131", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-08b8e6adb800b22d", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/ai/import-draft.ts:1"}, "properties": {"repobilityId": "68af51e8ce9b1e86", "scanner": "scanner-primary", "fingerprint": "08b8e6adb800b22d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cdfa95ac9be77cc3", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/marketplace/locations.ts:1"}, "properties": {"repobilityId": "2221c390d79ea6f1", "scanner": "scanner-primary", "fingerprint": "cdfa95ac9be77cc3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-be122e0c9f4cff4d", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/config/feature-flags.ts:1"}, "properties": {"repobilityId": "a5f354c466945372", "scanner": "scanner-primary", "fingerprint": "be122e0c9f4cff4d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ab9f4dcf5f96f5fe", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/config/plan-limits.ts:1"}, "properties": {"repobilityId": "05d4c5c22d46a4f1", "scanner": "scanner-primary", "fingerprint": "ab9f4dcf5f96f5fe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fe3572a9d469d654", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/config/category-suggest.ts:1"}, "properties": {"repobilityId": "4ef95695f58d2b33", "scanner": "scanner-primary", "fingerprint": "fe3572a9d469d654", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5cb53f55aa9a509e", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/config/themes.ts:1"}, "properties": {"repobilityId": "39cf00d0bdc5b87a", "scanner": "scanner-primary", "fingerprint": "5cb53f55aa9a509e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-132d3626b4da58b9", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/config/site.ts:1"}, "properties": {"repobilityId": "afc06efec2115268", "scanner": "scanner-primary", "fingerprint": "132d3626b4da58b9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-474fe95330363b1f", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/config/category-variants.ts:1"}, "properties": {"repobilityId": "9833cdbc35662fd3", "scanner": "scanner-primary", "fingerprint": "474fe95330363b1f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a9319c3f8a139665", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/config/activity-actions.ts:1"}, "properties": {"repobilityId": "b8bfca5e9c6c7578", "scanner": "scanner-primary", "fingerprint": "a9319c3f8a139665", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8e14a69616a15154", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/config/promotions.ts:1"}, "properties": {"repobilityId": "7bde02439d59334e", "scanner": "scanner-primary", "fingerprint": "8e14a69616a15154", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8a3a3cead74e2f96", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/auth/index.ts:1"}, "properties": {"repobilityId": "d7ff2f4125ffd2cd", "scanner": "scanner-primary", "fingerprint": "8a3a3cead74e2f96", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-91b996ef7defdaa6", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/auth/admin.ts:1"}, "properties": {"repobilityId": "f3c0f4099cc7c718", "scanner": "scanner-primary", "fingerprint": "91b996ef7defdaa6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6c4665b5cbbc48bd", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/intelligence/product-quality.ts:1"}, "properties": {"repobilityId": "2b41bac9f31f8851", "scanner": "scanner-primary", "fingerprint": "6c4665b5cbbc48bd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2120bb6b287916e8", "level": "none", "message": {"text": "Commented-code block (8 lines) in lib/intelligence/index.ts:1"}, "properties": {"repobilityId": "14d29b77af3df1a9", "scanner": "scanner-primary", "fingerprint": "2120bb6b287916e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-916f0273d1a36e62", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/intelligence/seller-metrics.ts:1"}, "properties": {"repobilityId": "33561e4678d3e4b6", "scanner": "scanner-primary", "fingerprint": "916f0273d1a36e62", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c8dc190b48cf4d1", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/intelligence/seller-suggestions.ts:1"}, "properties": {"repobilityId": "04320bb6c58c3d06", "scanner": "scanner-primary", "fingerprint": "0c8dc190b48cf4d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6c9bb027350acddb", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/intelligence/seller-health.ts:1"}, "properties": {"repobilityId": "ad6ac46c59e2e497", "scanner": "scanner-primary", "fingerprint": "6c9bb027350acddb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2cb3e06583e997ca", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/intelligence/trending.ts:1"}, "properties": {"repobilityId": "9579fec91fed676f", "scanner": "scanner-primary", "fingerprint": "2cb3e06583e997ca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d95c02ece525d74d", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/utils/sku.ts:1"}, "properties": {"repobilityId": "9a2adb25c4b4042a", "scanner": "scanner-primary", "fingerprint": "d95c02ece525d74d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8c752b26a0e9e15e", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/utils/product-slug.ts:1"}, "properties": {"repobilityId": "23f37dc953d70593", "scanner": "scanner-primary", "fingerprint": "8c752b26a0e9e15e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d23ed56465bed40", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/utils/listing-quality.ts:1"}, "properties": {"repobilityId": "20f99720122ad420", "scanner": "scanner-primary", "fingerprint": "0d23ed56465bed40", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2d8ea4c990c7f64e", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/utils/slug.ts:1"}, "properties": {"repobilityId": "547d9e005638aa54", "scanner": "scanner-primary", "fingerprint": "2d8ea4c990c7f64e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5eee498a5af87b4a", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/reviews/review-requests.ts:1"}, "properties": {"repobilityId": "bfd8b4755bcaf218", "scanner": "scanner-primary", "fingerprint": "5eee498a5af87b4a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-554e7a491059d0a5", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/cart/cart-context.tsx:1"}, "properties": {"repobilityId": "d632d9937df56d1a", "scanner": "scanner-primary", "fingerprint": "554e7a491059d0a5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-363e4c844867b957", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/cart/whatsapp-message.ts:25"}, "properties": {"repobilityId": "37aa4b459ad85757", "scanner": "scanner-primary", "fingerprint": "363e4c844867b957", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1c47f7812369d6f2", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/cart/types.ts:6"}, "properties": {"repobilityId": "f5010a1e33a2338a", "scanner": "scanner-primary", "fingerprint": "1c47f7812369d6f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-79f1dde8965c8e37", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/validation/ai-product.ts:1"}, "properties": {"repobilityId": "d3eee6eb39dd6414", "scanner": "scanner-primary", "fingerprint": "79f1dde8965c8e37", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f3bceb818a8935e5", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/validation/product.ts:1"}, "properties": {"repobilityId": "70a4e0c1591169db", "scanner": "scanner-primary", "fingerprint": "f3bceb818a8935e5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c714a6ba384481f0", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/validation/category.ts:1"}, "properties": {"repobilityId": "591acba4b1d4aba1", "scanner": "scanner-primary", "fingerprint": "c714a6ba384481f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-69c56d5f13f66aa9", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/validation/index.ts:1"}, "properties": {"repobilityId": "d9c488831317460c", "scanner": "scanner-primary", "fingerprint": "69c56d5f13f66aa9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-34fff26cd7b765f9", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/validation/checkout.ts:1"}, "properties": {"repobilityId": "54a7863753e09f52", "scanner": "scanner-primary", "fingerprint": "34fff26cd7b765f9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67cf0516fb3a7b0d", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/validation/shop.ts:1"}, "properties": {"repobilityId": "4c8663a7da4bebea", "scanner": "scanner-primary", "fingerprint": "67cf0516fb3a7b0d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad5e442dcbca892e", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/wishlist/wishlist-context.tsx:1"}, "properties": {"repobilityId": "8f0ca9d43d314784", "scanner": "scanner-primary", "fingerprint": "ad5e442dcbca892e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cec6d581b64b5215", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/wishlist/types.ts:6"}, "properties": {"repobilityId": "fb9f202723e06421", "scanner": "scanner-primary", "fingerprint": "cec6d581b64b5215", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8bdab7a35c2e8176", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/whatsapp/business-api.ts:1"}, "properties": {"repobilityId": "5bade3d64a442980", "scanner": "scanner-primary", "fingerprint": "8bdab7a35c2e8176", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-002856b1ed7602fb", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/whatsapp/intent-detection.ts:1"}, "properties": {"repobilityId": "866637614c1472de", "scanner": "scanner-primary", "fingerprint": "002856b1ed7602fb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d911e7ae43ee2aa0", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/whatsapp/auto-reply.ts:1"}, "properties": {"repobilityId": "2f171bd364d76493", "scanner": "scanner-primary", "fingerprint": "d911e7ae43ee2aa0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-803c9048008c67ff", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/whatsapp/seller-sequences.ts:1"}, "properties": {"repobilityId": "3037e091ad62abc3", "scanner": "scanner-primary", "fingerprint": "803c9048008c67ff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-604a825e708c4c95", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/whatsapp/product-import.ts:1"}, "properties": {"repobilityId": "3c00389c45192de4", "scanner": "scanner-primary", "fingerprint": "604a825e708c4c95", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6d923cc253205b0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 lib/whatsapp/product-import.ts:147"}, "properties": {"repobilityId": "c60de9c5288603ea", "scanner": "scanner-primary", "fingerprint": "d6d923cc253205b0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-75ef41dc566e79ec", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/whatsapp/ai-sales.ts:1"}, "properties": {"repobilityId": "a2fc5143eba5d383", "scanner": "scanner-primary", "fingerprint": "75ef41dc566e79ec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9f40dc544c08815f", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/whatsapp/product-import-parser.ts:1"}, "properties": {"repobilityId": "5fa34efe17bd417c", "scanner": "scanner-primary", "fingerprint": "9f40dc544c08815f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3ce36384f983d520", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/whatsapp/order-reply.ts:1"}, "properties": {"repobilityId": "d19a10285bff26dc", "scanner": "scanner-primary", "fingerprint": "3ce36384f983d520", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-941056189502b1e3", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/vercel/domains.ts:1"}, "properties": {"repobilityId": "18ca9df18496b0d6", "scanner": "scanner-primary", "fingerprint": "941056189502b1e3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5579e658ebebd760", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/imports/publish-mapper.ts:1"}, "properties": {"repobilityId": "a277458c02b9f5f2", "scanner": "scanner-primary", "fingerprint": "5579e658ebebd760", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-523634c631e06ee8", "level": "none", "message": {"text": "Commented-code block (8 lines) in lib/imports/csv-to-drafts.ts:1"}, "properties": {"repobilityId": "1892d9b1b3ccd708", "scanner": "scanner-primary", "fingerprint": "523634c631e06ee8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-10de6e4789e6328e", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/imports/import-logic.ts:1"}, "properties": {"repobilityId": "03db1fc5f955d42e", "scanner": "scanner-primary", "fingerprint": "10de6e4789e6328e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7250aa18d9d6aa0a", "level": "none", "message": {"text": "Commented-code block (9 lines) in lib/imports/parse-prices.ts:1"}, "properties": {"repobilityId": "57aa4f450a37875a", "scanner": "scanner-primary", "fingerprint": "7250aa18d9d6aa0a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dfbae95bb6a949ff", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/imports/split-captions.ts:1"}, "properties": {"repobilityId": "f5392e35bff791c7", "scanner": "scanner-primary", "fingerprint": "dfbae95bb6a949ff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5dc5d71093e8f792", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/recently-viewed/recently-viewed.tsx:1"}, "properties": {"repobilityId": "d223ab5bfa6d1159", "scanner": "scanner-primary", "fingerprint": "5dc5d71093e8f792", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cec07ba2cd30189a", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/trust/seller-stats.ts:1"}, "properties": {"repobilityId": "0b384603d393b3b8", "scanner": "scanner-primary", "fingerprint": "cec07ba2cd30189a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-da629f95ea2e9ee4", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/csv/parser.ts:1"}, "properties": {"repobilityId": "1bae9378c831b27b", "scanner": "scanner-primary", "fingerprint": "da629f95ea2e9ee4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-43e6fecfb6c34778", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/db/admin-users.ts:1"}, "properties": {"repobilityId": "3d3ba3ce5766b670", "scanner": "scanner-primary", "fingerprint": "43e6fecfb6c34778", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96c8c626d8c6ddad", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/db/catalog.ts:6"}, "properties": {"repobilityId": "7414be7a5268528c", "scanner": "scanner-primary", "fingerprint": "96c8c626d8c6ddad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b57ce351625c9bcd", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/db/revenue.ts:1"}, "properties": {"repobilityId": "b0540c749889c0d0", "scanner": "scanner-primary", "fingerprint": "b57ce351625c9bcd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-42c794c443109c8d", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/db/admin-moderation.ts:1"}, "properties": {"repobilityId": "34157f2ca714ee15", "scanner": "scanner-primary", "fingerprint": "42c794c443109c8d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c84e7acca12430d", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/db/ai.ts:1"}, "properties": {"repobilityId": "43d4e01082b07118", "scanner": "scanner-primary", "fingerprint": "2c84e7acca12430d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c13518d6277f9515", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/db/combos.ts:1"}, "properties": {"repobilityId": "6828c8cb0a8dea50", "scanner": "scanner-primary", "fingerprint": "c13518d6277f9515", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d7760b00501d275f", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/db/price-suggestion.ts:1"}, "properties": {"repobilityId": "8e5199d49216a8af", "scanner": "scanner-primary", "fingerprint": "d7760b00501d275f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-01a10a162c28ff63", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/db/verification.ts:1"}, "properties": {"repobilityId": "2208c4a12ec26d1d", "scanner": "scanner-primary", "fingerprint": "01a10a162c28ff63", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-89486b1c3a6eab6a", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/db/trust.ts:1"}, "properties": {"repobilityId": "b353696c269bced8", "scanner": "scanner-primary", "fingerprint": "89486b1c3a6eab6a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e938128a459924b7", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/db/admin-orders.ts:1"}, "properties": {"repobilityId": "893723873c5111a9", "scanner": "scanner-primary", "fingerprint": "e938128a459924b7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a8b66af3c31cd00", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/db/activity-logs.ts:1"}, "properties": {"repobilityId": "d0be31e2d3b2281b", "scanner": "scanner-primary", "fingerprint": "7a8b66af3c31cd00", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b8e4a9adf4492023", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/db/reviews.ts:1"}, "properties": {"repobilityId": "79430b7c15a6db05", "scanner": "scanner-primary", "fingerprint": "b8e4a9adf4492023", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca39ebe89198692d", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/db/analytics.ts:11"}, "properties": {"repobilityId": "6109905635cc6207", "scanner": "scanner-primary", "fingerprint": "ca39ebe89198692d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9bcf1cf954caa6a4", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/db/shops.ts:1"}, "properties": {"repobilityId": "801a8b41fcd099fd", "scanner": "scanner-primary", "fingerprint": "9bcf1cf954caa6a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5bac00a2de15b9d1", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/db/global-categories.ts:1"}, "properties": {"repobilityId": "91ab6e22e15f574b", "scanner": "scanner-primary", "fingerprint": "5bac00a2de15b9d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a885882de22a6b4", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/db/manual-payments.ts:1"}, "properties": {"repobilityId": "9f7b598ceb5a711e", "scanner": "scanner-primary", "fingerprint": "9a885882de22a6b4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-61ba37a23948b2f3", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/db/index.ts:1"}, "properties": {"repobilityId": "c9602849eb5e1d83", "scanner": "scanner-primary", "fingerprint": "61ba37a23948b2f3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bd2b14f9fedaf6fd", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/db/marketplace.ts:10"}, "properties": {"repobilityId": "96f4c4a410b3690c", "scanner": "scanner-primary", "fingerprint": "bd2b14f9fedaf6fd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a9bed5f99edb3a54", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/db/variants.ts:6"}, "properties": {"repobilityId": "f4a4bb25cd91cdbc", "scanner": "scanner-primary", "fingerprint": "a9bed5f99edb3a54", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b69a9811350d782", "level": "none", "message": {"text": "Commented-code block (8 lines) in lib/db/search.ts:1"}, "properties": {"repobilityId": "beddc5d256d3a8b4", "scanner": "scanner-primary", "fingerprint": "7b69a9811350d782", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf20575e2f763859", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/db/products.ts:6"}, "properties": {"repobilityId": "e785710dbc99c2f3", "scanner": "scanner-primary", "fingerprint": "bf20575e2f763859", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-05176ae925bade00", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/db/trending.ts:1"}, "properties": {"repobilityId": "c413895e1ba81a92", "scanner": "scanner-primary", "fingerprint": "05176ae925bade00", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c7717becc3a49f9", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/db/transaction-fees.ts:1"}, "properties": {"repobilityId": "8f2fcd3edd288a33", "scanner": "scanner-primary", "fingerprint": "7c7717becc3a49f9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e501696db51a1ea7", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/db/categories.ts:1"}, "properties": {"repobilityId": "09cbb0ca48f445e1", "scanner": "scanner-primary", "fingerprint": "e501696db51a1ea7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d88e67092599e81b", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/db/gallery.ts:1"}, "properties": {"repobilityId": "284a673890ca719e", "scanner": "scanner-primary", "fingerprint": "d88e67092599e81b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f06a094a5dd71eeb", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/db/orders.ts:1"}, "properties": {"repobilityId": "7003fb8d5ddf3b68", "scanner": "scanner-primary", "fingerprint": "f06a094a5dd71eeb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6509de30cdc8d8f6", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/db/drops.ts:1"}, "properties": {"repobilityId": "0d66d38c17fddd07", "scanner": "scanner-primary", "fingerprint": "6509de30cdc8d8f6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f07d6cee106b6294", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/db/admin-audit.ts:1"}, "properties": {"repobilityId": "4edff5da46fc130b", "scanner": "scanner-primary", "fingerprint": "f07d6cee106b6294", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41e9e06fb386b767", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/db/admin.ts:1"}, "properties": {"repobilityId": "726035c2232f263c", "scanner": "scanner-primary", "fingerprint": "41e9e06fb386b767", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5f092da4c5298513", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/db/tracking.ts:1"}, "properties": {"repobilityId": "a5dffe774eeac540", "scanner": "scanner-primary", "fingerprint": "5f092da4c5298513", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-04be92a09cba5556", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/db/buyers.ts:1"}, "properties": {"repobilityId": "40b5a4e6abebee7d", "scanner": "scanner-primary", "fingerprint": "04be92a09cba5556", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-57037518d7e4807b", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/db/referrals.ts:1"}, "properties": {"repobilityId": "ee5ee1ccc3e01e09", "scanner": "scanner-primary", "fingerprint": "57037518d7e4807b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db4f141252d13e1a", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/db/promotions.ts:6"}, "properties": {"repobilityId": "acd0334cbfa7ded9", "scanner": "scanner-primary", "fingerprint": "db4f141252d13e1a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2485a693abfa8172", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/db/seller-preferences.ts:1"}, "properties": {"repobilityId": "84307609c101f049", "scanner": "scanner-primary", "fingerprint": "2485a693abfa8172", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2b99a04461dde239", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/db/activation.ts:6"}, "properties": {"repobilityId": "af9d91924c08f04d", "scanner": "scanner-primary", "fingerprint": "2b99a04461dde239", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-46df563edf00f0a5", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/db/subscriptions.ts:1"}, "properties": {"repobilityId": "b0eb497379270175", "scanner": "scanner-primary", "fingerprint": "46df563edf00f0a5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c55b3e19c92f6908", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/shipping/rates.ts:1"}, "properties": {"repobilityId": "43b21966299e5dd4", "scanner": "scanner-primary", "fingerprint": "c55b3e19c92f6908", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-98464558bbce3c92", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/reputation/tiers.ts:1"}, "properties": {"repobilityId": "bb845df2b13882de", "scanner": "scanner-primary", "fingerprint": "98464558bbce3c92", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-66f1f034c246654b", "level": "none", "message": {"text": "Commented-code block (7 lines) in lib/seo/should-index.ts:1"}, "properties": {"repobilityId": "215b89a0f199045e", "scanner": "scanner-primary", "fingerprint": "66f1f034c246654b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b5f1e1ddf784dc6d", "level": "none", "message": {"text": "Commented-code block (5 lines) in lib/seo/json-ld.ts:1"}, "properties": {"repobilityId": "7587a01df3b9efa7", "scanner": "scanner-primary", "fingerprint": "b5f1e1ddf784dc6d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-33174ab9a50a6fd3", "level": "none", "message": {"text": "Commented-code block (6 lines) in lib/export/reports.ts:1"}, "properties": {"repobilityId": "f7bc788f73219155", "scanner": "scanner-primary", "fingerprint": "33174ab9a50a6fd3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6f1615122a2fef19", "level": "none", "message": {"text": "Commented-code block (11 lines) in public/sw.js:1"}, "properties": {"repobilityId": "df9c1d5b6572c40e", "scanner": "scanner-primary", "fingerprint": "6f1615122a2fef19", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-11aac70b0c9c1f03", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 public/sw.js:139"}, "properties": {"repobilityId": "9a4f2af5d3073da9", "scanner": "scanner-primary", "fingerprint": "11aac70b0c9c1f03", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-eb08d3ac870e7483", "level": "none", "message": {"text": "Commented-code block (6 lines) in e2e/api.spec.ts:1"}, "properties": {"repobilityId": "e9b59ef9454be488", "scanner": "scanner-primary", "fingerprint": "eb08d3ac870e7483", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fb194575f4e6baaf", "level": "none", "message": {"text": "Commented-code block (7 lines) in e2e/buyer-flow.spec.ts:1"}, "properties": {"repobilityId": "a1326bfaacf9edfa", "scanner": "scanner-primary", "fingerprint": "fb194575f4e6baaf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5a67b581b7c2ac41", "level": "none", "message": {"text": "Commented-code block (6 lines) in e2e/auth.spec.ts:1"}, "properties": {"repobilityId": "691e9760f2b11c1e", "scanner": "scanner-primary", "fingerprint": "5a67b581b7c2ac41", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f1fb13461d7e4bb", "level": "none", "message": {"text": "Commented-code block (6 lines) in e2e/marketplace.spec.ts:1"}, "properties": {"repobilityId": "872a3c00efd98850", "scanner": "scanner-primary", "fingerprint": "1f1fb13461d7e4bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-09e61bdef7cfd271", "level": "none", "message": {"text": "Commented-code block (6 lines) in e2e/seller-flow.spec.ts:1"}, "properties": {"repobilityId": "5886ace65a75e538", "scanner": "scanner-primary", "fingerprint": "09e61bdef7cfd271", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-956d630324b5dc88", "level": "none", "message": {"text": "Commented-code block (5 lines) in e2e/static.spec.ts:1"}, "properties": {"repobilityId": "03c068dbf0bbce20", "scanner": "scanner-primary", "fingerprint": "956d630324b5dc88", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-18a6f4e560610437", "level": "none", "message": {"text": "Commented-code block (6 lines) in e2e/landing.spec.ts:1"}, "properties": {"repobilityId": "c67c6b6d2eefff75", "scanner": "scanner-primary", "fingerprint": "18a6f4e560610437", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5c41bb1a1f430bd6", "level": "note", "message": {"text": "39 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "4a6a9acd19ef8277", "scanner": "scanner-primary", "fingerprint": "5c41bb1a1f430bd6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}]}]}