{"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: vothalvino/fireisp5.0", "shortDescription": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#229\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#229\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#229\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 229\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'"}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "medium", "confidence": 0.7, "cwe": "", "owasp": ""}}, {"id": "foundry_assumption_check", "name": "Foundry mined assumption checks: vothalvino/fireisp5.0", "shortDescription": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "fullDescription": {"text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#282\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#282\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 1\nLinked CI labels: {'ci_failure_signal': 1}\nChanged file count: 11\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'api_or_backend': 6, 'ui_or_frontend': 1, 'test_or_ci': 3, 'schema_or_data': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-17f2fa40f6f2a911\",\n    \"kind\": \"p"}, "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: vothalvino/fireisp5.0", "shortDescription": {"text": "Foundry mined test ci gap after feedback: vothalvino/fireisp5.0"}, "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_high_confidence_link\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#280\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#280\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#280\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 280\nGraph consistency label: supported_by_high_confidence_link\nNodes: 35\nEdges: 61\nNode types: {'pr_file': 21, 'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 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: vothalvino/fireisp5.0", "shortDescription": {"text": "Foundry mined schema ui api mismatch: vothalvino/fireisp5.0"}, "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: supported_by_high_confidence_link\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#272\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#272\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#272\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 272\nGraph consistency label: supported_by_high_confidence_link\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge typ"}, "properties": {"scanner": "foundry_dataset", "category": "quality", "severity": "high", "confidence": 0.76, "cwe": "", "owasp": ""}}, {"id": "foundry_bad_chain", "name": "Foundry mined bad chains: vothalvino/fireisp5.0", "shortDescription": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "fullDescription": {"text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#279\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#279\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 3\nLabels: {'mock_placeholder': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'ui_or_frontend': 2, 'test_or_ci': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-d1e94ed837328ded\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\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: vothalvino/fireisp5.0", "shortDescription": {"text": "Foundry mined security auth guardrail gaps: vothalvino/fireisp5.0"}, "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: supported_by_high_confidence_link\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#277\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#277\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#277\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 277\nGraph consistency label: supported_by_high_confidence_link\nNodes: 16\nEdges: 30\nNode types: {'pr_file': 6, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comme"}, "properties": {"scanner": "foundry_dataset", "category": "auth", "severity": "critical", "confidence": 0.78, "cwe": "", "owasp": ""}}, {"id": "foundry_fake_real_gap", "name": "Foundry mined mock as real or placeholder: vothalvino/fireisp5.0", "shortDescription": {"text": "Foundry mined mock as real or placeholder: vothalvino/fireisp5.0"}, "fullDescription": {"text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: supported_by_high_confidence_link\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#279\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#279\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#279\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 279\nGraph consistency label: supported_by_high_confidence_link\nNodes: 13\nEdges: 21\nNode types: {'pr_file': 3, 'link_quality': 3, 'thread': 1, 'repo': 1, "}, "properties": {"scanner": "foundry_dataset", "category": "practices", "severity": "critical", "confidence": 0.82, "cwe": "", "owasp": ""}}, {"id": "foundry_failing_ci_claim", "name": "Foundry mined claimed resolved with failing ci: vothalvino/fireisp5.0", "shortDescription": {"text": "Foundry mined claimed resolved with failing ci: vothalvino/fireisp5.0"}, "fullDescription": {"text": "Graph query export: Claimed resolved with failing CI\nQuery id: claimed_resolved_with_failing_ci\nQuery type: motif_query\nIntent: Hard negatives where CI/failure evidence contradicts a resolution claim.\nMotif: claimed_resolved_with_failing_ci\nTraining usage: hard_negative\nGraph gold label: contradicted_by_ci_or_failure_signal\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#282\nEvidence:\nGraph motif: Claimed resolved while CI or failure evidence contradicts it\nMotif id: claimed_resolved_with_failing_ci\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#282\nGraph gold label: contradicted_by_ci_or_failure_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#282\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 282\nGraph consistency label: contradicted_by_ci_or_failure_signal\nNodes: 22\nEdges: 46\nNode types: {'pr_file': 11, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1"}, "properties": {"scanner": "foundry_dataset", "category": "ci", "severity": "critical", "confidence": 0.86, "cwe": "", "owasp": ""}}, {"id": "scanner-c0dc355fb593b974", "name": "Icon-only button without accessible name \u2014 frontend/src/pages/CommunicationCampaignList.tsx:416", "shortDescription": {"text": "Icon-only button without accessible name \u2014 frontend/src/pages/CommunicationCampaignList.tsx:416"}, "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-90812c6501004fef", "name": "Icon-only button without accessible name \u2014 frontend/src/pages/Settings.tsx:550", "shortDescription": {"text": "Icon-only button without accessible name \u2014 frontend/src/pages/Settings.tsx:550"}, "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-d1b683e5bf5ec964", "name": "Icon-only button without accessible name \u2014 frontend/src/pages/Reports.tsx:810", "shortDescription": {"text": "Icon-only button without accessible name \u2014 frontend/src/pages/Reports.tsx:810"}, "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-5165f85d31b90330", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/src/pages/portal/PortalKb.tsx:94", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/src/pages/portal/PortalKb.tsx:94"}, "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-b45def0287453999", "name": "Stray `console.log` in TS/JS \u2014 src/scripts/loadtest.js:209", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/scripts/loadtest.js:209"}, "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-a39e751b68d85146", "name": "Stray `console.log` in TS/JS \u2014 src/scripts/loadtest-soak.js:277", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/scripts/loadtest-soak.js:277"}, "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-2ee7af07c84cc7b5", "name": "Stray `console.log` in TS/JS \u2014 src/scripts/spec-drift.js:220", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/scripts/spec-drift.js:220"}, "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-4fb6b31208bbc164", "name": "TODO/FIXME marker in shipping code \u2014 src/scripts/gen-route.js:110", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/scripts/gen-route.js:110"}, "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-45810dfc9cb02741", "name": "Stray `console.log` in TS/JS \u2014 src/scripts/gen-route.js:260", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/scripts/gen-route.js:260"}, "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-698ab78acd68862a", "name": "Stray `console.log` in TS/JS \u2014 src/scripts/schema-parity-check.js:51", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/scripts/schema-parity-check.js:51"}, "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-e2221d9be3fd4ede", "name": "Stray `console.log` in TS/JS \u2014 src/utils/encryption.js:8", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/utils/encryption.js: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-bd06f685bbb8331f", "name": "TODO/FIXME marker in shipping code \u2014 src/services/suspensionService.js:268", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/services/suspensionService.js:268"}, "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-7027c951f8365b38", "name": "Privileged port 162 in use", "shortDescription": {"text": "Privileged port 162 in use"}, "fullDescription": {"text": "Port 162 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2716e6cd8dd26c96", "name": "Privileged port 161 in use", "shortDescription": {"text": "Privileged port 161 in use"}, "fullDescription": {"text": "Port 161 is privileged (<1024). Make sure the service runs with the right caps or front it with a non-privileged port via a load balancer."}, "properties": {"scanner": "scanner-primary", "layer": "network", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-20f1d133ab646703", "name": "Docker base image is tag-pinned but not digest-pinned: node:24-bookworm-slim", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:24-bookworm-slim"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d81ad2987a921217", "name": "Possible secret in charts/fireisp/values.yaml", "shortDescription": {"text": "Possible secret in charts/fireisp/values.yaml"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-3d32d3a914b590b8", "name": "Insecure pattern 'document_write' in frontend/src/components/ThermalReceiptModal.tsx:118", "shortDescription": {"text": "Insecure pattern 'document_write' in frontend/src/components/ThermalReceiptModal.tsx:118"}, "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-7460d193b8b300a6", "name": "Insecure pattern 'local_storage_auth_token' in frontend/src/pages/__tests__/AiSupportPage.test.tsx:149", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in frontend/src/pages/__tests__/AiSupportPage.test.tsx:149"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cc4bdf1bac35fb37", "name": "Insecure pattern 'dangerous_innerhtml' in frontend/src/pages/portal/PortalKb.tsx:94", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in frontend/src/pages/portal/PortalKb.tsx:94"}, "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-732ec6ff8009b321", "name": "Possible secret in database/freeradius/README.md", "shortDescription": {"text": "Possible secret in database/freeradius/README.md"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-cf863339b88decf1", "name": "Insecure pattern 'node_child_process' in src/scripts/verify-volumes.js:25", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/scripts/verify-volumes.js:25"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e2affb49f65aa24b", "name": "Insecure pattern 'node_child_process' in src/scripts/backup.js:17", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/scripts/backup.js:17"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a84debc5cc596530", "name": "Insecure pattern 'weak_hash' in src/routes/dataSecurity.js:226", "shortDescription": {"text": "Insecure pattern 'weak_hash' in src/routes/dataSecurity.js:226"}, "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-27924aa79fa4a517", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "pnpm/action-setup@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-64192a3c67110d01", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "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-ea247a040bfddf94", "name": "Very large file: frontend/src/pages/QosBandwidthPage.tsx (2459 lines)", "shortDescription": {"text": "Very large file: frontend/src/pages/QosBandwidthPage.tsx (2459 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-0b155d8fdd46e5ff", "name": "Very large file: frontend/src/pages/TransitionMechanismsPage.tsx (986 lines)", "shortDescription": {"text": "Very large file: frontend/src/pages/TransitionMechanismsPage.tsx (986 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-c62860901992e550", "name": "Very large file: frontend/src/pages/AIAssistantSettings.tsx (1216 lines)", "shortDescription": {"text": "Very large file: frontend/src/pages/AIAssistantSettings.tsx (1216 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-61e7af9b2cbd9f29", "name": "Very large file: frontend/src/pages/FiberPlantManagementPage.tsx (1197 lines)", "shortDescription": {"text": "Very large file: frontend/src/pages/FiberPlantManagementPage.tsx (1197 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-d862dc8fbd15fd51", "name": "Very large file: frontend/src/pages/TicketDetail.tsx (1656 lines)", "shortDescription": {"text": "Very large file: frontend/src/pages/TicketDetail.tsx (1656 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-0d0bf06aa4d42a18", "name": "Very large file: frontend/src/pages/Reports.tsx (1929 lines)", "shortDescription": {"text": "Very large file: frontend/src/pages/Reports.tsx (1929 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-d004c1972616c179", "name": "Very large file: frontend/src/pages/WirelessManagementPage.tsx (1289 lines)", "shortDescription": {"text": "Very large file: frontend/src/pages/WirelessManagementPage.tsx (1289 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-b5b5b946533d592b", "name": "Very large file: tests/section18Extended.test.js (1348 lines)", "shortDescription": {"text": "Very large file: tests/section18Extended.test.js (1348 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-68303f8bc5b24f75", "name": "Very large file: tests/newValidationSchemas.test.js (1523 lines)", "shortDescription": {"text": "Very large file: tests/newValidationSchemas.test.js (1523 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-54667cbef0396a8a", "name": "Very large file: tests/section16.test.js (2146 lines)", "shortDescription": {"text": "Very large file: tests/section16.test.js (2146 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-5d1bd7405c85ec78", "name": "Very large file: tests/section21.test.js (1286 lines)", "shortDescription": {"text": "Very large file: tests/section21.test.js (1286 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-13ca3b6e10f6512e", "name": "Very large file: tests/coreRoutes.test.js (1829 lines)", "shortDescription": {"text": "Very large file: tests/coreRoutes.test.js (1829 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-16065fb3557cc242", "name": "Very large file: tests/section17.test.js (2014 lines)", "shortDescription": {"text": "Very large file: tests/section17.test.js (2014 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-4651f43033d35cc5", "name": "Very large file: tests/routesCoverage.test.js (1549 lines)", "shortDescription": {"text": "Very large file: tests/routesCoverage.test.js (1549 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-4cae35ced86f865d", "name": "Very large file: src/utils/openapi.js (2731 lines)", "shortDescription": {"text": "Very large file: src/utils/openapi.js (2731 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-0e8a76eb13fd3249", "name": "Node manifest has dependencies but no lockfile: frontend/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: frontend/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-eb850abe5d3c8bc3", "name": "Node manifest has dependencies but no lockfile: e2e/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: e2e/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 39 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 276 placeholder/mock markers across 101 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing lockfile. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3d897f1f4c93e87e", "name": "Agent authority lacks a verifier contract: .claude/agent-memory/fullstack-autonomous-engineer/openapi-pattern.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agent-memory/fullstack-autonomous-engineer/openapi-pattern.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1541d95cc9e4dce7", "name": "Agent authority lacks a verifier contract: .claude/agent-memory/fullstack-autonomous-engineer/section6-snmp-nms.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agent-memory/fullstack-autonomous-engineer/section6-snmp-nms.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0b21f44ebb2743f6", "name": "Commented-code block (7 lines) in .lintstagedrc.cjs:8", "shortDescription": {"text": "Commented-code block (7 lines) in .lintstagedrc.cjs: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-cf335caf1e6ae4ae", "name": "Commented-code block (5 lines) in frontend/scripts/i18n-coverage.mjs:2", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/scripts/i18n-coverage.mjs:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d0a2ee50f60305f3", "name": "Commented-code block (6 lines) in frontend/public/sw.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/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-683adcc1c1eacafa", "name": "Commented-code block (9 lines) in frontend/src/App.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/App.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-50dacd1ac74c9cac", "name": "Commented-code block (7 lines) in frontend/src/i18n/index.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/i18n/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-27a34d79c5d4cfea", "name": "Commented-code block (6 lines) in frontend/src/auth/permissions.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/auth/permissions.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-b96006821e1b2bbd", "name": "Commented-code block (9 lines) in frontend/src/auth/AuthContext.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/auth/AuthContext.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-bc268bd3d32a3a4d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/auth/AuthContext.tsx:186", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/auth/AuthContext.tsx:186"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-58f5e592cd729d12", "name": "Commented-code block (8 lines) in frontend/src/auth/PrivateRoute.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/auth/PrivateRoute.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-7abdd9244dfa448b", "name": "Commented-code block (7 lines) in frontend/src/auth/PortalAuthContext.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/auth/PortalAuthContext.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-88b2e9c364038ad7", "name": "Commented-code block (5 lines) in frontend/src/auth/PortalRoute.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/auth/PortalRoute.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-7837719569b163a6", "name": "Commented-code block (5 lines) in frontend/src/api/graphql.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/api/graphql.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-b4d23c9e6af635f2", "name": "Commented-code block (6 lines) in frontend/src/api/useWebSocket.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/api/useWebSocket.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-fb395a9e9fe7a29c", "name": "Commented-code block (7 lines) in frontend/src/api/useGraphQLSubscription.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/api/useGraphQLSubscription.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-1a393c2c7eb597b1", "name": "Commented-code block (5 lines) in frontend/src/api/client.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/api/client.ts:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d58f40881b5f287e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/api/client.ts:44", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/api/client.ts:44"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2a441df5b5790c00", "name": "Commented-code block (5 lines) in frontend/src/test/a11y.test.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/test/a11y.test.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1df0ce50f6c60619", "name": "Commented-code block (10 lines) in frontend/src/test/i18n.test.ts:1", "shortDescription": {"text": "Commented-code block (10 lines) in frontend/src/test/i18n.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-61efcfe8ba09558d", "name": "Commented-code block (6 lines) in frontend/src/components/PortalLayout.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/components/PortalLayout.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-87ae4fb7b1b2adaf", "name": "Commented-code block (7 lines) in frontend/src/components/ClientFormModal.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/components/ClientFormModal.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-571cef7d33a07b17", "name": "Commented-code block (5 lines) in frontend/src/components/DrDrillBanner.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/DrDrillBanner.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-73272b27b0050672", "name": "Commented-code block (13 lines) in frontend/src/components/ThermalReceiptModal.tsx:1", "shortDescription": {"text": "Commented-code block (13 lines) in frontend/src/components/ThermalReceiptModal.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-d30e5925805d29c6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/components/ThermalReceiptModal.tsx:41", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/components/ThermalReceiptModal.tsx:41"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b8a94769a29a0418", "name": "Commented-code block (5 lines) in frontend/src/components/ChangelogPanel.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/components/ChangelogPanel.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-59e6654d0196bf68", "name": "Commented-code block (6 lines) in frontend/src/components/__tests__/Layout.test.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/components/__tests__/Layout.test.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-589d2f90dfc419e0", "name": "Commented-code block (9 lines) in frontend/src/pages/QueueStats.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/QueueStats.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-1b159c9b03ca6114", "name": "Commented-code block (9 lines) in frontend/src/pages/QosBandwidthPage.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/QosBandwidthPage.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-ee42c8f884da88c9", "name": "Commented-code block (9 lines) in frontend/src/pages/ConcessionTitleList.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/ConcessionTitleList.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-0272254b4c3f1aca", "name": "Commented-code block (11 lines) in frontend/src/pages/TopologyMapPage.tsx:1", "shortDescription": {"text": "Commented-code block (11 lines) in frontend/src/pages/TopologyMapPage.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-60647c0f7458220f", "name": "Commented-code block (11 lines) in frontend/src/pages/InventoryList.tsx:1", "shortDescription": {"text": "Commented-code block (11 lines) in frontend/src/pages/InventoryList.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-e8bb24d3e4e0a1bf", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/InventoryList.tsx:104", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/InventoryList.tsx:104"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4bc7aacec3217e31", "name": "Commented-code block (6 lines) in frontend/src/pages/PollerPerformanceDashboard.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/pages/PollerPerformanceDashboard.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-a8654f8b8d883dba", "name": "Commented-code block (10 lines) in frontend/src/pages/QuoteList.tsx:1", "shortDescription": {"text": "Commented-code block (10 lines) in frontend/src/pages/QuoteList.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-107a8247c89c04f8", "name": "Commented-code block (8 lines) in frontend/src/pages/LateFeeRuleList.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/pages/LateFeeRuleList.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-ee39f9b79ec25160", "name": "Commented-code block (8 lines) in frontend/src/pages/WirelessMetricsPage.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/pages/WirelessMetricsPage.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-b93ef3a57778f78e", "name": "Commented-code block (7 lines) in frontend/src/pages/crudStyles.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/pages/crudStyles.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-0e99d45e69d90412", "name": "Commented-code block (8 lines) in frontend/src/pages/OltManagementPage.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/pages/OltManagementPage.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-b042d2cc3684425a", "name": "Commented-code block (5 lines) in frontend/src/pages/RadiusSessions.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/pages/RadiusSessions.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-b4de087253a92a84", "name": "Commented-code block (7 lines) in frontend/src/pages/InvoiceSettings.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/pages/InvoiceSettings.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-0bb835ad961eacd3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/InvoiceSettings.tsx:37", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/InvoiceSettings.tsx:37"}, "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-5d46ad456417d1cd", "name": "Commented-code block (9 lines) in frontend/src/pages/InvoiceDetail.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/InvoiceDetail.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-67ffd6cd0d705b2f", "name": "Commented-code block (9 lines) in frontend/src/pages/ExpenseList.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/ExpenseList.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-d6c61a8e11f56fe3", "name": "Commented-code block (6 lines) in frontend/src/pages/DevicePollingConfigList.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/pages/DevicePollingConfigList.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-a9b1c05dd54ea58a", "name": "Commented-code block (8 lines) in frontend/src/pages/IpPoolList.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/pages/IpPoolList.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-a6dd72d968ccbe47", "name": "Commented-code block (8 lines) in frontend/src/pages/ConnectionLogList.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/pages/ConnectionLogList.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-129c68a5e691981e", "name": "Commented-code block (11 lines) in frontend/src/pages/SecurityAccessControlPage.tsx:1", "shortDescription": {"text": "Commented-code block (11 lines) in frontend/src/pages/SecurityAccessControlPage.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-fc7a7befd7668919", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/SecurityAccessControlPage.tsx:144", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/SecurityAccessControlPage.tsx:144"}, "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-957c6753b75a73bf", "name": "Commented-code block (9 lines) in frontend/src/pages/SpeedTestList.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/SpeedTestList.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-0aaccb9d57010a81", "name": "Commented-code block (9 lines) in frontend/src/pages/MessageTemplateList.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/MessageTemplateList.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-e1710637ed19f160", "name": "Commented-code block (11 lines) in frontend/src/pages/ChargebackList.tsx:1", "shortDescription": {"text": "Commented-code block (11 lines) in frontend/src/pages/ChargebackList.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-fb20f42aba77524b", "name": "Commented-code block (9 lines) in frontend/src/pages/PppoeDiagnostics.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/PppoeDiagnostics.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-8060dd2cc375a939", "name": "Commented-code block (9 lines) in frontend/src/pages/IpAssignmentList.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/IpAssignmentList.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-b8654f81a193c4a9", "name": "Commented-code block (5 lines) in frontend/src/pages/ClientGroupList.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/pages/ClientGroupList.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-e48bc7b1de4e01ad", "name": "Commented-code block (5 lines) in frontend/src/pages/CoverageZoneMap.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/pages/CoverageZoneMap.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-7c824e1a43d20565", "name": "Commented-code block (9 lines) in frontend/src/pages/ContractList.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/ContractList.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-901c04aa068da970", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/ContractList.tsx:109", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/ContractList.tsx:109"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-99a97053c0988632", "name": "Commented-code block (9 lines) in frontend/src/pages/CpeInventoryPage.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/CpeInventoryPage.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-b29cb6608df2b150", "name": "Commented-code block (12 lines) in frontend/src/pages/WinbackCampaignList.tsx:1", "shortDescription": {"text": "Commented-code block (12 lines) in frontend/src/pages/WinbackCampaignList.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-fc47203da7c6ce2d", "name": "Commented-code block (11 lines) in frontend/src/pages/ClientList.tsx:1", "shortDescription": {"text": "Commented-code block (11 lines) in frontend/src/pages/ClientList.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-a6c2c82163fa72fc", "name": "Commented-code block (12 lines) in frontend/src/pages/RegulatoryCompliancePage.tsx:1", "shortDescription": {"text": "Commented-code block (12 lines) in frontend/src/pages/RegulatoryCompliancePage.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-68b5997c1dfc9d71", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/RegulatoryCompliancePage.tsx:99", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/RegulatoryCompliancePage.tsx:99"}, "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-5fdc9c2b25952290", "name": "Commented-code block (8 lines) in frontend/src/pages/OutageList.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/pages/OutageList.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-c422af2771d716d9", "name": "Commented-code block (7 lines) in frontend/src/pages/CpeDiagnosticsPage.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/pages/CpeDiagnosticsPage.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-c456631ea486e6b2", "name": "Commented-code block (8 lines) in frontend/src/pages/PaymentTransactionList.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/pages/PaymentTransactionList.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-fd4e6a14fc7a32b3", "name": "Commented-code block (8 lines) in frontend/src/pages/CommunicationCampaignList.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/pages/CommunicationCampaignList.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-ba30d926fd929771", "name": "Commented-code block (9 lines) in frontend/src/pages/FacturaPublicaList.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/FacturaPublicaList.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-9c880cc092224083", "name": "Commented-code block (6 lines) in frontend/src/pages/DeviceGroupList.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/pages/DeviceGroupList.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-f25f226246ab5739", "name": "Commented-code block (6 lines) in frontend/src/pages/WorkOrders.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/pages/WorkOrders.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-55c285d1d6a32e0d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/WorkOrders.tsx:104", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/WorkOrders.tsx:104"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a572dbfa848190db", "name": "Commented-code block (7 lines) in frontend/src/pages/Dashboard.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/pages/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-225202bf1fdf9679", "name": "Commented-code block (9 lines) in frontend/src/pages/CfdiList.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/CfdiList.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-5b5ce974c486059b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/CfdiList.tsx:59", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/CfdiList.tsx:59"}, "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-633ebdee74f243b3", "name": "Commented-code block (5 lines) in frontend/src/pages/SessionAccounting.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/pages/SessionAccounting.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-53d71747d5547d43", "name": "Commented-code block (8 lines) in frontend/src/pages/BillingAdjustmentList.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/pages/BillingAdjustmentList.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-1611c08a15162fc1", "name": "Commented-code block (8 lines) in frontend/src/pages/SlaDefinitionList.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/pages/SlaDefinitionList.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-cb146362b57ddf8f", "name": "Commented-code block (8 lines) in frontend/src/pages/EscalationList.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/pages/EscalationList.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-fc918eb38fcf593d", "name": "Commented-code block (7 lines) in frontend/src/pages/ChurnAnalytics.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/pages/ChurnAnalytics.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-2e37fb7eaa07dc4b", "name": "Commented-code block (6 lines) in frontend/src/pages/TransitionMechanismsPage.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/pages/TransitionMechanismsPage.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-6767c18d977ffe26", "name": "Commented-code block (8 lines) in frontend/src/pages/VlanList.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/pages/VlanList.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-634eceb105172ddf", "name": "Commented-code block (5 lines) in frontend/src/pages/ClientDetail.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/pages/ClientDetail.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-6905c1471071bbf0", "name": "Commented-code block (9 lines) in frontend/src/pages/SuspensionRuleList.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/SuspensionRuleList.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-de4edf901993f327", "name": "Commented-code block (14 lines) in frontend/src/pages/OrganizationList.tsx:1", "shortDescription": {"text": "Commented-code block (14 lines) in frontend/src/pages/OrganizationList.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-d8bcb8435451243b", "name": "Commented-code block (9 lines) in frontend/src/pages/SiteList.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/SiteList.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-674622f13f93c1e5", "name": "Commented-code block (12 lines) in frontend/src/pages/AutomationPage.tsx:1", "shortDescription": {"text": "Commented-code block (12 lines) in frontend/src/pages/AutomationPage.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-20e41a17416caa25", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/AutomationPage.tsx:122", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/AutomationPage.tsx:122"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0092a109d76f11e2", "name": "Commented-code block (6 lines) in frontend/src/pages/DhcpServerList.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/pages/DhcpServerList.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-f970a07fbdac95e7", "name": "Commented-code block (10 lines) in frontend/src/pages/BillingDisputeList.tsx:1", "shortDescription": {"text": "Commented-code block (10 lines) in frontend/src/pages/BillingDisputeList.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-6c73be9e7a3c8bf5", "name": "Commented-code block (8 lines) in frontend/src/pages/ApiTokenList.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/pages/ApiTokenList.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-35f26cc9e028b895", "name": "Commented-code block (10 lines) in frontend/src/pages/PaymentPlanList.tsx:1", "shortDescription": {"text": "Commented-code block (10 lines) in frontend/src/pages/PaymentPlanList.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-37e04d8ebbba2f4b", "name": "Commented-code block (7 lines) in frontend/src/pages/ClientCommunicationPrefs.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/pages/ClientCommunicationPrefs.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-5e44508bcd4b451e", "name": "Commented-code block (9 lines) in frontend/src/pages/NetworkHealthList.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/NetworkHealthList.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-49c7c78ee62b6d62", "name": "Commented-code block (6 lines) in frontend/src/pages/ProfecoComplaints.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/pages/ProfecoComplaints.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-836ec3eb7516813b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/ProfecoComplaints.tsx:91", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/ProfecoComplaints.tsx:91"}, "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-b16885321ba6dfb4", "name": "Commented-code block (9 lines) in frontend/src/pages/NasList.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/NasList.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-c087b9451adb3a96", "name": "Commented-code block (8 lines) in frontend/src/pages/TaxRuleList.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/pages/TaxRuleList.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-f62bbbc0d8d1a9fa", "name": "Commented-code block (10 lines) in frontend/src/pages/CsdCertificateList.tsx:1", "shortDescription": {"text": "Commented-code block (10 lines) in frontend/src/pages/CsdCertificateList.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-5a8b745d2cc67bdd", "name": "Commented-code block (11 lines) in frontend/src/pages/AIAssistantSettings.tsx:1", "shortDescription": {"text": "Commented-code block (11 lines) in frontend/src/pages/AIAssistantSettings.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-68be89b924c8312b", "name": "Commented-code block (8 lines) in frontend/src/pages/AuditLogList.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/pages/AuditLogList.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-17adcb18d1b3fe67", "name": "Commented-code block (6 lines) in frontend/src/pages/MacMoveEvents.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/pages/MacMoveEvents.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-34a183a32a67865f", "name": "Commented-code block (9 lines) in frontend/src/pages/FiberPlantManagementPage.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/FiberPlantManagementPage.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-3afeec87fd73efc4", "name": "Commented-code block (9 lines) in frontend/src/pages/PacProviderList.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/PacProviderList.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-83803d1c05c2647a", "name": "Commented-code block (9 lines) in frontend/src/pages/JobList.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/JobList.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-a42873b6ee0445c6", "name": "Commented-code block (6 lines) in frontend/src/pages/PollerNodeList.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/pages/PollerNodeList.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-6ddd62db8b51df8f", "name": "Commented-code block (10 lines) in frontend/src/pages/PlanList.tsx:1", "shortDescription": {"text": "Commented-code block (10 lines) in frontend/src/pages/PlanList.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-12609721d95048bf", "name": "Commented-code block (7 lines) in frontend/src/pages/PppoeServiceProfileList.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/pages/PppoeServiceProfileList.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-db2acd1eb651fee5", "name": "Commented-code block (9 lines) in frontend/src/pages/RecurringPaymentProfileList.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/RecurringPaymentProfileList.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-2a56d2d21470b32c", "name": "Commented-code block (8 lines) in frontend/src/pages/DeviceImport.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/pages/DeviceImport.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-e4081f45e39ec053", "name": "Commented-code block (6 lines) in frontend/src/pages/TaxReports.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/pages/TaxReports.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-dc6344b425f8b525", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/TaxReports.tsx:34", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/TaxReports.tsx:34"}, "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-35c3df30f8fc1aab", "name": "Commented-code block (8 lines) in frontend/src/pages/WebhookList.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/pages/WebhookList.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-d7cca2079df7c8b1", "name": "Commented-code block (11 lines) in frontend/src/pages/RefundRequestList.tsx:1", "shortDescription": {"text": "Commented-code block (11 lines) in frontend/src/pages/RefundRequestList.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-6d4f8a2a489bbff0", "name": "Commented-code block (9 lines) in frontend/src/pages/RoleList.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/RoleList.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-61526cb1232594a1", "name": "Commented-code block (10 lines) in frontend/src/pages/ClientProfileTabs.tsx:1", "shortDescription": {"text": "Commented-code block (10 lines) in frontend/src/pages/ClientProfileTabs.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-5b678e4359705e08", "name": "Commented-code block (7 lines) in frontend/src/pages/AnalyticsDashboard.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/pages/AnalyticsDashboard.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-7efdc940f1632588", "name": "Commented-code block (5 lines) in frontend/src/pages/SnmpTraps.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/pages/SnmpTraps.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-4208b080ddc4cc7a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/SnmpTraps.tsx:95", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/SnmpTraps.tsx:95"}, "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-e8e8ff94f87cfc13", "name": "Commented-code block (5 lines) in frontend/src/pages/LeadList.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/pages/LeadList.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-a204119a7f286c3f", "name": "Commented-code block (10 lines) in frontend/src/pages/WarehouseList.tsx:1", "shortDescription": {"text": "Commented-code block (10 lines) in frontend/src/pages/WarehouseList.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-08e6d4f939fd10ea", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/WarehouseList.tsx:71", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/WarehouseList.tsx:71"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-994e02b95f82fb6c", "name": "Commented-code block (8 lines) in frontend/src/pages/TaxRateList.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/pages/TaxRateList.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-8b7008494d929fe4", "name": "Commented-code block (7 lines) in frontend/src/pages/CpeProfilesPage.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/pages/CpeProfilesPage.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-1b5961e8c95f9a54", "name": "Commented-code block (7 lines) in frontend/src/pages/ClientActivityTab.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/pages/ClientActivityTab.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-838959300b4c9a25", "name": "Commented-code block (8 lines) in frontend/src/pages/SatisfactionSurveyList.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/pages/SatisfactionSurveyList.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-d617cdb3db67f4be", "name": "Commented-code block (11 lines) in frontend/src/pages/PaymentList.tsx:1", "shortDescription": {"text": "Commented-code block (11 lines) in frontend/src/pages/PaymentList.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-1bae5251e644efea", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/PaymentList.tsx:117", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/PaymentList.tsx:117"}, "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-f996088eced63a01", "name": "Commented-code block (5 lines) in frontend/src/pages/ServiceOrderList.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/pages/ServiceOrderList.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-19e6b52da5a528e6", "name": "Commented-code block (9 lines) in frontend/src/pages/PaymentReminderSettings.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/PaymentReminderSettings.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-1748f30a2fd595b2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/PaymentReminderSettings.tsx:38", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/PaymentReminderSettings.tsx:38"}, "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-0e8655da51b57751", "name": "Commented-code block (5 lines) in frontend/src/pages/SubscriberCertificateList.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/pages/SubscriberCertificateList.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-14433c13e886a983", "name": "Commented-code block (9 lines) in frontend/src/pages/InvoiceList.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/InvoiceList.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-324f81e5dadb0a80", "name": "Commented-code block (8 lines) in frontend/src/pages/CpeManagementPage.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/pages/CpeManagementPage.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-8735d1bab828ab02", "name": "Commented-code block (8 lines) in frontend/src/pages/PonPortManagementPage.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/pages/PonPortManagementPage.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-bab663865fc4a8a4", "name": "Commented-code block (9 lines) in frontend/src/pages/SnmpProfileList.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/SnmpProfileList.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-3172590f8c4bb722", "name": "Commented-code block (11 lines) in frontend/src/pages/ResellerPage.tsx:1", "shortDescription": {"text": "Commented-code block (11 lines) in frontend/src/pages/ResellerPage.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-54854ff5c8fa48ba", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/ResellerPage.tsx:109", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/ResellerPage.tsx:109"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-56df8eefc57e7ecf", "name": "Commented-code block (9 lines) in frontend/src/pages/IftStatisticalReportList.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/IftStatisticalReportList.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-6830fcff15ad27d5", "name": "Commented-code block (9 lines) in frontend/src/pages/DeviceConfigBackupList.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/DeviceConfigBackupList.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-abb143927b5c191d", "name": "Commented-code block (10 lines) in frontend/src/pages/UserList.tsx:1", "shortDescription": {"text": "Commented-code block (10 lines) in frontend/src/pages/UserList.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-e2241f8e9739dc35", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/UserList.tsx:62", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/UserList.tsx:62"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0b8b7b06a74ba075", "name": "Commented-code block (5 lines) in frontend/src/pages/SnmpMetrics.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/pages/SnmpMetrics.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-8847a73922198340", "name": "Commented-code block (9 lines) in frontend/src/pages/TicketList.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/TicketList.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-cc84aefd1b042714", "name": "Commented-code block (9 lines) in frontend/src/pages/AiSupportPage.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/AiSupportPage.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-45a6eaa7af82f982", "name": "Commented-code block (7 lines) in frontend/src/pages/TrapForwardingRuleList.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/pages/TrapForwardingRuleList.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-683738ece4683e10", "name": "Commented-code block (12 lines) in frontend/src/pages/CashReconciliationList.tsx:1", "shortDescription": {"text": "Commented-code block (12 lines) in frontend/src/pages/CashReconciliationList.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-c126b0806c42ff31", "name": "Commented-code block (13 lines) in frontend/src/pages/DeviceMap.tsx:1", "shortDescription": {"text": "Commented-code block (13 lines) in frontend/src/pages/DeviceMap.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-72baa357f5df087a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/DeviceMap.tsx:88", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/DeviceMap.tsx:88"}, "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-f6fe92fb3eda3ee3", "name": "Commented-code block (8 lines) in frontend/src/pages/Ipv6ManagementPage.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/pages/Ipv6ManagementPage.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-2ed60f25d0004a5d", "name": "Commented-code block (9 lines) in frontend/src/pages/ServiceAreaList.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/ServiceAreaList.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-18ef69fd1e811eaa", "name": "Commented-code block (10 lines) in frontend/src/pages/TicketDetail.tsx:1", "shortDescription": {"text": "Commented-code block (10 lines) in frontend/src/pages/TicketDetail.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-365f3d4118326492", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/TicketDetail.tsx:79", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/TicketDetail.tsx:79"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e4346f58181fb857", "name": "Commented-code block (9 lines) in frontend/src/pages/DsarTool.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/DsarTool.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-57c4e18fc969b6a4", "name": "Commented-code block (6 lines) in frontend/src/pages/NatManagementList.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/pages/NatManagementList.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-e658b7cea8a5a852", "name": "Commented-code block (6 lines) in frontend/src/pages/FollowUpReminderList.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/pages/FollowUpReminderList.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-865333f2057446d5", "name": "Commented-code block (10 lines) in frontend/src/pages/SatCatalogList.tsx:1", "shortDescription": {"text": "Commented-code block (10 lines) in frontend/src/pages/SatCatalogList.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-39849f541b9f059f", "name": "Commented-code block (6 lines) in frontend/src/pages/NocDashboard.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/pages/NocDashboard.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-37534450750ef334", "name": "Commented-code block (8 lines) in frontend/src/pages/IntegrationsPage.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/pages/IntegrationsPage.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-3c13740a6cf314d8", "name": "Commented-code block (7 lines) in frontend/src/pages/DiscoveryScanList.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/pages/DiscoveryScanList.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-5b0365ae1b11fdfe", "name": "Commented-code block (9 lines) in frontend/src/pages/RegulatoryFilingList.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/RegulatoryFilingList.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-aae509438c70601a", "name": "Commented-code block (9 lines) in frontend/src/pages/PaymentGatewayList.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/PaymentGatewayList.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-d2352bd26ad48167", "name": "Commented-code block (10 lines) in frontend/src/pages/OnuManagementPage.tsx:1", "shortDescription": {"text": "Commented-code block (10 lines) in frontend/src/pages/OnuManagementPage.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-b3d9e0057dc3b2a3", "name": "Commented-code block (10 lines) in frontend/src/pages/Reports.tsx:6", "shortDescription": {"text": "Commented-code block (10 lines) in frontend/src/pages/Reports.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-a42ad2e2c67a0ac2", "name": "Commented-code block (10 lines) in frontend/src/pages/InventoryManagement.tsx:1", "shortDescription": {"text": "Commented-code block (10 lines) in frontend/src/pages/InventoryManagement.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-a7f1b28414ae99c1", "name": "Commented-code block (9 lines) in frontend/src/pages/WirelessManagementPage.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/WirelessManagementPage.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-b2e30b845dae0650", "name": "Commented-code block (10 lines) in frontend/src/pages/DrDrillStatus.tsx:1", "shortDescription": {"text": "Commented-code block (10 lines) in frontend/src/pages/DrDrillStatus.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-9034d988335a5b40", "name": "Commented-code block (8 lines) in frontend/src/pages/PromotionList.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/pages/PromotionList.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-a0019260f3cdec51", "name": "Commented-code block (6 lines) in frontend/src/pages/PtrRecordList.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/pages/PtrRecordList.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-d7efec0f1c5a14ca", "name": "Commented-code block (9 lines) in frontend/src/pages/CreditNoteList.tsx:1", "shortDescription": {"text": "Commented-code block (9 lines) in frontend/src/pages/CreditNoteList.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-50e34dfe16936941", "name": "Commented-code block (8 lines) in frontend/src/pages/ScheduledTaskList.tsx:1", "shortDescription": {"text": "Commented-code block (8 lines) in frontend/src/pages/ScheduledTaskList.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-0f759273ed43f0e4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/__tests__/UserList.test.tsx:13", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/__tests__/UserList.test.tsx: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-1e8cacad52862353", "name": "Commented-code block (5 lines) in frontend/src/pages/portal/PortalTickets.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/pages/portal/PortalTickets.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-a17ded2abfff2252", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/portal/PortalTickets.tsx:32", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/portal/PortalTickets.tsx:32"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f99690cbb222e8f3", "name": "Commented-code block (5 lines) in frontend/src/pages/portal/PortalSpeedTest.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/pages/portal/PortalSpeedTest.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-90eb992a1085655b", "name": "Commented-code block (6 lines) in frontend/src/pages/portal/PortalAccount.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/pages/portal/PortalAccount.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-53fc295cc77f8a33", "name": "Commented-code block (6 lines) in frontend/src/pages/portal/PortalDashboard.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/pages/portal/PortalDashboard.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-91d3bc1321abb5a2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/portal/PortalDashboard.tsx:57", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/portal/PortalDashboard.tsx:57"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-777da5444a4f5990", "name": "Commented-code block (5 lines) in frontend/src/pages/portal/PortalKb.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/pages/portal/PortalKb.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-96b6aa7c12b0a263", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/portal/PortalKb.tsx:27", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/portal/PortalKb.tsx:27"}, "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-6025ab09bafbcfa3", "name": "Commented-code block (6 lines) in frontend/src/pages/portal/PortalTicketDetail.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/pages/portal/PortalTicketDetail.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-2cb91140e200ea77", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/portal/PortalTicketDetail.tsx:35", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/portal/PortalTicketDetail.tsx:35"}, "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-3877b605b7d1848b", "name": "Commented-code block (5 lines) in frontend/src/pages/portal/PortalChat.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/pages/portal/PortalChat.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-868f065da4cdfd42", "name": "Commented-code block (6 lines) in frontend/src/pages/portal/PortalInvoiceDetail.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/pages/portal/PortalInvoiceDetail.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-97de10e57e8409e1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/portal/PortalInvoiceDetail.tsx:51", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/portal/PortalInvoiceDetail.tsx:51"}, "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-a42adad534e5d0f5", "name": "Commented-code block (5 lines) in frontend/src/pages/portal/PortalInvoices.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/pages/portal/PortalInvoices.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-dd8b8329761dc343", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/portal/PortalInvoices.tsx:36", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/portal/PortalInvoices.tsx:36"}, "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-a1d63463e8cdaad0", "name": "Commented-code block (12 lines) in tests/aiProvider.test.js:1", "shortDescription": {"text": "Commented-code block (12 lines) in tests/aiProvider.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b7317f79d17e2c5b", "name": "Commented-code block (6 lines) in tests/e2eAlertWorkflow.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/e2eAlertWorkflow.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-11adff42b00b653e", "name": "Commented-code block (5 lines) in tests/section15.test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/section15.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5236ff2f5e7e53d8", "name": "Commented-code block (10 lines) in tests/cookieAuth.test.js:1", "shortDescription": {"text": "Commented-code block (10 lines) in tests/cookieAuth.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-403bc35adcaf16f4", "name": "Commented-code block (7 lines) in tests/routeValidation.test.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in tests/routeValidation.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-152e0dd334136db5", "name": "Commented-code block (5 lines) in tests/integrationWorkflow.test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/integrationWorkflow.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9ec21a7ef60c9e1b", "name": "Commented-code block (5 lines) in tests/section18Extended.test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/section18Extended.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e2cab1228efaa692", "name": "Commented-code block (7 lines) in tests/patchRoutes.test.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in tests/patchRoutes.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3f8c740f052cdac3", "name": "Commented-code block (7 lines) in tests/169_ai_assistant.test.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in tests/169_ai_assistant.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-41f98ddf1346b746", "name": "Commented-code block (5 lines) in tests/section17DataSecurity.test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/section17DataSecurity.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-226662dd5cd4508b", "name": "Commented-code block (6 lines) in tests/m7BillingRoutes.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/m7BillingRoutes.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-af3f7eabf7f65a15", "name": "Commented-code block (5 lines) in tests/routerosService.test.js:829", "shortDescription": {"text": "Commented-code block (5 lines) in tests/routerosService.test.js:829"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-47c173bd2d7db7b0", "name": "Commented-code block (9 lines) in tests/autoBillingCycle.test.js:1", "shortDescription": {"text": "Commented-code block (9 lines) in tests/autoBillingCycle.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4edc4d60f07b455f", "name": "Commented-code block (5 lines) in tests/ponPortManagement.test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/ponPortManagement.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c564ffbe91be8e5a", "name": "Commented-code block (7 lines) in tests/contractSuspend.test.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in tests/contractSuspend.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-18fe97fbf5c38c34", "name": "Commented-code block (6 lines) in tests/app.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/app.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0e26079238247662", "name": "Commented-code block (7 lines) in tests/criticalModels.test.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in tests/criticalModels.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5fde87daec0ab8b4", "name": "Commented-code block (7 lines) in tests/pppoeServiceProfileSync.test.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in tests/pppoeServiceProfileSync.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8df2d4d390be3662", "name": "Commented-code block (5 lines) in tests/multitenantIsolation.test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/multitenantIsolation.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8c784ea8062e937f", "name": "Commented-code block (9 lines) in tests/aiHooks.test.js:1", "shortDescription": {"text": "Commented-code block (9 lines) in tests/aiHooks.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-25211afc5a8eed38", "name": "Commented-code block (10 lines) in tests/aiPolicy.test.js:1", "shortDescription": {"text": "Commented-code block (10 lines) in tests/aiPolicy.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a7d58f75967edcde", "name": "Commented-code block (6 lines) in tests/pppoeDiagnosticsService.test.js:206", "shortDescription": {"text": "Commented-code block (6 lines) in tests/pppoeDiagnosticsService.test.js:206"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-575e8680d9d2cbf9", "name": "Legacy-named symbol `config_backup` in tests/newValidationSchemas.test.js:853", "shortDescription": {"text": "Legacy-named symbol `config_backup` in tests/newValidationSchemas.test.js:853"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bc84aae4c3322c9c", "name": "Commented-code block (5 lines) in tests/newValidationSchemas.test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/newValidationSchemas.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-afc8e163ae199f55", "name": "Commented-code block (7 lines) in tests/clientProfileRoutes.test.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in tests/clientProfileRoutes.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dfb34f12cc052f24", "name": "Commented-code block (8 lines) in tests/migrate.test.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in tests/migrate.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7f066ddff3f0ba1a", "name": "Commented-code block (9 lines) in tests/graphqlAi.test.js:1", "shortDescription": {"text": "Commented-code block (9 lines) in tests/graphqlAi.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d0eb082d633ea583", "name": "Commented-code block (10 lines) in tests/dbReadReplica.test.js:1", "shortDescription": {"text": "Commented-code block (10 lines) in tests/dbReadReplica.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5cf5431e7f580bdd", "name": "Commented-code block (7 lines) in tests/domainControllersDeep.test.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in tests/domainControllersDeep.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2e6c10523ce102c9", "name": "Commented-code block (6 lines) in tests/aiReplyService.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/aiReplyService.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-779f86cedc5dc288", "name": "Commented-code block (6 lines) in tests/e2ePaymentFlow.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/e2ePaymentFlow.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-90478845949c4d92", "name": "Commented-code block (6 lines) in tests/e2eBillingWorkflow.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/e2eBillingWorkflow.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a0ecb65f46e1b3bc", "name": "Commented-code block (5 lines) in tests/dsar.test.js:7", "shortDescription": {"text": "Commented-code block (5 lines) in tests/dsar.test.js:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-29c85d4028ab0971", "name": "Commented-code block (6 lines) in tests/section16.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/section16.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e7bae499d2537406", "name": "Commented-code block (6 lines) in tests/coverageZoneMap.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/coverageZoneMap.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7b49f98d209c7836", "name": "Commented-code block (7 lines) in tests/remainingModels.test.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in tests/remainingModels.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-74ef74112f9def96", "name": "Commented-code block (5 lines) in tests/validationSchemas.test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/validationSchemas.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-874c786f6ca98b0e", "name": "Commented-code block (5 lines) in tests/webhookRetry.test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/webhookRetry.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f4e874e8cee627d3", "name": "Commented-code block (7 lines) in tests/missingSchemas.test.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in tests/missingSchemas.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ca12b876334c8865", "name": "Commented-code block (6 lines) in tests/paginationConsistency.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/paginationConsistency.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3342fa45e352bb67", "name": "Commented-code block (5 lines) in tests/productionHardening.test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/productionHardening.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8127842ff7c1887b", "name": "Commented-code block (8 lines) in tests/secretsAudit.test.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in tests/secretsAudit.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-21052bf2948de6c7", "name": "Commented-code block (5 lines) in tests/pppoeAuthFlow.test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/pppoeAuthFlow.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9f25a69b5095d4d0", "name": "Commented-code block (7 lines) in tests/firerelay.test.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in tests/firerelay.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3dc1aee335275d5d", "name": "Commented-code block (5 lines) in tests/authServiceExtended.test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/authServiceExtended.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f890dfc108280d48", "name": "Commented-code block (6 lines) in tests/radiusFreeradiusSync.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/radiusFreeradiusSync.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-afd404e0f0a70a25", "name": "Commented-code block (6 lines) in tests/radiusCoaEncoder.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/radiusCoaEncoder.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-572a3c32eb745318", "name": "Commented-code block (6 lines) in tests/subscriberProvisioningService.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/subscriberProvisioningService.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-224da1556450066f", "name": "Commented-code block (7 lines) in tests/coreRoutes.test.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in tests/coreRoutes.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0f47de2b8aaddf30", "name": "Commented-code block (6 lines) in tests/httpCache.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/httpCache.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eefd19949fed9275", "name": "Commented-code block (5 lines) in tests/section18Services.test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/section18Services.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ca84db74d592ab2f", "name": "Commented-code block (6 lines) in tests/domainControllers.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/domainControllers.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0424de066ad82bd4", "name": "Commented-code block (9 lines) in tests/portalAdminServiceRequests.test.js:1", "shortDescription": {"text": "Commented-code block (9 lines) in tests/portalAdminServiceRequests.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4414ac78a7b10707", "name": "Commented-code block (5 lines) in tests/routeIntegration.test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/routeIntegration.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9bc1a59b99e412c4", "name": "Commented-code block (6 lines) in tests/nasHealthService.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/nasHealthService.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0fc2f1df46d2a261", "name": "Commented-code block (5 lines) in tests/section17.test.js:1499", "shortDescription": {"text": "Commented-code block (5 lines) in tests/section17.test.js:1499"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0a4336e89a0d8de6", "name": "Commented-code block (5 lines) in tests/e2eSuspensionWorkflow.test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/e2eSuspensionWorkflow.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-38fca513e16d1bb6", "name": "Commented-code block (7 lines) in tests/routesCoverage.test.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in tests/routesCoverage.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-89407239761d1845", "name": "Commented-code block (11 lines) in tests/radiusAuthzSync.test.js:1", "shortDescription": {"text": "Commented-code block (11 lines) in tests/radiusAuthzSync.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aede2bd81c45e4e6", "name": "Commented-code block (5 lines) in tests/llmProviderService.test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in tests/llmProviderService.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-92507bf0c6a4ad4f", "name": "Commented-code block (6 lines) in tests/portalSection11.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/portalSection11.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a981460323c6fea7", "name": "Commented-code block (7 lines) in tests/graphql.test.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in tests/graphql.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ba669ed22885b946", "name": "Legacy-named symbol `test_backup` in tests/backup.test.js:134", "shortDescription": {"text": "Legacy-named symbol `test_backup` in tests/backup.test.js:134"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-447e75df8ea4d5d9", "name": "Commented-code block (7 lines) in tests/loadtestSoak.test.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in tests/loadtestSoak.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-10a03ce803ebdbc3", "name": "Commented-code block (7 lines) in tests/stubHonesty.test.js:276", "shortDescription": {"text": "Commented-code block (7 lines) in tests/stubHonesty.test.js:276"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-56cb38df91c6a1aa", "name": "Commented-code block (7 lines) in tests/radiusAccountingService.test.js:163", "shortDescription": {"text": "Commented-code block (7 lines) in tests/radiusAccountingService.test.js:163"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-92aa2b0a64569184", "name": "Commented-code block (6 lines) in tests/networkRoutes.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/networkRoutes.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a0d392eb3ce77d44", "name": "Commented-code block (6 lines) in tests/radiusLoginTimeService.test.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in tests/radiusLoginTimeService.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1a3a573d16c6c7f5", "name": "Commented-code block (7 lines) in tests/workers/aiWorkers.test.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in tests/workers/aiWorkers.test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c99b7f9137f97dc4", "name": "Commented-code block (6 lines) in src/app.js:718", "shortDescription": {"text": "Commented-code block (6 lines) in src/app.js:718"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c3ac2973b7c0dcc7", "name": "Commented-code block (7 lines) in src/models/AiProvider.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/models/AiProvider.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-7b003eb3dc7933ac", "name": "Commented-code block (6 lines) in src/models/ServiceOrder.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/models/ServiceOrder.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-b7f9b04634573c5f", "name": "Commented-code block (7 lines) in src/models/AiReplyLog.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/models/AiReplyLog.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-94d487ac50c016c9", "name": "Commented-code block (6 lines) in src/models/ContractTopologyPath.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/models/ContractTopologyPath.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-05f59846acf7d345", "name": "Commented-code block (7 lines) in src/models/SatisfactionSurvey.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/models/SatisfactionSurvey.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-91efee3be93d5e8e", "name": "Commented-code block (6 lines) in src/models/AiPolicy.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/models/AiPolicy.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-bc4d5fb1e232add7", "name": "Commented-code block (7 lines) in src/models/AiPhrase.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/models/AiPhrase.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-0fa9ca370457bb69", "name": "Commented-code block (7 lines) in src/models/AiForbiddenTerm.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/models/AiForbiddenTerm.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-21e6ed36de1ada44", "name": "Commented-code block (5 lines) in src/models/Lead.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/models/Lead.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-d38f0288968e0bfc", "name": "Commented-code block (6 lines) in src/models/FollowUpReminder.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/models/FollowUpReminder.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-a50f215b3f439163", "name": "Commented-code block (7 lines) in src/models/TicketEscalation.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/models/TicketEscalation.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-6a985ebb4dc740a6", "name": "Commented-code block (5 lines) in src/models/ClientGroup.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/models/ClientGroup.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-a17190c0db6b6d32", "name": "Commented-code block (6 lines) in src/models/BaseModel.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/models/BaseModel.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-e297f5682f98e251", "name": "Commented-code block (6 lines) in src/models/WinbackCampaign.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/models/WinbackCampaign.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-28190aee0555ba0d", "name": "Commented-code block (6 lines) in src/models/ClientInteraction.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/models/ClientInteraction.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-8643d180da935922", "name": "Commented-code block (6 lines) in src/config/firerelay.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/config/firerelay.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-a83e7a63eb986a71", "name": "Commented-code block (6 lines) in src/config/database.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/config/database.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-922dd429caeb7062", "name": "Commented-code block (6 lines) in src/middleware/ipAllowlist.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/middleware/ipAllowlist.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-2c899afcecf74c4e", "name": "Commented-code block (5 lines) in src/middleware/portalAuth.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/middleware/portalAuth.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-2bada8864107ac39", "name": "Commented-code block (5 lines) in src/middleware/firerelay.js:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/middleware/firerelay.js:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b6ac25a7f77868d0", "name": "Commented-code block (6 lines) in src/middleware/rateLimit.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/middleware/rateLimit.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-fa2ecdd35c3ab975", "name": "Commented-code block (8 lines) in src/middleware/orgScope.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/middleware/orgScope.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-55667a736d43748f", "name": "Commented-code block (6 lines) in src/middleware/auth.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/middleware/auth.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-1f3900f29a0ff706", "name": "Commented-code block (7 lines) in src/middleware/requestId.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/middleware/requestId.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-2a740a43878391d4", "name": "Commented-code block (5 lines) in src/middleware/requestLogger.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/middleware/requestLogger.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-088ea173d71ed15e", "name": "Commented-code block (6 lines) in src/middleware/featureFlag.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/middleware/featureFlag.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-cf4a5ded07395b6c", "name": "Commented-code block (5 lines) in src/middleware/httpCache.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/middleware/httpCache.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-709d88fdf5a5ec90", "name": "Commented-code block (7 lines) in src/middleware/sanitize.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/middleware/sanitize.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-43a31aa591694acd", "name": "Commented-code block (10 lines) in src/middleware/csrf.js:9", "shortDescription": {"text": "Commented-code block (10 lines) in src/middleware/csrf.js: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-1c842f93a30da289", "name": "Commented-code block (7 lines) in src/middleware/rbac.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/middleware/rbac.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-f026e64ebd1a3c0e", "name": "Commented-code block (5 lines) in src/middleware/upload.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/middleware/upload.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-5d6dca0ccef94d13", "name": "Commented-code block (7 lines) in src/middleware/checkQuota.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/middleware/checkQuota.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-b217bb45028e637d", "name": "Commented-code block (5 lines) in src/middleware/schemas/export.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/middleware/schemas/export.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-db0b0f6cd68b7bd2", "name": "Legacy-named symbol `mikrotik_backup` in src/middleware/schemas/deviceConfigBackups.js:7", "shortDescription": {"text": "Legacy-named symbol `mikrotik_backup` in src/middleware/schemas/deviceConfigBackups.js:7"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f7c67c7763b1513d", "name": "Commented-code block (6 lines) in src/middleware/schemas/metrics.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/middleware/schemas/metrics.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-5ef96147d0c8fa5c", "name": "Commented-code block (6 lines) in src/middleware/schemas/events.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/middleware/schemas/events.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-00e3aa4470bec72a", "name": "Commented-code block (6 lines) in src/middleware/schemas/dashboard.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/middleware/schemas/dashboard.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-4ed5c6128569e9ad", "name": "Commented-code block (6 lines) in src/middleware/schemas/pdf.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/middleware/schemas/pdf.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-2b4df595d2c77b63", "name": "Legacy-named symbol `config_backup` in src/middleware/schemas/files.js:8", "shortDescription": {"text": "Legacy-named symbol `config_backup` in src/middleware/schemas/files.js:8"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3662b3d283135db4", "name": "Commented-code block (7 lines) in src/middleware/schemas/paymentTransactions.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/middleware/schemas/paymentTransactions.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-8863ca897f7bb6b4", "name": "Commented-code block (6 lines) in src/middleware/schemas/paymentWebhooks.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/middleware/schemas/paymentWebhooks.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-de3c3438b0257fe2", "name": "Commented-code block (6 lines) in src/middleware/schemas/satCatalogs.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/middleware/schemas/satCatalogs.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-13f6c42053f24621", "name": "Commented-code block (6 lines) in src/middleware/schemas/interactions.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/middleware/schemas/interactions.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-0c350e195593bcb1", "name": "Commented-code block (5 lines) in src/scripts/migrate.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/scripts/migrate.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-0ed2b0d3a89030aa", "name": "Commented-code block (6 lines) in src/scripts/firerelay-agent.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/scripts/firerelay-agent.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-afe36b0ba1cee35a", "name": "Commented-code block (5 lines) in src/scripts/admin.js:2", "shortDescription": {"text": "Commented-code block (5 lines) in src/scripts/admin.js: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-5765d4826166d065", "name": "Commented-code block (5 lines) in src/scripts/migration-smoke-test.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/scripts/migration-smoke-test.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1b96ca312b7805c3", "name": "Commented-code block (6 lines) in src/scripts/openapi.js:2", "shortDescription": {"text": "Commented-code block (6 lines) in src/scripts/openapi.js: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-bb10a631a5ae2300", "name": "Commented-code block (6 lines) in src/scripts/loadtest.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/scripts/loadtest.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-744f1dddf76f4662", "name": "Commented-code block (6 lines) in src/scripts/postman.js:2", "shortDescription": {"text": "Commented-code block (6 lines) in src/scripts/postman.js: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-c2dc546c709e8e99", "name": "Commented-code block (6 lines) in src/scripts/loadtest-soak.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/scripts/loadtest-soak.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-9b64bf8ff0a022a7", "name": "Commented-code block (7 lines) in src/scripts/spec-drift.js:2", "shortDescription": {"text": "Commented-code block (7 lines) in src/scripts/spec-drift.js: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-49cd150805362e84", "name": "Commented-code block (6 lines) in src/scripts/rollback.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/scripts/rollback.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-d16adfebd2b3e85e", "name": "Commented-code block (7 lines) in src/scripts/gen-route.js:2", "shortDescription": {"text": "Commented-code block (7 lines) in src/scripts/gen-route.js: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-ea4043fbe62d88cc", "name": "Commented-code block (5 lines) in src/scripts/seed.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/scripts/seed.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-7157c2b964352d18", "name": "Commented-code block (7 lines) in src/scripts/verify-volumes.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/scripts/verify-volumes.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-958920515427b3d2", "name": "Commented-code block (7 lines) in src/scripts/schema-parity-check.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/scripts/schema-parity-check.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-b17cbc91904fbdb0", "name": "Commented-code block (6 lines) in src/scripts/loadtest-seed.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/scripts/loadtest-seed.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-afe2790187ac8c29", "name": "Commented-code block (5 lines) in src/scripts/backup.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/scripts/backup.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-e7466e27589e6944", "name": "Commented-code block (7 lines) in src/utils/circuitBreaker.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/utils/circuitBreaker.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-2a637621396cc827", "name": "Commented-code block (5 lines) in src/utils/encryption.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/utils/encryption.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-7fb40b91a359f9a6", "name": "Commented-code block (7 lines) in src/utils/logger.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/utils/logger.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-153966ca1f06d762", "name": "Commented-code block (5 lines) in src/utils/scopes.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/utils/scopes.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-4fd1a3e19239cf5c", "name": "Commented-code block (5 lines) in src/utils/errorTracking.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/utils/errorTracking.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-2c4233f14131b113", "name": "Commented-code block (6 lines) in src/utils/openapi.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/utils/openapi.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-af21b6a3fb511f36", "name": "Commented-code block (8 lines) in src/utils/dbMetrics.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/utils/dbMetrics.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-f50ccb7472139b63", "name": "Commented-code block (9 lines) in src/utils/i18n.js:1", "shortDescription": {"text": "Commented-code block (9 lines) in src/utils/i18n.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-1dbc753da1959fb4", "name": "Commented-code block (8 lines) in src/utils/userSanitize.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/utils/userSanitize.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-58c0cbb35037a54f", "name": "Commented-code block (8 lines) in src/routes/firerelay.js:6", "shortDescription": {"text": "Commented-code block (8 lines) in src/routes/firerelay.js:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f2c87a22e00cce5f", "name": "Commented-code block (7 lines) in src/routes/communicationDelivery.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/routes/communicationDelivery.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-161e0307920bcf80", "name": "Commented-code block (5 lines) in src/routes/portalServiceRequests.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/routes/portalServiceRequests.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-aff0d60c1c127aa1", "name": "Commented-code block (7 lines) in src/routes/queueStats.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/routes/queueStats.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-f2ae11bbfe0ba965", "name": "Commented-code block (7 lines) in src/routes/pollerNodes.js:5", "shortDescription": {"text": "Commented-code block (7 lines) in src/routes/pollerNodes.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-75ab3faf028e6c69", "name": "Commented-code block (14 lines) in src/routes/fiberPlantManagement.js:8", "shortDescription": {"text": "Commented-code block (14 lines) in src/routes/fiberPlantManagement.js:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eaf5f61ca8a3608e", "name": "Commented-code block (9 lines) in src/routes/nocAi.js:6", "shortDescription": {"text": "Commented-code block (9 lines) in src/routes/nocAi.js:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-57b9c42574eb8779", "name": "Commented-code block (6 lines) in src/routes/profeco.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/routes/profeco.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-ce05ffff478ca7c6", "name": "Commented-code block (13 lines) in src/routes/portal.js:32", "shortDescription": {"text": "Commented-code block (13 lines) in src/routes/portal.js:32"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-72a38e3b2a2d8f7c", "name": "Commented-code block (5 lines) in src/routes/bulk.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/routes/bulk.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-c711cb755217e0e2", "name": "Commented-code block (12 lines) in src/routes/integrations.js:4", "shortDescription": {"text": "Commented-code block (12 lines) in src/routes/integrations.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-635f3042b41c4528", "name": "Commented-code block (10 lines) in src/routes/ai.js:11", "shortDescription": {"text": "Commented-code block (10 lines) in src/routes/ai.js:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e804715a0efc3d56", "name": "Commented-code block (6 lines) in src/routes/metrics.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/routes/metrics.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-17f501e86355784f", "name": "Commented-code block (5 lines) in src/routes/lifecycle.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/routes/lifecycle.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-f761564ff6b392e4", "name": "Commented-code block (5 lines) in src/routes/bandwidthTests.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/routes/bandwidthTests.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-23de04bc12d33558", "name": "Commented-code block (6 lines) in src/routes/events.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/routes/events.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-955e02df5d90e414", "name": "Commented-code block (6 lines) in src/routes/portalKb.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/routes/portalKb.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-125e9f08b2ae53bf", "name": "Commented-code block (7 lines) in src/routes/reportDefinitions.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/routes/reportDefinitions.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-f394c0b1531df058", "name": "Commented-code block (7 lines) in src/routes/pppoe.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/routes/pppoe.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-ee1c2286223cdbd9", "name": "Commented-code block (6 lines) in src/routes/changelog.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/routes/changelog.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-80b02f3cce6e7e59", "name": "Commented-code block (6 lines) in src/routes/devicePollingConfigs.js:5", "shortDescription": {"text": "Commented-code block (6 lines) in src/routes/devicePollingConfigs.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-476c6cd85c241935", "name": "Commented-code block (11 lines) in src/routes/wirelessManagement.js:8", "shortDescription": {"text": "Commented-code block (11 lines) in src/routes/wirelessManagement.js:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-243d4dcc6c75e044", "name": "Commented-code block (12 lines) in src/routes/onuManagement.js:8", "shortDescription": {"text": "Commented-code block (12 lines) in src/routes/onuManagement.js:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-751723c99726e767", "name": "Commented-code block (5 lines) in src/routes/sso.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/routes/sso.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-05302b862c75ead5", "name": "Commented-code block (7 lines) in src/routes/coverageZones.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/routes/coverageZones.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-466dd4dbcd07a846", "name": "Commented-code block (5 lines) in src/routes/dataSecurity.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/routes/dataSecurity.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-8e34b5f6937a9735", "name": "Commented-code block (5 lines) in src/routes/pdf.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/routes/pdf.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-adff7cefb9c8f819", "name": "Commented-code block (6 lines) in src/routes/dsar.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/routes/dsar.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-368c20b24319ce62", "name": "Commented-code block (6 lines) in src/routes/analyticsAI.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/routes/analyticsAI.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-0c73ec330da35318", "name": "Commented-code block (6 lines) in src/routes/radius.js:30", "shortDescription": {"text": "Commented-code block (6 lines) in src/routes/radius.js:30"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c4a3d174343f132a", "name": "Commented-code block (5 lines) in src/routes/cpeManagement.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/routes/cpeManagement.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-2351d0a0def5a419", "name": "Commented-code block (5 lines) in src/routes/sms.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/routes/sms.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-c19fa353125c3255", "name": "Commented-code block (9 lines) in src/routes/snmpMetrics.js:6", "shortDescription": {"text": "Commented-code block (9 lines) in src/routes/snmpMetrics.js:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-52cc0c36bf7df54e", "name": "Commented-code block (12 lines) in src/routes/resellers.js:5", "shortDescription": {"text": "Commented-code block (12 lines) in src/routes/resellers.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3ece73c69af6ab86", "name": "Commented-code block (5 lines) in src/routes/cpeProfiles.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/routes/cpeProfiles.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-da7e1ee6edbc53b9", "name": "Commented-code block (16 lines) in src/routes/oltManagement.js:8", "shortDescription": {"text": "Commented-code block (16 lines) in src/routes/oltManagement.js:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c05b4cf62e6e0ffa", "name": "Commented-code block (5 lines) in src/routes/clientDnd.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/routes/clientDnd.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-776b3cb69b9d88c1", "name": "Commented-code block (5 lines) in src/routes/transitionMechanisms.js:3", "shortDescription": {"text": "Commented-code block (5 lines) in src/routes/transitionMechanisms.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e53e1b876d477e27", "name": "Commented-code block (6 lines) in src/routes/serviceOrders.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/routes/serviceOrders.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-7a4449c928c898cb", "name": "Commented-code block (5 lines) in src/routes/radiusAccounting.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/routes/radiusAccounting.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-4794be17a598ffd0", "name": "Commented-code block (6 lines) in src/routes/dataManagement.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/routes/dataManagement.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-b6738ca90cd15eb1", "name": "Commented-code block (5 lines) in src/routes/snmpTraps.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/routes/snmpTraps.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-c37c0e9b82747885", "name": "Commented-code block (8 lines) in src/routes/billing.js:42", "shortDescription": {"text": "Commented-code block (8 lines) in src/routes/billing.js:42"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-29e3567c14f1c62c", "name": "Commented-code block (6 lines) in src/routes/paymentWebhooks.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/routes/paymentWebhooks.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-db8aa0f8d289c7a2", "name": "Commented-code block (5 lines) in src/routes/securityAdmin.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/routes/securityAdmin.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-3f3668099dfd2fa2", "name": "Commented-code block (9 lines) in src/routes/resellerPortal.js:5", "shortDescription": {"text": "Commented-code block (9 lines) in src/routes/resellerPortal.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-335422ca63d99ac7", "name": "Commented-code block (6 lines) in src/routes/paymentReminders.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/routes/paymentReminders.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-a35b85a3facf2d9e", "name": "Commented-code block (9 lines) in src/routes/subscriberCertificates.js:1", "shortDescription": {"text": "Commented-code block (9 lines) in src/routes/subscriberCertificates.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-558e5042dd7b84af", "name": "Commented-code block (6 lines) in src/routes/trafficEngineering.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/routes/trafficEngineering.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-dda08e77a502ac32", "name": "Commented-code block (20 lines) in src/routes/supportConversations.js:6", "shortDescription": {"text": "Commented-code block (20 lines) in src/routes/supportConversations.js:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e747a3159864fa74", "name": "Commented-code block (9 lines) in src/routes/lateFeeRules.js:1", "shortDescription": {"text": "Commented-code block (9 lines) in src/routes/lateFeeRules.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-aafc2f6cc9d20501", "name": "Commented-code block (9 lines) in src/routes/topologyMap.js:6", "shortDescription": {"text": "Commented-code block (9 lines) in src/routes/topologyMap.js:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-89a8a791217f7b6d", "name": "Commented-code block (5 lines) in src/routes/regulatoryCompliance.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/routes/regulatoryCompliance.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-86e28f60fd8542f1", "name": "Commented-code block (6 lines) in src/routes/invoiceSettings.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/routes/invoiceSettings.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-c1f5456b88c9e8a9", "name": "Commented-code block (5 lines) in src/routes/networkSecurity.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/routes/networkSecurity.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-aaa4de593f947ce3", "name": "Commented-code block (6 lines) in src/routes/automationScripts.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/routes/automationScripts.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-e321b43cae9cc0bf", "name": "Commented-code block (6 lines) in src/routes/routerDrivers.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/routes/routerDrivers.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-13459d2aeb23b963", "name": "Commented-code block (6 lines) in src/workers/index.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/workers/index.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-4373cbbe0bc54056", "name": "Commented-code block (5 lines) in src/graphql/resolvers.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/graphql/resolvers.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-fb47429d31af3bb4", "name": "Commented-code block (5 lines) in src/graphql/index.js:9", "shortDescription": {"text": "Commented-code block (5 lines) in src/graphql/index.js: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-6e79a610c762423d", "name": "Commented-code block (8 lines) in src/graphql/typeDefs.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/graphql/typeDefs.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-3ee14c4e6e572ad9", "name": "Commented-code block (6 lines) in src/controllers/cfdiController.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/controllers/cfdiController.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-b399e5d5511d0e54", "name": "Commented-code block (5 lines) in src/controllers/suspensionController.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/controllers/suspensionController.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-20919daa9bf8902d", "name": "Commented-code block (5 lines) in src/controllers/dashboardController.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/controllers/dashboardController.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-9c1c6fa99bdf3c09", "name": "Commented-code block (6 lines) in src/controllers/crudController.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/controllers/crudController.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-6a7648268c4fbd80", "name": "Commented-code block (8 lines) in src/controllers/importController.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/controllers/importController.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-d956e1abfef20e2a", "name": "Commented-code block (6 lines) in src/controllers/billingController.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/controllers/billingController.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-849977ebc996aa87", "name": "Commented-code block (5 lines) in src/controllers/exportController.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/controllers/exportController.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-f7813163dceb4f83", "name": "Commented-code block (7 lines) in src/services/campaignService.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/services/campaignService.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-f7724455fd7aa609", "name": "Commented-code block (10 lines) in src/services/paymentRetryService.js:1", "shortDescription": {"text": "Commented-code block (10 lines) in src/services/paymentRetryService.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-511f2d708c158e65", "name": "Commented-code block (5 lines) in src/services/supportGeneralModule.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/services/supportGeneralModule.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-bfbfa4d16944db11", "name": "Commented-code block (6 lines) in src/services/kbService.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/kbService.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-830545f21f81bad6", "name": "Commented-code block (5 lines) in src/services/routerDriverService.js:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/services/routerDriverService.js:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fa97531d915da70c", "name": "Commented-code block (17 lines) in src/services/interactionService.js:1", "shortDescription": {"text": "Commented-code block (17 lines) in src/services/interactionService.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-4d776bcec0516f55", "name": "Commented-code block (6 lines) in src/services/refundRequestService.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/refundRequestService.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-59dbee4c70599e01", "name": "Commented-code block (10 lines) in src/services/acsService.js:1", "shortDescription": {"text": "Commented-code block (10 lines) in src/services/acsService.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-fbb6322bcc772705", "name": "Commented-code block (7 lines) in src/services/analyticsService.js:6", "shortDescription": {"text": "Commented-code block (7 lines) in src/services/analyticsService.js:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-08bb40f69f0a02b7", "name": "Commented-code block (5 lines) in src/services/automationService.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/services/automationService.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-5696e70bdc42dcf7", "name": "Legacy-named symbol `database_backup` in src/services/taskRunner.js:105", "shortDescription": {"text": "Legacy-named symbol `database_backup` in src/services/taskRunner.js:105"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fd8562364c377be5", "name": "Commented-code block (6 lines) in src/services/taskRunner.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/taskRunner.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-b4a34edc6bceeb9a", "name": "Commented-code block (13 lines) in src/services/cpeDiagnosticsService.js:1", "shortDescription": {"text": "Commented-code block (13 lines) in src/services/cpeDiagnosticsService.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-922a6fe8867b6643", "name": "Commented-code block (5 lines) in src/services/poolAssignmentService.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/services/poolAssignmentService.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-88a69661ecebd36f", "name": "Commented-code block (7 lines) in src/services/snmpPoller.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/services/snmpPoller.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-47113cc194426e77", "name": "Commented-code block (5 lines) in src/services/aiSupportMetricsService.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/services/aiSupportMetricsService.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-8a5e258486e5032e", "name": "Commented-code block (5 lines) in src/services/drDrillService.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/services/drDrillService.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-7f14774c73b61de9", "name": "Commented-code block (5 lines) in src/services/diagnosticEngineService.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/services/diagnosticEngineService.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-6a2260c8453a0510", "name": "Commented-code block (6 lines) in src/services/suspensionService.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/suspensionService.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-7204ac1804bc18c0", "name": "Commented-code block (6 lines) in src/services/firerelayService.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/firerelayService.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-9edfc7e91d6d8336", "name": "Commented-code block (7 lines) in src/services/twoFactorService.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/services/twoFactorService.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-0dd31320af5ce8ed", "name": "Commented-code block (7 lines) in src/services/reportService.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/services/reportService.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-7e7756a28ddfe3fc", "name": "Commented-code block (6 lines) in src/services/fupNotificationService.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/fupNotificationService.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-45928b381bc22141", "name": "Commented-code block (7 lines) in src/services/scheduler.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/services/scheduler.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-075ef8ef8b2ca5af", "name": "Commented-code block (5 lines) in src/services/routerosService.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/services/routerosService.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-1424510fae24bafe", "name": "Commented-code block (6 lines) in src/services/portalAuthService.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/portalAuthService.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-64cbf555535f2cd6", "name": "Commented-code block (5 lines) in src/services/wsHub.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/services/wsHub.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-9a0071beca427513", "name": "Commented-code block (7 lines) in src/services/firerelayTunnel.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/services/firerelayTunnel.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-f5c9f444cb0aef6f", "name": "Commented-code block (8 lines) in src/services/resellerService.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/services/resellerService.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-9c3e729a6ae7b616", "name": "Commented-code block (6 lines) in src/services/quotaService.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/quotaService.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-863c0397613ccb2c", "name": "Commented-code block (6 lines) in src/services/qosService.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/qosService.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-46a324c9502b0606", "name": "Commented-code block (6 lines) in src/services/cfdiService.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/cfdiService.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-41a9daf01c32ee88", "name": "Commented-code block (6 lines) in src/services/nasHealthService.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/nasHealthService.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-3768423db940240b", "name": "Commented-code block (8 lines) in src/services/cwmpXml.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/services/cwmpXml.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-84f6c62992d179c5", "name": "Commented-code block (5 lines) in src/services/cloudStorageService.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/services/cloudStorageService.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-f633ca35e50cb646", "name": "Commented-code block (5 lines) in src/services/auditLog.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/services/auditLog.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-726ae6a8b1b59f9d", "name": "Commented-code block (5 lines) in src/services/topologyContextService.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/services/topologyContextService.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-7eea70b0742414f5", "name": "Commented-code block (7 lines) in src/services/paymentReminderService.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/services/paymentReminderService.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-e1390a7c27a883ec", "name": "Commented-code block (11 lines) in src/services/portalServiceRequestService.js:1", "shortDescription": {"text": "Commented-code block (11 lines) in src/services/portalServiceRequestService.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-a730b606d37bcce3", "name": "Commented-code block (8 lines) in src/services/thermalReceiptService.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/services/thermalReceiptService.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-0d5b4c297c025801", "name": "Legacy-named symbol `daysOld` in src/services/cpeSessionLogService.js:85", "shortDescription": {"text": "Legacy-named symbol `daysOld` in src/services/cpeSessionLogService.js:85"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-db1ba1ae8b79838c", "name": "Commented-code block (6 lines) in src/services/cpeSessionLogService.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/cpeSessionLogService.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-4c46ca2edd54703b", "name": "Commented-code block (6 lines) in src/services/radiusService.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/radiusService.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-8d99849cf9c3eeaf", "name": "Commented-code block (8 lines) in src/services/topologyMapService.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/services/topologyMapService.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-f31e646e0dc3c8d7", "name": "Commented-code block (7 lines) in src/services/poolUtilizationService.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/services/poolUtilizationService.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-3ef945e2009d9190", "name": "Commented-code block (6 lines) in src/services/usageService.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/usageService.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-ca940f33325b6704", "name": "Commented-code block (6 lines) in src/services/eventBus.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/eventBus.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-5240031be7c81491", "name": "Commented-code block (6 lines) in src/services/jobQueueService.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/jobQueueService.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-679b3db77489967c", "name": "Legacy-named symbol `dailyOld` in src/services/billingService.js:291", "shortDescription": {"text": "Legacy-named symbol `dailyOld` in src/services/billingService.js:291"}, "fullDescription": {"text": "Names with suffixes like `_old`, `_v1`, `_deprecated` usually indicate replaced-but-not-removed code (typical AI-coder leftover). Confirm and delete, or rename if it's the active version."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a68f68e3bebb04f2", "name": "Commented-code block (6 lines) in src/services/billingService.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/billingService.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-bd758986f5f8e372", "name": "Commented-code block (7 lines) in src/services/radiusAttributeService.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/services/radiusAttributeService.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-6b85675d70f3d058", "name": "Commented-code block (6 lines) in src/services/alertService.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/alertService.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-70e8cc2c288298dd", "name": "Commented-code block (5 lines) in src/services/securityService.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/services/securityService.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-ae2531bafb58e4f2", "name": "Commented-code block (6 lines) in src/services/invoiceSettingsService.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/invoiceSettingsService.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-bc10fa0d033a3cd5", "name": "Commented-code block (6 lines) in src/services/fupService.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/fupService.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-a7e17f2bb75cbb99", "name": "Commented-code block (6 lines) in src/services/lateFeeService.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/lateFeeService.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-99d7a0a4ad51cde1", "name": "Commented-code block (5 lines) in src/services/billingAdjustmentService.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/services/billingAdjustmentService.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-11221218ec3c4d3a", "name": "Commented-code block (6 lines) in src/services/radiusCoaEncoder.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/radiusCoaEncoder.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-70b46dfe26b81b5c", "name": "Commented-code block (9 lines) in src/services/cpeInventoryService.js:1", "shortDescription": {"text": "Commented-code block (9 lines) in src/services/cpeInventoryService.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-220ac1ae5613a7cb", "name": "Commented-code block (6 lines) in src/services/pdfService.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/pdfService.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-b46aa13b8be5177b", "name": "Commented-code block (6 lines) in src/services/pppoeDiagnosticsService.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/pppoeDiagnosticsService.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-c4cdf32b3d1a1aac", "name": "Commented-code block (9 lines) in src/services/supportConversationService.js:6", "shortDescription": {"text": "Commented-code block (9 lines) in src/services/supportConversationService.js:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4982461c7d8e21c3", "name": "Commented-code block (5 lines) in src/services/geocodingService.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/services/geocodingService.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-be5e43088af9a220", "name": "Commented-code block (6 lines) in src/services/rolloverService.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/rolloverService.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-95a9a9373d651562", "name": "Commented-code block (6 lines) in src/services/configBackupService.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/configBackupService.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-5cf0213c6a368a9d", "name": "Commented-code block (6 lines) in src/services/phraseLibraryService.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/phraseLibraryService.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-fb1bd6e62f017767", "name": "Commented-code block (7 lines) in src/services/speedWindowService.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/services/speedWindowService.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-61a41d84cee452d3", "name": "Commented-code block (5 lines) in src/services/fiberPlantService.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/services/fiberPlantService.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-9da43075a03e85b7", "name": "Commented-code block (6 lines) in src/services/cacheService.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/cacheService.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-323ca2875ecdd73d", "name": "Commented-code block (6 lines) in src/services/supportBillingModule.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/supportBillingModule.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-4a3049331e51b78d", "name": "Commented-code block (5 lines) in src/services/aiReplyService.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/services/aiReplyService.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-b4e8459367a342e7", "name": "Commented-code block (6 lines) in src/services/notificationHooks.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/notificationHooks.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-909fd104ac24cb35", "name": "Commented-code block (5 lines) in src/services/ftthService.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/services/ftthService.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-87651c7f615d7b1a", "name": "Commented-code block (6 lines) in src/services/coverageZoneService.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/coverageZoneService.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-711087555a1f2214", "name": "Commented-code block (6 lines) in src/services/notificationService.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/notificationService.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-f18b69b1ea96ff59", "name": "Commented-code block (5 lines) in src/services/pollerEngine.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/services/pollerEngine.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-b9f4f972cb0a4041", "name": "Commented-code block (6 lines) in src/services/nocAiService.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/nocAiService.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-bcbc2bbbbeb39b43", "name": "Commented-code block (5 lines) in src/services/scriptingService.js:6", "shortDescription": {"text": "Commented-code block (5 lines) in src/services/scriptingService.js:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ae80a445fce49d4a", "name": "Commented-code block (6 lines) in src/services/retentionService.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/retentionService.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-322449805dc9588e", "name": "Commented-code block (6 lines) in src/services/integrationService.js:4", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/integrationService.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a0894d88854c4bba", "name": "Commented-code block (6 lines) in src/services/dataPackService.js:3", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/dataPackService.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-13b717ec3740798a", "name": "Commented-code block (5 lines) in src/services/emailTransport.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/services/emailTransport.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-d786756f91bbf40e", "name": "Commented-code block (7 lines) in src/services/geoFenceService.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/services/geoFenceService.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-577ffde903c47a74", "name": "Commented-code block (8 lines) in src/services/smsTransport.js:1", "shortDescription": {"text": "Commented-code block (8 lines) in src/services/smsTransport.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-5004a355032cf751", "name": "Commented-code block (5 lines) in src/services/radiusLoginTimeService.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/services/radiusLoginTimeService.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-f402dd5aa81c7017", "name": "Commented-code block (7 lines) in src/services/paymentGatewayService.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/services/paymentGatewayService.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-1e365d6e80c2f555", "name": "Commented-code block (6 lines) in src/services/checkoutService.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/checkoutService.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-ff035be0df901046", "name": "Commented-code block (13 lines) in src/services/lifecycleService.js:1", "shortDescription": {"text": "Commented-code block (13 lines) in src/services/lifecycleService.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-ca5171dbc77970cc", "name": "Commented-code block (7 lines) in src/services/radiusAccountingService.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/services/radiusAccountingService.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-3bcd2bff960cee09", "name": "Commented-code block (7 lines) in src/services/firerelayAgent.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/services/firerelayAgent.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-26c1653652e7c2d8", "name": "Commented-code block (6 lines) in src/services/snmpTrapReceiver.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/snmpTrapReceiver.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-3192068ddd283107", "name": "Commented-code block (14 lines) in src/services/wirelessService.js:3", "shortDescription": {"text": "Commented-code block (14 lines) in src/services/wirelessService.js:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e10dfc93e9493677", "name": "Commented-code block (7 lines) in src/services/llmProviderService.js:13", "shortDescription": {"text": "Commented-code block (7 lines) in src/services/llmProviderService.js:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7a0d79bb531f64f4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/services/llmProviderService.js:311", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/services/llmProviderService.js:311"}, "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-83a20ce76d92658f", "name": "Commented-code block (6 lines) in src/services/supportContextService.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/supportContextService.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-c4f828633dba4bcf", "name": "Commented-code block (5 lines) in src/services/serviceHealthService.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/services/serviceHealthService.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-0f2fa58f55bdc72b", "name": "Commented-code block (5 lines) in src/services/profecoService.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/services/profecoService.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-1420f962fc816aa3", "name": "Commented-code block (7 lines) in src/services/webhookService.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/services/webhookService.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-79bbd118bcb249cc", "name": "Commented-code block (6 lines) in src/services/vectorStoreService.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/services/vectorStoreService.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-a59beb281e8ddd57", "name": "Commented-code block (5 lines) in src/services/scheduledReportService.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in src/services/scheduledReportService.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-2ee0a60df3552fc6", "name": "Commented-code block (11 lines) in src/services/subscriberProvisioningService.js:1", "shortDescription": {"text": "Commented-code block (11 lines) in src/services/subscriberProvisioningService.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-221a99e65d4022e2", "name": "Commented-code block (7 lines) in src/views/emailTemplates.js:1", "shortDescription": {"text": "Commented-code block (7 lines) in src/views/emailTemplates.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-702848574a0ffcc2", "name": "Commented-code block (5 lines) in e2e/playwright.config.ts:21", "shortDescription": {"text": "Commented-code block (5 lines) in e2e/playwright.config.ts:21"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c604ab46f99f65b1", "name": "Commented-code block (7 lines) in e2e/tests/smoke.spec.ts:88", "shortDescription": {"text": "Commented-code block (7 lines) in e2e/tests/smoke.spec.ts:88"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-500e3b7d9fe8faf0", "name": "76 env vars used in code but missing from .env.example", "shortDescription": {"text": "76 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `ADMIN_IP_ALLOWLIST`, `ADMIN_PASSWORD`, `BACKUP_RETENTION`, `BACKUP_S3_ACCESS_KEY`, `BACKUP_S3_BUCKET`, `BACKUP_S3_ENDPOINT`, `BACKUP_S3_PREFIX`, `BACKUP_S3_REGION` + 68 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8b73535fd10c0968", "name": "Frontend route `/portal/invoices/:id` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `/portal/invoices/:id` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4ab6f51f6ef62dce", "name": "Frontend route `/portal/tickets/:id` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `/portal/tickets/:id` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f81e849e739501d5", "name": "Frontend route `/portal/chat` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `/portal/chat` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3bf26683ecc5cba7", "name": "Frontend route `clients` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `clients` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-35180e3e2c4f4d04", "name": "Frontend route `clients/:id` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `clients/:id` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3154a56e1ca0217c", "name": "Frontend route `client-groups` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `client-groups` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-38f60a7a21d047ba", "name": "Frontend route `leads` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `leads` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-498291893f89d75a", "name": "Frontend route `service-orders` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `service-orders` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e75060ec13abb8b3", "name": "Frontend route `contracts` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `contracts` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-776826763d82793c", "name": "Frontend route `invoices` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `invoices` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f5e9ebb75de21462", "name": "Frontend route `invoices/:id` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `invoices/:id` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-16e6312bb761d5b9", "name": "Frontend route `payments` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `payments` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3383f9fe04863443", "name": "Frontend route `tickets` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `tickets` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d3e7d2ee6aacf7d9", "name": "Frontend route `tickets/:id` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `tickets/:id` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5290def36b1013d8", "name": "Frontend route `communication-campaigns` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `communication-campaigns` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a6d00a3519180116", "name": "Frontend route `follow-up-reminders` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `follow-up-reminders` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e1fa29b3351e51a3", "name": "Frontend route `satisfaction-surveys` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `satisfaction-surveys` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d4a4b6603476fa7a", "name": "Frontend route `escalations` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `escalations` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5f5afdf2712c9f84", "name": "Frontend route `devices` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `devices` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0978a4b4c1ddd273", "name": "Frontend route `inventory` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `inventory` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dc5e309e7980ad4c", "name": "Frontend route `warehouses` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `warehouses` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d85eac3d4bffd623", "name": "Frontend route `radius-sessions` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `radius-sessions` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8e527ba4f70c4531", "name": "Frontend route `subscriber-certificates` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `subscriber-certificates` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b698252b35d5979f", "name": "Frontend route `session-accounting` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `session-accounting` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5642bb114c279bdb", "name": "Frontend route `snmp-metrics` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `snmp-metrics` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-af4060cb09a59dab", "name": "Frontend route `snmp-traps` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `snmp-traps` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f39e68c2bfbdc623", "name": "Frontend route `coverage-zones` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `coverage-zones` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6cb5c06a67b20405", "name": "Frontend route `sites` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `sites` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c3c3bab3d2fdced2", "name": "Frontend route `nas` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `nas` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0e9cd080116bbeda", "name": "Frontend route `mac-move-events` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `mac-move-events` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d2d4c9b7d13fd7e2", "name": "Frontend route `pppoe-service-profiles` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `pppoe-service-profiles` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-416863caa87cea47", "name": "Frontend route `pppoe-diagnostics` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `pppoe-diagnostics` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-045eaa3e0c3506d5", "name": "Frontend route `ip-pools` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `ip-pools` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9a4cc3745364df8b", "name": "Frontend route `ip-assignments` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `ip-assignments` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ef9430d3dbdc3424", "name": "Frontend route `vlans` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `vlans` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-82b16f61eadc4286", "name": "Frontend route `service-areas` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `service-areas` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cadc89ee8c9ff537", "name": "Frontend route `outages` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `outages` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0444ae7dffbad1fa", "name": "Frontend route `speed-tests` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `speed-tests` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-31f287e11c07e82a", "name": "Frontend route `connection-logs` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `connection-logs` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7954e9374bb78df9", "name": "Frontend route `network-health` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `network-health` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-beb476a0a24c91e7", "name": "Frontend route `snmp-profiles` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `snmp-profiles` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c9263d2c75f443bf", "name": "Frontend route `device-config-backups` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `device-config-backups` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c59460e827455bb4", "name": "Frontend route `config-templates` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `config-templates` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-02151cff5f08af6e", "name": "Frontend route `config-backup-schedules` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `config-backup-schedules` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e3ea08f48952de68", "name": "Frontend route `config-compliance-rules` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `config-compliance-rules` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8e5daa8912b08897", "name": "Frontend route `suspension-rules` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `suspension-rules` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-69bd92332e4e98a5", "name": "Frontend route `dhcp-servers` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `dhcp-servers` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b90b4012b92be975", "name": "Frontend route `nat-management` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `nat-management` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-96863d31a40ab58b", "name": "Frontend route `ptr-records` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `ptr-records` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d9b62312697ea436", "name": "Frontend route `ipv6-management` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `ipv6-management` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e154068ab42d52c3", "name": "Frontend route `transition-mechanisms` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `transition-mechanisms` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-87212884d940f866", "name": "Frontend route `device-groups` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `device-groups` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-734dd0c62d8e88d4", "name": "Frontend route `discovery-scans` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `discovery-scans` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-00c13a8d15425204", "name": "Frontend route `device-import` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `device-import` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5570f1f096a24735", "name": "Frontend route `trap-forwarding-rules` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `trap-forwarding-rules` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-742d62c9a8a16136", "name": "Frontend route `poller-nodes` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `poller-nodes` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ff50524aa7aec0f3", "name": "Frontend route `device-polling-configs` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `device-polling-configs` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-33630a96740a4756", "name": "Frontend route `poller-performance` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `poller-performance` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8de047250438ffdf", "name": "Frontend route `alert-escalation-chains` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `alert-escalation-chains` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3f3cd094c9d908a6", "name": "Frontend route `maintenance-windows` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `maintenance-windows` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e3cc03616d57a170", "name": "Frontend route `alert-channels` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `alert-channels` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d8bb32d48f14f528", "name": "Frontend route `alert-suppression-rules` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `alert-suppression-rules` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fe32bc2069e2b1e2", "name": "Frontend route `olt-management` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `olt-management` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d601c15d5db8b7c5", "name": "Frontend route `onu-management` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `onu-management` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-28d2b8081c4d571b", "name": "Frontend route `pon-port-management` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `pon-port-management` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2bbc6856b57e184a", "name": "Frontend route `fiber-plant-management` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `fiber-plant-management` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6d1ee2d8a179d868", "name": "Frontend route `cpe-management` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `cpe-management` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0944ae2deafa5535", "name": "Frontend route `cpe-profiles` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `cpe-profiles` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-99f1de24454dac23", "name": "Frontend route `cpe-diagnostics` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `cpe-diagnostics` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b1fe3386ecefc084", "name": "Frontend route `cpe-inventory` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `cpe-inventory` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8d33e590bcf7d8d9", "name": "Frontend route `wireless` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `wireless` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1b438195e24743bd", "name": "Frontend route `wireless-metrics` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `wireless-metrics` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1a9b3d63be447c34", "name": "Frontend route `qos-bandwidth` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `qos-bandwidth` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a858a4a1d330e1dd", "name": "Frontend route `noc-dashboard` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `noc-dashboard` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-51f4a660eb5bf577", "name": "Frontend route `work-orders` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `work-orders` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ead800356df14931", "name": "Frontend route `topology-map` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `topology-map` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-74edf17d727203f7", "name": "Frontend route `inventory-management` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `inventory-management` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f83663bc4ee784c1", "name": "Frontend route `cfdi` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `cfdi` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7571d57feab36262", "name": "Frontend route `plans` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `plans` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9182a3f2537c27f1", "name": "Frontend route `quotes` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `quotes` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6c119043e9ce7ba8", "name": "Frontend route `credit-notes` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `credit-notes` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cd8290e1122ff48d", "name": "Frontend route `expenses` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `expenses` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3ea7375a596c54cd", "name": "Frontend route `promotions` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `promotions` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3aea542b1a5ce4b4", "name": "Frontend route `tax-rules` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `tax-rules` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3f5494a66ab336df", "name": "Frontend route `tax-rates` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `tax-rates` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-01f1605689f364ba", "name": "Frontend route `payment-gateways` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `payment-gateways` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c6c3170afb7cb189", "name": "Frontend route `payment-transactions` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `payment-transactions` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7c1e4b36415b8985", "name": "Frontend route `recurring-payment-profiles` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `recurring-payment-profiles` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0f8816657509afdd", "name": "Frontend route `payment-plans` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `payment-plans` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-234269a9201124c4", "name": "Frontend route `cash-reconciliation` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `cash-reconciliation` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7a2a6406e921b565", "name": "Frontend route `refund-requests` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `refund-requests` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-31b79ad236c16e68", "name": "Frontend route `billing-disputes` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `billing-disputes` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f9e6417efa21a26a", "name": "Frontend route `chargebacks` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `chargebacks` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7358f592e46a130c", "name": "Frontend route `billing-adjustments` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `billing-adjustments` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c31e7565e2b200a8", "name": "Frontend route `winback-campaigns` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `winback-campaigns` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-72014cbe5ef366ac", "name": "Frontend route `churn-analytics` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `churn-analytics` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f3ca0629bd3ddf0c", "name": "Frontend route `csd-certificates` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `csd-certificates` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-00118cb2b569d37b", "name": "Frontend route `pac-providers` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `pac-providers` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cc3e1ce19b23d745", "name": "Frontend route `sat-catalogs` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `sat-catalogs` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e1767252936589ae", "name": "Frontend route `regulatory-filings` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `regulatory-filings` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c9ee6d44b91a81f0", "name": "Frontend route `concession-titles` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `concession-titles` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-60295f305a646056", "name": "Frontend route `ift-statistical-reports` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `ift-statistical-reports` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0e05ee1f5b5ef54d", "name": "Frontend route `facturas-publicas` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `facturas-publicas` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-93203824d5f95cc8", "name": "Frontend route `reports` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `reports` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2a3c81ca47eb60bb", "name": "Frontend route `analytics-dashboard` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `analytics-dashboard` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5dc39904c41112f4", "name": "Frontend route `tax-reports` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `tax-reports` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a508661a1914a5b4", "name": "Frontend route `invoice-settings` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `invoice-settings` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-30162bd8e53c063f", "name": "Frontend route `late-fee-rules` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `late-fee-rules` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dc192d149a4dca18", "name": "Frontend route `payment-reminder-settings` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `payment-reminder-settings` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-afa282e0be44cdb7", "name": "Frontend route `profeco-complaints` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `profeco-complaints` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d0830c6a1b2623d8", "name": "Frontend route `regulatory-compliance` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `regulatory-compliance` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ad96af978bb7b1be", "name": "Frontend route `users` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `users` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-06999788457527a0", "name": "Frontend route `organizations` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `organizations` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-948805398b02ce68", "name": "Frontend route `dsar` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `dsar` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c16415592327eaae", "name": "Frontend route `dr-drill` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `dr-drill` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-39e473afd6c2704f", "name": "Frontend route `sla-definitions` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `sla-definitions` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-862ca3874c5e2d76", "name": "Frontend route `roles` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `roles` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-94f274006eb4149f", "name": "Frontend route `api-tokens` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `api-tokens` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d5734bfae5d7eb1c", "name": "Frontend route `webhooks` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `webhooks` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-abe154911f047e0b", "name": "Frontend route `audit-logs` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `audit-logs` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cc2196a6b93ec2ba", "name": "Frontend route `scheduled-tasks` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `scheduled-tasks` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f666933b76ae5671", "name": "Frontend route `jobs` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `jobs` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ad29b2f33f108eb7", "name": "Frontend route `queue-stats` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `queue-stats` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-17bacb17f6efb788", "name": "Frontend route `settings` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `settings` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f68a73772913b669", "name": "Frontend route `message-templates` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `message-templates` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f741c84e7cd68739", "name": "Frontend route `ai-assistant` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `ai-assistant` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0ee1868071ca4a3b", "name": "Frontend route `security-access-control` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `security-access-control` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1202f959848b1fde", "name": "Frontend route `automation` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `automation` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-70e3fd8c06c9e0d9", "name": "Frontend route `resellers` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `resellers` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8ecd9ea0c6f61d92", "name": "Frontend route `integrations` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `integrations` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2b13b4902f29e7e2", "name": "Frontend route `ai-support` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `ai-support` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-58771ad73dc92527", "name": "Frontend route `404` has no Link/navigate to it \u2014 frontend/src/App.tsx", "shortDescription": {"text": "Frontend route `404` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-86468e3b1694b932", "name": "Frontend route `/protected` has no Link/navigate to it \u2014 frontend/src/auth/__tests__/PrivateRoute.test.tsx", "shortDescription": {"text": "Frontend route `/protected` has no Link/navigate to it \u2014 frontend/src/auth/__tests__/PrivateRoute.test.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-29bb490f102ccf55", "name": "Frontend route `/clients/:id` has no Link/navigate to it \u2014 frontend/src/pages/__tests__/ClientDetail.test.tsx", "shortDescription": {"text": "Frontend route `/clients/:id` has no Link/navigate to it \u2014 frontend/src/pages/__tests__/ClientDetail.test.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1de71fc3a3f9627e", "name": "Frontend route `/tickets/:id` has no Link/navigate to it \u2014 frontend/src/pages/__tests__/aiSuggestedReply.test.tsx", "shortDescription": {"text": "Frontend route `/tickets/:id` has no Link/navigate to it \u2014 frontend/src/pages/__tests__/aiSuggestedReply.test.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c778fd256e3eab06", "name": "Dangling fetch: GET /api/v1/auth/me (frontend/src/auth/AuthContext.tsx:92)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/auth/me (frontend/src/auth/AuthContext.tsx:92)"}, "fullDescription": {"text": "`frontend/src/auth/AuthContext.tsx:92` calls `GET /api/v1/auth/me` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/auth/me`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-879629d82a568d7c", "name": "Dangling fetch: POST /api/v1/auth/refresh (frontend/src/auth/AuthContext.tsx:127)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/auth/refresh (frontend/src/auth/AuthContext.tsx:127)"}, "fullDescription": {"text": "`frontend/src/auth/AuthContext.tsx:127` calls `POST /api/v1/auth/refresh` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/auth/refresh`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-178bbb560983ed0b", "name": "Dangling fetch: POST /api/v1/auth/login (frontend/src/auth/AuthContext.tsx:157)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/auth/login (frontend/src/auth/AuthContext.tsx:157)"}, "fullDescription": {"text": "`frontend/src/auth/AuthContext.tsx:157` calls `POST /api/v1/auth/login` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/auth/login`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-888bfb1e37055079", "name": "Dangling fetch: POST /api/v1/auth/logout (frontend/src/auth/AuthContext.tsx:186)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/auth/logout (frontend/src/auth/AuthContext.tsx:186)"}, "fullDescription": {"text": "`frontend/src/auth/AuthContext.tsx:186` calls `POST /api/v1/auth/logout` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/auth/logout`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-01510fe8cd7cbfe1", "name": "Dangling fetch: POST /api/v1/auth/switch-organization (frontend/src/auth/AuthContext.tsx:210)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/auth/switch-organization (frontend/src/auth/AuthContext.tsx:210)"}, "fullDescription": {"text": "`frontend/src/auth/AuthContext.tsx:210` calls `POST /api/v1/auth/switch-organization` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/auth/switch-organization`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-67a8899157f1e46f", "name": "Dangling fetch: GET /api/v1/portal/auth/me (frontend/src/auth/PortalAuthContext.tsx:87)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/portal/auth/me (frontend/src/auth/PortalAuthContext.tsx:87)"}, "fullDescription": {"text": "`frontend/src/auth/PortalAuthContext.tsx:87` calls `GET /api/v1/portal/auth/me` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/portal/auth/me`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-fdd85c5cb442b840", "name": "Dangling fetch: POST /api/v1/portal/auth/refresh (frontend/src/auth/PortalAuthContext.tsx:118)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/portal/auth/refresh (frontend/src/auth/PortalAuthContext.tsx:118)"}, "fullDescription": {"text": "`frontend/src/auth/PortalAuthContext.tsx:118` calls `POST /api/v1/portal/auth/refresh` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/portal/auth/refresh`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-f10a61ebe05a018c", "name": "Dangling fetch: POST /api/v1/portal/auth/login (frontend/src/auth/PortalAuthContext.tsx:142)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/portal/auth/login (frontend/src/auth/PortalAuthContext.tsx:142)"}, "fullDescription": {"text": "`frontend/src/auth/PortalAuthContext.tsx:142` calls `POST /api/v1/portal/auth/login` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/portal/auth/login`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2b1eb1fb4839a9c7", "name": "Dangling fetch: POST /api/v1/portal/auth/logout (frontend/src/auth/PortalAuthContext.tsx:163)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/portal/auth/logout (frontend/src/auth/PortalAuthContext.tsx:163)"}, "fullDescription": {"text": "`frontend/src/auth/PortalAuthContext.tsx:163` calls `POST /api/v1/portal/auth/logout` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/portal/auth/logout`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-e619e5998f76eda6", "name": "Dangling fetch: POST /api/v1/auth/refresh (frontend/src/api/client.ts:44)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/auth/refresh (frontend/src/api/client.ts:44)"}, "fullDescription": {"text": "`frontend/src/api/client.ts:44` calls `POST /api/v1/auth/refresh` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/auth/refresh`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-94ecc4156c158c70", "name": "Dangling fetch: GET /api/v1${path} (frontend/src/pages/SecurityAccessControlPage.tsx:144)", "shortDescription": {"text": "Dangling fetch: GET /api/v1${path} (frontend/src/pages/SecurityAccessControlPage.tsx:144)"}, "fullDescription": {"text": "`frontend/src/pages/SecurityAccessControlPage.tsx:144` calls `GET /api/v1${path}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-594411eee7dba392", "name": "Dangling fetch: GET /api/v1${path} (frontend/src/pages/RegulatoryCompliancePage.tsx:99)", "shortDescription": {"text": "Dangling fetch: GET /api/v1${path} (frontend/src/pages/RegulatoryCompliancePage.tsx:99)"}, "fullDescription": {"text": "`frontend/src/pages/RegulatoryCompliancePage.tsx:99` calls `GET /api/v1${path}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-eb7f3895cb2ad802", "name": "Dangling fetch: POST /api/v1/work-orders (frontend/src/pages/WorkOrders.tsx:104)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/work-orders (frontend/src/pages/WorkOrders.tsx:104)"}, "fullDescription": {"text": "`frontend/src/pages/WorkOrders.tsx:104` calls `POST /api/v1/work-orders` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/work-orders`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-038084f6f6fa22bb", "name": "Dangling fetch: PATCH /api/v1/work-orders/${id} (frontend/src/pages/WorkOrders.tsx:115)", "shortDescription": {"text": "Dangling fetch: PATCH /api/v1/work-orders/${id} (frontend/src/pages/WorkOrders.tsx:115)"}, "fullDescription": {"text": "`frontend/src/pages/WorkOrders.tsx:115` calls `PATCH /api/v1/work-orders/${id}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/work-orders/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-10f72b35986a1ca8", "name": "Dangling fetch: POST /api/v1/work-orders/${workOrderId}/materials (frontend/src/pages/WorkOrders.tsx:132)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/work-orders/${workOrderId}/materials (frontend/src/pages/WorkOrders.tsx:132)"}, "fullDescription": {"text": "`frontend/src/pages/WorkOrders.tsx:132` calls `POST /api/v1/work-orders/${workOrderId}/materials` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/work-orders/<p>/materials`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4eaf165fa591d5d2", "name": "Dangling fetch: DELETE /api/v1/work-orders/${workOrderId}/materials/${materialId} (frontend/src/pages/WorkOrders.tsx:141", "shortDescription": {"text": "Dangling fetch: DELETE /api/v1/work-orders/${workOrderId}/materials/${materialId} (frontend/src/pages/WorkOrders.tsx:141)"}, "fullDescription": {"text": "`frontend/src/pages/WorkOrders.tsx:141` calls `DELETE /api/v1/work-orders/${workOrderId}/materials/${materialId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/work-orders/<p>/materials/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-16ef47de38b4d21a", "name": "Dangling fetch: GET /api${path} (frontend/src/pages/AutomationPage.tsx:122)", "shortDescription": {"text": "Dangling fetch: GET /api${path} (frontend/src/pages/AutomationPage.tsx:122)"}, "fullDescription": {"text": "`frontend/src/pages/AutomationPage.tsx:122` calls `GET /api${path}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/api/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6af2580018106d8c", "name": "Dangling fetch: POST /api/v1/billing-disputes/${disputeId}/evidence (frontend/src/pages/BillingDisputeList.tsx:280)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/billing-disputes/${disputeId}/evidence (frontend/src/pages/BillingDisputeList.tsx:280)"}, "fullDescription": {"text": "`frontend/src/pages/BillingDisputeList.tsx:280` calls `POST /api/v1/billing-disputes/${disputeId}/evidence` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/billing-disputes/<p>/evidence`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bfeca4cfcf0317cd", "name": "Dangling fetch: POST /api/import/devices/upload (frontend/src/pages/DeviceImport.tsx:54)", "shortDescription": {"text": "Dangling fetch: POST /api/import/devices/upload (frontend/src/pages/DeviceImport.tsx:54)"}, "fullDescription": {"text": "`frontend/src/pages/DeviceImport.tsx:54` calls `POST /api/import/devices/upload` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/import/devices/upload`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4ddc9aab0144a588", "name": "Dangling fetch: POST /api/v1/clients/${clientId}/documents (frontend/src/pages/ClientProfileTabs.tsx:372)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/clients/${clientId}/documents (frontend/src/pages/ClientProfileTabs.tsx:372)"}, "fullDescription": {"text": "`frontend/src/pages/ClientProfileTabs.tsx:372` calls `POST /api/v1/clients/${clientId}/documents` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/clients/<p>/documents`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-439434ab2e0defc7", "name": "Dangling fetch: GET /api/v1/clients/${clientId}/documents/${doc.id}/download (frontend/src/pages/ClientProfileTabs.tsx:3", "shortDescription": {"text": "Dangling fetch: GET /api/v1/clients/${clientId}/documents/${doc.id}/download (frontend/src/pages/ClientProfileTabs.tsx:396)"}, "fullDescription": {"text": "`frontend/src/pages/ClientProfileTabs.tsx:396` calls `GET /api/v1/clients/${clientId}/documents/${doc.id}/download` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/clients/<p>/documents/<p>/download`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2e9b95641f535dea", "name": "Dangling fetch: GET /api/v1${path} (frontend/src/pages/AnalyticsDashboard.tsx:65)", "shortDescription": {"text": "Dangling fetch: GET /api/v1${path} (frontend/src/pages/AnalyticsDashboard.tsx:65)"}, "fullDescription": {"text": "`frontend/src/pages/AnalyticsDashboard.tsx:65` calls `GET /api/v1${path}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-0d6877d7f72cb104", "name": "Dangling fetch: GET /api/v1/snmp-traps?${params} (frontend/src/pages/SnmpTraps.tsx:95)", "shortDescription": {"text": "Dangling fetch: GET /api/v1/snmp-traps?${params} (frontend/src/pages/SnmpTraps.tsx:95)"}, "fullDescription": {"text": "`frontend/src/pages/SnmpTraps.tsx:95` calls `GET /api/v1/snmp-traps?${params}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/snmp-traps`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-585bb45e19aac2d0", "name": "Dangling fetch: POST /api/v1/snmp-traps/${id}/acknowledge (frontend/src/pages/SnmpTraps.tsx:101)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/snmp-traps/${id}/acknowledge (frontend/src/pages/SnmpTraps.tsx:101)"}, "fullDescription": {"text": "`frontend/src/pages/SnmpTraps.tsx:101` calls `POST /api/v1/snmp-traps/${id}/acknowledge` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/snmp-traps/<p>/acknowledge`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-37577d65b02e405e", "name": "Dangling fetch: POST /api/v1/snmp-traps/${id}/clear (frontend/src/pages/SnmpTraps.tsx:109)", "shortDescription": {"text": "Dangling fetch: POST /api/v1/snmp-traps/${id}/clear (frontend/src/pages/SnmpTraps.tsx:109)"}, "fullDescription": {"text": "`frontend/src/pages/SnmpTraps.tsx:109` calls `POST /api/v1/snmp-traps/${id}/clear` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/snmp-traps/<p>/clear`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-711b2dc17f359c7c", "name": "Dangling fetch: GET /api${path} (frontend/src/pages/ResellerPage.tsx:109)", "shortDescription": {"text": "Dangling fetch: GET /api${path} (frontend/src/pages/ResellerPage.tsx:109)"}, "fullDescription": {"text": "`frontend/src/pages/ResellerPage.tsx:109` calls `GET /api${path}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/api/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d06eb29d05a5c2bf", "name": "Dangling fetch: GET /api/v1${path} (frontend/src/pages/AiSupportPage.tsx:84)", "shortDescription": {"text": "Dangling fetch: GET /api/v1${path} (frontend/src/pages/AiSupportPage.tsx:84)"}, "fullDescription": {"text": "`frontend/src/pages/AiSupportPage.tsx:84` calls `GET /api/v1${path}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2f2775f0d898542b", "name": "Dangling fetch: GET /api/v1${path} (frontend/src/pages/IntegrationsPage.tsx:71)", "shortDescription": {"text": "Dangling fetch: GET /api/v1${path} (frontend/src/pages/IntegrationsPage.tsx:71)"}, "fullDescription": {"text": "`frontend/src/pages/IntegrationsPage.tsx:71` calls `GET /api/v1${path}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-adc2b939714daa7a", "name": "Dangling fetch: GET /api/v1${path} (frontend/src/pages/Reports.tsx:137)", "shortDescription": {"text": "Dangling fetch: GET /api/v1${path} (frontend/src/pages/Reports.tsx:137)"}, "fullDescription": {"text": "`frontend/src/pages/Reports.tsx:137` calls `GET /api/v1${path}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/v1/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-76889df7c8e240c5", "name": "Unused endpoint: USE /api/", "shortDescription": {"text": "Unused endpoint: USE /api/"}, "fullDescription": {"text": "`src/app.js` declares `USE /api/` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6eb452fbfb454d20", "name": "Unused endpoint: USE /api/auth", "shortDescription": {"text": "Unused endpoint: USE /api/auth"}, "fullDescription": {"text": "`src/app.js` declares `USE /api/auth` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3bec7ccd0b909bea", "name": "Unused endpoint: USE /api/v1/auth", "shortDescription": {"text": "Unused endpoint: USE /api/v1/auth"}, "fullDescription": {"text": "`src/app.js` declares `USE /api/v1/auth` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ca9648b51fbb13b7", "name": "Unused endpoint: USE /api/export", "shortDescription": {"text": "Unused endpoint: USE /api/export"}, "fullDescription": {"text": "`src/app.js` declares `USE /api/export` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4f85960e834767d1", "name": "Unused endpoint: USE /api/v1/export", "shortDescription": {"text": "Unused endpoint: USE /api/v1/export"}, "fullDescription": {"text": "`src/app.js` declares `USE /api/v1/export` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-265cf3d9ef4ca37c", "name": "Unused endpoint: USE /api/pdf", "shortDescription": {"text": "Unused endpoint: USE /api/pdf"}, "fullDescription": {"text": "`src/app.js` declares `USE /api/pdf` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7f1c26d0c3c6106f", "name": "Unused endpoint: USE /api/v1/pdf", "shortDescription": {"text": "Unused endpoint: USE /api/v1/pdf"}, "fullDescription": {"text": "`src/app.js` declares `USE /api/v1/pdf` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ec00984b27c88c15", "name": "Unused endpoint: USE /api/events", "shortDescription": {"text": "Unused endpoint: USE /api/events"}, "fullDescription": {"text": "`src/app.js` declares `USE /api/events` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-65c415595e09f9a1", "name": "Unused endpoint: USE /api/v1/events", "shortDescription": {"text": "Unused endpoint: USE /api/v1/events"}, "fullDescription": {"text": "`src/app.js` declares `USE /api/v1/events` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b232e1cd5aecc5c1", "name": "Unused endpoint: USE /api/payment-webhooks", "shortDescription": {"text": "Unused endpoint: USE /api/payment-webhooks"}, "fullDescription": {"text": "`src/app.js` declares `USE /api/payment-webhooks` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5ea8274662741a20", "name": "Unused endpoint: USE /api/v1/payment-webhooks", "shortDescription": {"text": "Unused endpoint: USE /api/v1/payment-webhooks"}, "fullDescription": {"text": "`src/app.js` declares `USE /api/v1/payment-webhooks` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-768b1ba55e920b1e", "name": "Unused endpoint: USE /acs", "shortDescription": {"text": "Unused endpoint: USE /acs"}, "fullDescription": {"text": "`src/app.js` declares `USE /acs` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2f9271c3bf894235", "name": "Unused endpoint: POST /acs/cwmp", "shortDescription": {"text": "Unused endpoint: POST /acs/cwmp"}, "fullDescription": {"text": "`src/app.js` declares `POST /acs/cwmp` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b28d92215a503990", "name": "Unused endpoint: USE /auth", "shortDescription": {"text": "Unused endpoint: USE /auth"}, "fullDescription": {"text": "`src/app.js` declares `USE /auth` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-77f68a230eae1580", "name": "Unused endpoint: USE /organizations", "shortDescription": {"text": "Unused endpoint: USE /organizations"}, "fullDescription": {"text": "`src/app.js` declares `USE /organizations` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4e480cf1bc736555", "name": "Unused endpoint: USE /users", "shortDescription": {"text": "Unused endpoint: USE /users"}, "fullDescription": {"text": "`src/app.js` declares `USE /users` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f394c0f325ce8a93", "name": "Unused endpoint: USE /sites", "shortDescription": {"text": "Unused endpoint: USE /sites"}, "fullDescription": {"text": "`src/app.js` declares `USE /sites` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5fb2e8d0681e474e", "name": "Unused endpoint: USE /clients", "shortDescription": {"text": "Unused endpoint: USE /clients"}, "fullDescription": {"text": "`src/app.js` declares `USE /clients` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ee41babb24e2fcb8", "name": "Unused endpoint: USE /client-groups", "shortDescription": {"text": "Unused endpoint: USE /client-groups"}, "fullDescription": {"text": "`src/app.js` declares `USE /client-groups` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-92971b0c3e2623ca", "name": "Unused endpoint: USE /leads", "shortDescription": {"text": "Unused endpoint: USE /leads"}, "fullDescription": {"text": "`src/app.js` declares `USE /leads` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-842ffb0e7e5fd69f", "name": "Unused endpoint: USE /service-orders", "shortDescription": {"text": "Unused endpoint: USE /service-orders"}, "fullDescription": {"text": "`src/app.js` declares `USE /service-orders` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ac14e66516bf6914", "name": "Unused endpoint: USE /winback-campaigns", "shortDescription": {"text": "Unused endpoint: USE /winback-campaigns"}, "fullDescription": {"text": "`src/app.js` declares `USE /winback-campaigns` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-767a48112fe241a7", "name": "Unused endpoint: USE /lifecycle", "shortDescription": {"text": "Unused endpoint: USE /lifecycle"}, "fullDescription": {"text": "`src/app.js` declares `USE /lifecycle` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9de4213c527180ab", "name": "Unused endpoint: USE /plans", "shortDescription": {"text": "Unused endpoint: USE /plans"}, "fullDescription": {"text": "`src/app.js` declares `USE /plans` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-496d8c6272c279da", "name": "Unused endpoint: USE /contracts", "shortDescription": {"text": "Unused endpoint: USE /contracts"}, "fullDescription": {"text": "`src/app.js` declares `USE /contracts` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1b64856104b06f0f", "name": "Unused endpoint: USE /devices", "shortDescription": {"text": "Unused endpoint: USE /devices"}, "fullDescription": {"text": "`src/app.js` declares `USE /devices` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9fb0da20ad1140bb", "name": "Unused endpoint: USE /nas", "shortDescription": {"text": "Unused endpoint: USE /nas"}, "fullDescription": {"text": "`src/app.js` declares `USE /nas` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9d29ab2b710adb2f", "name": "Unused endpoint: USE /radius", "shortDescription": {"text": "Unused endpoint: USE /radius"}, "fullDescription": {"text": "`src/app.js` declares `USE /radius` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-04e49e46387e9672", "name": "Unused endpoint: USE /invoices", "shortDescription": {"text": "Unused endpoint: USE /invoices"}, "fullDescription": {"text": "`src/app.js` declares `USE /invoices` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-38ffe423a6b9b24c", "name": "Unused endpoint: USE /payments", "shortDescription": {"text": "Unused endpoint: USE /payments"}, "fullDescription": {"text": "`src/app.js` declares `USE /payments` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-007e406ac0ea7ed3", "name": "Unused endpoint: USE /credit-notes", "shortDescription": {"text": "Unused endpoint: USE /credit-notes"}, "fullDescription": {"text": "`src/app.js` declares `USE /credit-notes` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-858cb8cb10d83bfe", "name": "Unused endpoint: USE /tickets", "shortDescription": {"text": "Unused endpoint: USE /tickets"}, "fullDescription": {"text": "`src/app.js` declares `USE /tickets` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5cea1ad9dcf531a3", "name": "Unused endpoint: USE /interactions", "shortDescription": {"text": "Unused endpoint: USE /interactions"}, "fullDescription": {"text": "`src/app.js` declares `USE /interactions` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-40e4e8fbf217a86d", "name": "Unused endpoint: USE /follow-up-reminders", "shortDescription": {"text": "Unused endpoint: USE /follow-up-reminders"}, "fullDescription": {"text": "`src/app.js` declares `USE /follow-up-reminders` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3d0794bda838b313", "name": "Unused endpoint: USE /satisfaction-surveys", "shortDescription": {"text": "Unused endpoint: USE /satisfaction-surveys"}, "fullDescription": {"text": "`src/app.js` declares `USE /satisfaction-surveys` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8e45586f77b48fd4", "name": "Unused endpoint: USE /escalations", "shortDescription": {"text": "Unused endpoint: USE /escalations"}, "fullDescription": {"text": "`src/app.js` declares `USE /escalations` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-280d2202a0925ebd", "name": "Unused endpoint: USE /jobs", "shortDescription": {"text": "Unused endpoint: USE /jobs"}, "fullDescription": {"text": "`src/app.js` declares `USE /jobs` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-81c57393db7a58a7", "name": "Unused endpoint: USE /warehouses", "shortDescription": {"text": "Unused endpoint: USE /warehouses"}, "fullDescription": {"text": "`src/app.js` declares `USE /warehouses` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a4e2f6f962499444", "name": "Unused endpoint: USE /inventory", "shortDescription": {"text": "Unused endpoint: USE /inventory"}, "fullDescription": {"text": "`src/app.js` declares `USE /inventory` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d5eddf999e28cd7d", "name": "Unused endpoint: USE /quotes", "shortDescription": {"text": "Unused endpoint: USE /quotes"}, "fullDescription": {"text": "`src/app.js` declares `USE /quotes` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f29f9bdfc54146dc", "name": "Unused endpoint: USE /expenses", "shortDescription": {"text": "Unused endpoint: USE /expenses"}, "fullDescription": {"text": "`src/app.js` declares `USE /expenses` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-75fbe20d15dad2bb", "name": "Unused endpoint: USE /outages", "shortDescription": {"text": "Unused endpoint: USE /outages"}, "fullDescription": {"text": "`src/app.js` declares `USE /outages` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e226018629ced73e", "name": "Unused endpoint: USE /noc", "shortDescription": {"text": "Unused endpoint: USE /noc"}, "fullDescription": {"text": "`src/app.js` declares `USE /noc` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4ce40f9d5c4d6e99", "name": "Unused endpoint: USE /work-orders", "shortDescription": {"text": "Unused endpoint: USE /work-orders"}, "fullDescription": {"text": "`src/app.js` declares `USE /work-orders` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-df236a550aed372a", "name": "Unused endpoint: USE /technician-tracking", "shortDescription": {"text": "Unused endpoint: USE /technician-tracking"}, "fullDescription": {"text": "`src/app.js` declares `USE /technician-tracking` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-10311aa328cba827", "name": "Unused endpoint: USE /topology", "shortDescription": {"text": "Unused endpoint: USE /topology"}, "fullDescription": {"text": "`src/app.js` declares `USE /topology` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-404802ade7f487c5", "name": "Unused endpoint: USE /vendors", "shortDescription": {"text": "Unused endpoint: USE /vendors"}, "fullDescription": {"text": "`src/app.js` declares `USE /vendors` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a2620a97633c8c0a", "name": "Unused endpoint: USE /purchase-orders", "shortDescription": {"text": "Unused endpoint: USE /purchase-orders"}, "fullDescription": {"text": "`src/app.js` declares `USE /purchase-orders` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3b59435b3211a9df", "name": "Unused endpoint: USE /assets", "shortDescription": {"text": "Unused endpoint: USE /assets"}, "fullDescription": {"text": "`src/app.js` declares `USE /assets` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2b6127050ca57386", "name": "Unused endpoint: USE /rma-requests", "shortDescription": {"text": "Unused endpoint: USE /rma-requests"}, "fullDescription": {"text": "`src/app.js` declares `USE /rma-requests` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/22425"}, "properties": {"repository": "vothalvino/fireisp5.0", "repoUrl": "https://github.com/vothalvino/fireisp5.0", "branch": "main"}, "results": [{"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467510, "scanner": "foundry_dataset", "fingerprint": "39bcc7413b4faa6b81ad9bacbdb2b8345303c33d81045d2dd199813d2a6d02a0", "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": {"security_auth_secret": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#229", "issue_number": "229", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-d7f6395135f34719", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#229\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#229\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#229\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 229\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-398d7bc32a691859", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467509, "scanner": "foundry_dataset", "fingerprint": "42038e829403dfb56d372946370dfa931cd238c51b180c21c55fb2a498a4f0e7", "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": {"deployment_env_gap": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#228", "issue_number": "228", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-dd79911bdab5d604", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#228\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#228\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#228\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 228\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'deployment_env_gap': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-22a0f41e739beb18", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467508, "scanner": "foundry_dataset", "fingerprint": "565ae1cebf8f0150034a9c3acbae7c221aa41c557e1c778d01bcd3235a853b93", "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": {"test_ci_gap": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#223", "issue_number": "223", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-056d0d5d1cce1b4e", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#223\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#223\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#223\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 223\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-5dabe6039ba5ae56", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467507, "scanner": "foundry_dataset", "fingerprint": "eb72493e8cfb7ed59a0045e2eb4c12bdcfacb8bd36563a4aa21ec5a071966700", "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": {"human_feedback_general": 1, "unlinked_human_feedback": 1, "thread_needs_classification": 2, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#217", "issue_number": "217", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-4436ca1485b97b44", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#217\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#217\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#217\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 217\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'thread_needs_classification': 2, 'issue_or_pull_request_thread': 1, 'human_feedback_general': 1, 'unlinked_human_feedback': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-c6e45134945d3655", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467506, "scanner": "foundry_dataset", "fingerprint": "245d070c247d4793ff594b08cb97d53dba61397cd13b5a928c35a4ece56e3dab", "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": {"mock_placeholder": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#216", "issue_number": "216", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-d70207fc5c39d263", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#216\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#216\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#216\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 216\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-e0274d283ee75365", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467505, "scanner": "foundry_dataset", "fingerprint": "3182961f439278fab42ab5180b23c7a06e02323370167f1353553cfe8ade281b", "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": {"human_feedback_general": 1, "unlinked_human_feedback": 1, "thread_needs_classification": 2, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#213", "issue_number": "213", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-fc544d494f78e7bb", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#213\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#213\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#213\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 213\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'thread_needs_classification': 2, 'issue_or_pull_request_thread': 1, 'human_feedback_general': 1, 'unlinked_human_feedback': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-24d73a5284a119c0", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467504, "scanner": "foundry_dataset", "fingerprint": "c00d932ca58498fa6231840ef0488f9e44b44fad8b921e12835790345b9077dd", "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": {"human_feedback_general": 1, "unlinked_human_feedback": 1, "thread_needs_classification": 2, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#212", "issue_number": "212", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-2748a70f1cc618c8", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#212\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#212\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#212\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 212\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'thread_needs_classification': 2, 'issue_or_pull_request_thread': 1, 'human_feedback_general': 1, 'unlinked_human_feedback': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-99cc28c6edc71297", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467503, "scanner": "foundry_dataset", "fingerprint": "6306c6f291c0a35acc36fe91c23cc802361d66cb349651d6eef69c3b8edaa977", "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": {"test_ci_gap": 17, "runtime_failure": 2, "api_integration_gap": 1, "security_auth_secret": 2, "agent_instruction_gap": 2, "verification_or_tests": 14, "human_feedback_general": 7, "data_schema_persistence": 1, "unlinked_human_feedback": 6, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 10, "ambiguous_needs_more_evidence": 24, "comment_has_related_commit_context": 16, "human_reported_issue_no_linked_fix": 10, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 20, "ambiguous_needs_more_evidence": 48}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 241, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 32, "thread_has_comment": 32, "chain_has_link_quality": 34, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 32, "comment_chain_links_commit": 75, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 32}, "node_count": 116, "node_types": {"repo": 1, "commit": 14, "thread": 1, "comment": 32, "fix_outcome": 1, "issue_chain": 1, "link_quality": 34, "comment_chain": 32}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#208", "issue_number": "208", "quality_tiers": {"unresolved": 16, "weak_supervision": 18}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-dc02cc050226aca5", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#208\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#208\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#208\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 208\nGraph consistency label: weak_supervision_needs_review\nNodes: 116\nEdges: 241\nNode types: {'link_quality': 34, 'comment': 32, 'comment_chain': 32, 'commit': 14, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 75, 'chain_has_link_quality': 34, 'thread_has_comment': 32, 'thread_has_comment_chain': 32, 'comment_has_chain': 32, 'issue_chain_has_comment_chain': 32, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 24, 'test_ci_gap': 17, 'comment_has_related_commit_context': 16, 'verification_or_tests': 14, 'human_reported_issue_no_linked_fix': 10, 'not_resolved_or_not_observed': 10, 'human_feedback_general': 7, 'unlinked_human_feedback': 6, 'agent_instruction_gap': 2, 'security_auth_secret': 2, 'runtime_failure': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'api_integration_gap': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 48, 'not_resolved_or_not_observed': 20}\nQuality tiers: {'weak_supervision': 18, 'unresolved': 16}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-224c0a7894bd68a7", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467502, "scanner": "foundry_dataset", "fingerprint": "2690e3cf64db12b0eea40f8dbdbcccffdbf4e08cbfb1fdc02f032f6e1dc5e450", "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": {"api_integration_gap": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#206", "issue_number": "206", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-5897ca641f3a7be4", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#206\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#206\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#206\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 206\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'api_integration_gap': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-9720e3dc9ba02458", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467501, "scanner": "foundry_dataset", "fingerprint": "b7d8f96fd0826e117aeba7457ef8fb6d69343df2ea19a18fd3ffa2b8e446fb97", "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": {"security_auth_secret": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#203", "issue_number": "203", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-a6faa894ab0d8557", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#203\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#203\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#203\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 203\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-ba143b517e7157f0", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467500, "scanner": "foundry_dataset", "fingerprint": "52c7719b01ff3e4e13b103a3fb36c4779842c2d21d42eb1b26322f224fe94497", "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": {"mock_placeholder": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#202", "issue_number": "202", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-981dd12c5968daa3", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#202\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#202\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#202\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 202\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-58209d4741cf669b", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467499, "scanner": "foundry_dataset", "fingerprint": "4cfc5fbe1b9c855dea7d62abd3c5a15b43d21392fb3f3ee54cec197dfa6ded78", "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": {"mock_placeholder": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#197", "issue_number": "197", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-efb9229f43cb682f", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#197\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#197\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#197\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 197\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-f27197e71ca58a4b", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467498, "scanner": "foundry_dataset", "fingerprint": "504cb9863e68f3769b7194282e801fb8d6c3a9b6dac719ae2c216f3b2e25fc11", "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": {"data_schema": 5, "test_ci_gap": 3, "mock_placeholder": 2, "build_install_failure": 2, "verification_or_tests": 7, "claimed_resolved_unverified": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 2, "ambiguous_needs_more_evidence": 6, "comment_has_related_commit_context": 4, "human_reported_issue_no_linked_fix": 2, "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": 2, "not_resolved_or_not_observed": 4, "ambiguous_needs_more_evidence": 12}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 58, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 7, "thread_has_comment": 7, "chain_has_link_quality": 9, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 7, "comment_chain_links_commit": 17, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 7}, "node_count": 39, "node_types": {"repo": 1, "commit": 12, "thread": 1, "comment": 7, "fix_outcome": 1, "issue_chain": 1, "link_quality": 9, "comment_chain": 7}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#192", "issue_number": "192", "quality_tiers": {"unresolved": 2, "weak_supervision": 7}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-9c03f945d665997c", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#192\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#192\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#192\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 192\nGraph consistency label: weak_supervision_needs_review\nNodes: 39\nEdges: 58\nNode types: {'commit': 12, 'link_quality': 9, 'comment': 7, 'comment_chain': 7, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 17, 'chain_has_link_quality': 9, 'thread_has_comment': 7, 'thread_has_comment_chain': 7, 'comment_has_chain': 7, 'issue_chain_has_comment_chain': 7, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 7, 'ambiguous_needs_more_evidence': 6, 'data_schema': 5, 'comment_has_related_commit_context': 4, 'test_ci_gap': 3, 'mock_placeholder': 2, 'build_install_failure': 2, 'human_reported_issue_no_linked_fix': 2, 'not_resolved_or_not_observed': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'human_reported_issue_then_fix_attempt': 1, 'claimed_resolved_unverified': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 12, 'not_resolved_or_not_observed': 4, 'claimed_resolved_unverified': 2}\nQuality tiers: {'weak_supervision': 7, 'unresolved': 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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-c3d28f65fa29e775", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467497, "scanner": "foundry_dataset", "fingerprint": "a3f667214b0b0d3fb6ed9156085582d7cb0d0fcd95abf687278d5f0cedc95b47", "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": {"mock_placeholder": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#191", "issue_number": "191", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-f265377a8fc598ad", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#191\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#191\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#191\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 191\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-76f4cb2f1b41f305", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467496, "scanner": "foundry_dataset", "fingerprint": "82061066b43f0743c0350b85889e46cbc0dba529057c6cb0518acf8e08086be5", "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": {"security_auth_secret": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#190", "issue_number": "190", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-4d01e433f4bc9873", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#190\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#190\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#190\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 190\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-2a91e67ba029ce8c", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467495, "scanner": "foundry_dataset", "fingerprint": "47984aca9f29aa05e41416fc463ae81ebb1b6f096005fa51ad26252b23668070", "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": {"test_ci_gap": 5, "deployment_env_gap": 1, "agent_instruction_gap": 4, "verification_or_tests": 9, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 7, "ambiguous_needs_more_evidence": 5, "comment_has_related_commit_context": 5, "human_reported_issue_no_linked_fix": 5, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 14, "ambiguous_needs_more_evidence": 10}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 76, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 10, "thread_has_comment": 10, "chain_has_link_quality": 12, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 10, "comment_chain_links_commit": 20, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 10}, "node_count": 45, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 10, "fix_outcome": 1, "issue_chain": 1, "link_quality": 12, "comment_chain": 10}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#189", "issue_number": "189", "quality_tiers": {"unresolved": 5, "weak_supervision": 7}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-887d40d18720e445", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#189\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#189\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#189\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 189\nGraph consistency label: weak_supervision_needs_review\nNodes: 45\nEdges: 76\nNode types: {'link_quality': 12, 'comment': 10, 'comment_chain': 10, 'commit': 9, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 20, 'chain_has_link_quality': 12, 'thread_has_comment': 10, 'thread_has_comment_chain': 10, 'comment_has_chain': 10, 'issue_chain_has_comment_chain': 10, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 9, 'not_resolved_or_not_observed': 7, 'test_ci_gap': 5, 'human_reported_issue_no_linked_fix': 5, 'comment_has_related_commit_context': 5, 'ambiguous_needs_more_evidence': 5, 'agent_instruction_gap': 4, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'deployment_env_gap': 1}\nOutcomes: {'not_resolved_or_not_observed': 14, 'ambiguous_needs_more_evidence': 10}\nQuality tiers: {'weak_supervision': 7, 'unresolved': 5}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-205c7dec1b1e4225", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467494, "scanner": "foundry_dataset", "fingerprint": "2bf6aa53732bdd64d3a3c543c58ec7fd892dc28ff54783214522b0802b79188e", "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": {"human_feedback_general": 1, "unlinked_human_feedback": 1, "thread_needs_classification": 2, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#186", "issue_number": "186", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-5eee328bc96202b0", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#186\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#186\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#186\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 186\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'thread_needs_classification': 2, 'issue_or_pull_request_thread': 1, 'human_feedback_general': 1, 'unlinked_human_feedback': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-a51ffd8939d516ae", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467493, "scanner": "foundry_dataset", "fingerprint": "1638727389885fec3d4b41d8fe95f9fe77edae91dc28a7c22f51f7727b229207", "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": {"test_ci_gap": 1, "security_auth_secret": 1, "agent_instruction_gap": 1, "verification_or_tests": 5, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 4, "ambiguous_needs_more_evidence": 1, "comment_has_related_commit_context": 1, "human_reported_issue_no_linked_fix": 2, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 8, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 3, "thread_has_comment": 3, "chain_has_link_quality": 5, "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": 20, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 3}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#184", "issue_number": "184", "quality_tiers": {"unresolved": 2, "weak_supervision": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-fbc071e53fd8245d", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#184\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#184\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#184\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 184\nGraph consistency label: weak_supervision_needs_review\nNodes: 20\nEdges: 26\nNode types: {'commit': 5, 'link_quality': 5, 'comment': 3, 'comment_chain': 3, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 5, 'thread_has_comment': 3, 'thread_has_comment_chain': 3, 'comment_has_chain': 3, 'issue_chain_has_comment_chain': 3, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 5, 'not_resolved_or_not_observed': 4, 'human_reported_issue_no_linked_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'agent_instruction_gap': 1, 'security_auth_secret': 1, 'comment_has_related_commit_context': 1, 'ambiguous_needs_more_evidence': 1}\nOutcomes: {'not_resolved_or_not_observed': 8, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'weak_supervision': 3, 'unresolved': 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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-e1c635cab9fabf51", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467492, "scanner": "foundry_dataset", "fingerprint": "990964888a83bd929ad24e2df6b87ce0a9e4b1868851b23c1d0f85d5d7bc1547", "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": {"test_ci_gap": 2, "build_install_failure": 1, "verification_or_tests": 7, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 1, "ambiguous_needs_more_evidence": 4, "comment_has_related_commit_context": 2, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 2, "ambiguous_needs_more_evidence": 8}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 31, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 3, "thread_has_comment": 3, "chain_has_link_quality": 5, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 3, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 3}, "node_count": 22, "node_types": {"repo": 1, "commit": 7, "thread": 1, "comment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 3}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#183", "issue_number": "183", "quality_tiers": {"unresolved": 1, "weak_supervision": 4}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-28e3e22a8f379977", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#183\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#183\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#183\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 183\nGraph consistency label: weak_supervision_needs_review\nNodes: 22\nEdges: 31\nNode types: {'commit': 7, 'link_quality': 5, 'comment': 3, 'comment_chain': 3, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, 'chain_has_link_quality': 5, 'thread_has_comment': 3, 'thread_has_comment_chain': 3, 'comment_has_chain': 3, 'issue_chain_has_comment_chain': 3, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 7, 'ambiguous_needs_more_evidence': 4, 'test_ci_gap': 2, 'comment_has_related_commit_context': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'build_install_failure': 1, 'human_reported_issue_no_linked_fix': 1, 'not_resolved_or_not_observed': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 8, 'not_resolved_or_not_observed': 2}\nQuality tiers: {'weak_supervision': 4, '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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-65f4ff4accb0c03b", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467491, "scanner": "foundry_dataset", "fingerprint": "bd97235c83bec26c44b5d2c2429029753ceaafdff45db99a0a091088757eacec", "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": {"test_ci_gap": 4, "verification_or_tests": 9, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 4, "ambiguous_needs_more_evidence": 2, "comment_has_related_commit_context": 2, "human_reported_issue_no_linked_fix": 2, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 8, "ambiguous_needs_more_evidence": 4}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 36, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 4, "thread_has_comment": 4, "chain_has_link_quality": 6, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 4, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 4}, "node_count": 27, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 4, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 4}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#182", "issue_number": "182", "quality_tiers": {"unresolved": 2, "weak_supervision": 4}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-02f88d182377ed99", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#182\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#182\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#182\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 182\nGraph consistency label: weak_supervision_needs_review\nNodes: 27\nEdges: 36\nNode types: {'commit': 9, 'link_quality': 6, 'comment': 4, 'comment_chain': 4, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, 'chain_has_link_quality': 6, 'thread_has_comment': 4, 'thread_has_comment_chain': 4, 'comment_has_chain': 4, 'issue_chain_has_comment_chain': 4, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 9, 'test_ci_gap': 4, 'not_resolved_or_not_observed': 4, 'human_reported_issue_no_linked_fix': 2, 'comment_has_related_commit_context': 2, 'ambiguous_needs_more_evidence': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1}\nOutcomes: {'not_resolved_or_not_observed': 8, 'ambiguous_needs_more_evidence': 4}\nQuality tiers: {'weak_supervision': 4, 'unresolved': 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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-b166926114c797a7", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467490, "scanner": "foundry_dataset", "fingerprint": "804004b1f05ff87062b48bf6d57e381ce5508ed6312046a58915bc85f8b6173c", "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": {"security_auth_secret": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#181", "issue_number": "181", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-de85897bd1688bf8", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#181\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#181\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#181\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 181\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-e2b05eed39642013", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467489, "scanner": "foundry_dataset", "fingerprint": "9e21a60c78dd7c04e759447933b3637e7f7758ddee14282f1dca5ee5bf2e28be", "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": {"security_auth_secret": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#178", "issue_number": "178", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-6cbc7d16ae619d05", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#178\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#178\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#178\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 178\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-887b8efff8894d81", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467488, "scanner": "foundry_dataset", "fingerprint": "aacb14cb67498468e4d84a20d19ffc797a2bf4ff91b1a49b2abbcbc532e222e0", "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": {"security_auth_secret": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#175", "issue_number": "175", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-3546e68f527c083e", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#175\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#175\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#175\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 175\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-6b0162f509830579", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467487, "scanner": "foundry_dataset", "fingerprint": "3b6ca5f2302808dda42df057f7ee4b3f39a929f50a8198f08a344ffd948a0fd1", "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": {"test_ci_gap": 5, "security_auth_secret": 1, "verification_or_tests": 10, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 6, "comment_has_related_commit_context": 4, "human_reported_issue_no_linked_fix": 3, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6, "ambiguous_needs_more_evidence": 12}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 56, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 7, "thread_has_comment": 7, "chain_has_link_quality": 9, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 7, "comment_chain_links_commit": 15, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 7}, "node_count": 37, "node_types": {"repo": 1, "commit": 10, "thread": 1, "comment": 7, "fix_outcome": 1, "issue_chain": 1, "link_quality": 9, "comment_chain": 7}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#174", "issue_number": "174", "quality_tiers": {"unresolved": 3, "weak_supervision": 6}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-02f1d3275d04dbef", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#174\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#174\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#174\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 174\nGraph consistency label: weak_supervision_needs_review\nNodes: 37\nEdges: 56\nNode types: {'commit': 10, 'link_quality': 9, 'comment': 7, 'comment_chain': 7, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 15, 'chain_has_link_quality': 9, 'thread_has_comment': 7, 'thread_has_comment_chain': 7, 'comment_has_chain': 7, 'issue_chain_has_comment_chain': 7, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 10, 'ambiguous_needs_more_evidence': 6, 'test_ci_gap': 5, 'comment_has_related_commit_context': 4, 'human_reported_issue_no_linked_fix': 3, 'not_resolved_or_not_observed': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'security_auth_secret': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 12, 'not_resolved_or_not_observed': 6}\nQuality tiers: {'weak_supervision': 6, 'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-5de11eb33c1d9b99", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467486, "scanner": "foundry_dataset", "fingerprint": "d80f2b690d353f68a1cb2c1f41633a788f5d8bcfc4a0b96fb4ab4ff0f72eb60e", "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": {"mock_placeholder": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#171", "issue_number": "171", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-b69dd145150ec031", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#171\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#171\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#171\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 171\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-87e39e1421671f73", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467485, "scanner": "foundry_dataset", "fingerprint": "d7814860e980c0e390a2301a05ab33679255c123e972bac5de59605e346b03bf", "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": {"agent_instruction_gap": 1, "verification_or_tests": 1, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 1, "comment_has_related_commit_context": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 17, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 13, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#17", "issue_number": "17", "quality_tiers": {"unresolved": 1, "weak_supervision": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-dcb2624d1449c8e0", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#17\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#17\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#17\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 17\nGraph consistency label: weak_supervision_needs_review\nNodes: 13\nEdges: 17\nNode types: {'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'agent_instruction_gap': 1, 'data_schema_persistence': 1, 'human_reported_issue_no_linked_fix': 1, 'comment_has_related_commit_context': 1, 'verification_or_tests': 1, 'ambiguous_needs_more_evidence': 1}\nOutcomes: {'not_resolved_or_not_observed': 6, 'ambiguous_needs_more_evidence': 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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-14c15f890799a762", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467484, "scanner": "foundry_dataset", "fingerprint": "e51c04f8374a6cd90c1ffd34632873165ecbd3bf4a8402d935fdc56e29dca478", "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": {"mock_placeholder": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#169", "issue_number": "169", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-671d0430c0810e46", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#169\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#169\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#169\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 169\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-e60e607ecb9ae422", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467483, "scanner": "foundry_dataset", "fingerprint": "a225f15cb7ad4ee76616b93222410fbac589033144ea021bd5cbfa529ccebe06", "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": {"security_auth_secret": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#166", "issue_number": "166", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-918cba9887148edf", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#166\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#166\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#166\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 166\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-3432582f753e6744", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467482, "scanner": "foundry_dataset", "fingerprint": "d32e798b28f9742277dfc127518ae1910dbc8b8041b02469247923f5ae553d7c", "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": {"security_auth_secret": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#161", "issue_number": "161", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-791f3128caf30133", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#161\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#161\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#161\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 161\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-0639662ae4c14b9f", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467481, "scanner": "foundry_dataset", "fingerprint": "045412713993582a9b34e5a101749e5b56172812ff2095e1d69af32ab8839aa2", "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": {"verification_or_tests": 1, "human_feedback_general": 3, "unlinked_human_feedback": 2, "thread_needs_classification": 2, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 5, "comment_has_related_commit_context": 1}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"ambiguous_needs_more_evidence": 10}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 22, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 3, "thread_has_comment": 3, "chain_has_link_quality": 5, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 3, "comment_chain_links_commit": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 3}, "node_count": 16, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 3}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#15", "issue_number": "15", "quality_tiers": {"unresolved": 2, "weak_supervision": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-7733c498a42051bb", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#15\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#15\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#15\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 15\nGraph consistency label: weak_supervision_needs_review\nNodes: 16\nEdges: 22\nNode types: {'link_quality': 5, 'comment': 3, 'comment_chain': 3, 'thread': 1, 'repo': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 5, 'thread_has_comment': 3, 'thread_has_comment_chain': 3, 'comment_has_chain': 3, 'issue_chain_has_comment_chain': 3, 'repo_has_thread': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 5, 'human_feedback_general': 3, 'unlinked_human_feedback': 2, 'thread_needs_classification': 2, 'issue_or_pull_request_thread': 1, 'comment_has_related_commit_context': 1, 'verification_or_tests': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 10}\nQuality tiers: {'weak_supervision': 3, 'unresolved': 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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-ba458f6943c92824", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467480, "scanner": "foundry_dataset", "fingerprint": "82af819c89b59660716ec36dd8760b217c97e733af4237361019ca73d296c385", "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": {"security_auth_secret": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#143", "issue_number": "143", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-9e3e41d26e6f5c08", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#143\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#143\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#143\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 143\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-4fc3c869c26ade8c", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467479, "scanner": "foundry_dataset", "fingerprint": "8d4123295a57b3a0cc479748fba61ef086a2f5ee2d5c21ed6529aee11b9e3007", "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": {"mock_placeholder": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#140", "issue_number": "140", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-aed6d408ba53e67a", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#140\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#140\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#140\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 140\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-a31451305fed6ebc", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467478, "scanner": "foundry_dataset", "fingerprint": "6b15c0f453aa1ed2d1bfb14bb0d9662166e2691990475d0e501ca769be91b9f2", "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": {"security_auth_secret": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#136", "issue_number": "136", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-f5579c75457e668d", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#136\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#136\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#136\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 136\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-cd66ca30f2f7ea70", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_unresolved_feedback", "level": "warning", "message": {"text": "Foundry mined unresolved feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 467477, "scanner": "foundry_dataset", "fingerprint": "d9b08af248a68db4e9ab74fdcab7e2a116b58a47d0237609f905b98fda977362", "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": {"security_auth_secret": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "unlinked_feedback_needs_evidence", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "unresolved_feedback", "severity": "medium", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#134", "issue_number": "134", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "source_motif_id": "graph-pattern-motif-thread-b3e82bdf520fb0ac", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#134\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#134\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#134\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 134\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-e703e875a10cca59", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/unresolved_feedback", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439854, "scanner": "foundry_dataset", "fingerprint": "38f29a6577fbad9e3fc713e0b851ba759a7af67470b9f1dd525310ad1efa3c1f", "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": "vothalvino/fireisp5.0#282", "human_labels": ["api_or_backend", "schema_or_data", "security_auth_secret", "test_or_ci", "ui_or_frontend"], "issue_number": "282", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.82, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-98676df45b9fa9ed", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 11, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 3, "api_or_backend": 6, "schema_or_data": 1, "ui_or_frontend": 1}, "linked_commit_count": 1, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 1, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#282\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#282\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 1\nLinked CI labels: {'ci_failure_signal': 1}\nChanged file count: 11\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'api_or_backend': 6, 'ui_or_frontend': 1, 'test_or_ci': 3, 'schema_or_data': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-17f2fa40f6f2a911\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/282\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/282\\nTitle: feat(nas): one-click \\\"Seed\\\" to bootstrap a MikroTik as a FireISP BNG\\nBody:\\n## What\\n\\nAdds a **Seed** button beside **Test** in *NAS Devices* that, in one click, configures a MikroTik to operate as a FireISP-managed BNG/NAS over the RouterOS API. **Idempotent and non-destructive** \u2014 every managed object carries a `fireisp-*` comment tag, so re-runs `set` in place and never duplicate or delete.\\n\\nCloses the ask: *\\\"configure the whole radius plus all the other things like queue tree etc.\\\"*\\n\\n### What it pushes\\n- **RADIUS + PPP AAA + CoA** (always): `/radius` client \u2192 FireISP's embedded RADIUS (`service=ppp`, the NAS's own shared secret, auth/acct ports) \u00b7 `/radius incoming` CoA/Disconnect listener \u00b7 `/ppp aaa` (`use-radius`, `accounting`, `interim-update`).\\n- **Global queue-tree skeleton** (optional): parent HTB `fireisp-total-download/upload` nodes from a total-bandwidth input.\\n- **Suspended-user walled garden** (optional): a forward-reject firewall hook keyed on a `fireisp-suspended` address-list,\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-4e4cba117602909e\",\n    \"filename\": \"docs/openapi.json\",\n    \"label\": \"api_or_backend\",\n    \"status\": \"modified\",\n    \"additions\": 106,\n    \"deletions\": 0,\n    \"changes\": 106,\n    \"blob_url\": \"https://github.com/vothalvino/fireisp5.0/blob/cdd5c1b3091751ef7fa91ef27d46a15164d1cbb0/docs%2Fopenapi.json\"\n  },\n  {\n    \"id\": \"github-pr-file-file-be3ba21b1130dc8e\",\n    \"filename\": \"docs/radius-server.md\",\n    \"label\": \"api_or_backend\",\n    \"status\": \"modified\",\n    \"additions\": 7,\n    \"deletions\": 1,\n    \"changes\": 8,\n    \"blob_url\":\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-2f6081598e3114ac", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439853, "scanner": "foundry_dataset", "fingerprint": "6855ec0ac0387a14bab0fbb8708d728d4e87079cac95ecad837b6fee614f7500", "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": "vothalvino/fireisp5.0#281", "human_labels": ["api_or_backend", "runtime_failure", "test_or_ci", "ui_or_frontend"], "issue_number": "281", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-ede4ce569138a0d2", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 16, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 2, "api_or_backend": 3, "ui_or_frontend": 11}, "linked_commit_count": 5, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#281\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#281\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 16\nLabels: {'runtime_failure': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'ui_or_frontend': 11, 'test_or_ci': 2, 'api_or_backend': 3}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-0a7acf3d7dd90028\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"runtime_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/281\",\n    \"text\": \"GitHub feedback: runtime_failure\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/281\\nTitle: feat(web): client search, fix client-detail crash, account groups, contract PPPoE view, client-aware follow-ups\\nBody:\\nImplements the 5 client/contract management items requested. **Backend is query-only \u2014 no migration.**\\n\\n### 1. Search clients by ID & phone\\n`GET /clients` gains a server-side `search` (partial `LIKE` on name/email/phone, **exact** match on numeric id) + a `client_group_id` filter. `ClientList` now sends it (replacing brittle client-side filtering); the search box advertises phone + client ID. Group name is resolved via a `LEFT JOIN client_groups` so it isn't capped by a client-side list.\\n\\n### 2. \ud83d\udc1b FIX: clicking a client did nothing\\nRoot cause (reproduced on the live demo): the GraphQL `LedgerEntry` resolver read **non-existent columns** \u2014 `balance_after` (real column `running_balance`) and `notes` (real column `description`). A non-null field returning `undefined` errored the whole `client` query \u2192 `data.client: null` \u2192 ClientDetail rendered \\\"Client not found.\\\" Fixed the two mapping\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-8d06078f85ef7aa1\",\n    \"filename\": \"frontend/src/components/ClientPicker.tsx\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"added\",\n    \"additions\": 250,\n    \"deletions\": 0,\n    \"changes\": 250,\n    \"blob_url\": \"https://github.com/vothalvino/fireisp5.0/blob/abbc1f151f566efb9c6a4a8a44a50b26a3756282/frontend%2Fsrc%2Fcomponents%2FClientPicker.tsx\"\n  },\n  {\n    \"id\": \"github-pr-file-file-f51719352e3f3c66\",\n    \"filename\": \"frontend/src/i18n/locales/en.json\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 27,\n    \"deletions\": 2,\n    \"changes\": 29,\n    \"blob_ur\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-1498155a6c9939a2", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439852, "scanner": "foundry_dataset", "fingerprint": "f71b8f80e40340f86a112780b1963951029c7427cfc722a6c3f6fd24965625c0", "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": "vothalvino/fireisp5.0#280", "human_labels": ["api_or_backend", "docs_or_claims", "schema_or_data", "test_ci_gap", "test_or_ci", "ui_or_frontend"], "issue_number": "280", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-d7e0162c95a09baa", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 21, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 2, "api_or_backend": 7, "docs_or_claims": 1, "schema_or_data": 3, "ui_or_frontend": 8}, "linked_commit_count": 5, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#280\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#280\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 21\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 1, 'schema_or_data': 3, 'api_or_backend': 7, 'ui_or_frontend': 8, 'test_or_ci': 2}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-c5c78d51f9a3c928\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/280\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/280\\nTitle: fix(db): soft-delete-aware UNIQUE keys across 38 tables + companion lookup fixes + NAS restore-on-create\\nBody:\\n## What & why\\nA plain `UNIQUE KEY` doesn't account for soft deletes, so once a row is soft-deleted its business value (IP, username, email, code, serial, \u2026) is **permanently reserved** \u2014 you can't create a new live row with that value. This started as the nas-IP fix and, at your request, became a full **38-table sweep**.\\n\\n### Pattern (uniform)\\nAdd a STORED generated column `active_flag = IF(deleted_at IS NULL, 1, NULL)` and append it to each business unique key \u2192 `UNIQUE (cols\u2026, active_flag)`. MySQL treats NULL as distinct in a unique index, so **one live + N soft-deleted rows** may share a value; at most one **live** row holds it.\\n\\n### Scope (audited per-table by a multi-agent pass)\\n**Fixed (38):** nas, radius, users, client_custom_fields, service_orders, devices, invoices, payment_allocations, quotes, ip_pools, ip_assignments, snmp_profiles, snmp_profile_oids, device_groups, inventory_items,\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-5880e2baa206c86a\",\n    \"filename\": \"README.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"modified\",\n    \"additions\": 1,\n    \"deletions\": 1,\n    \"changes\": 2,\n    \"blob_url\": \"https://github.com/vothalvino/fireisp5.0/blob/ac3cbce775678a5f17e9ebe799c6fd17d405e3db/README.md\"\n  },\n  {\n    \"id\": \"github-pr-file-file-225ed78f3dd63c06\",\n    \"filename\": \"database/migrations/361_softdelete_aware_unique_keys.sql\",\n    \"label\": \"schema_or_data\",\n    \"status\": \"added\",\n    \"additions\": 501,\n    \"deletions\": 0,\n    \"changes\": 501,\n    \"blob_url\": \"https://gi\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-d71821a4101f46b7", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439851, "scanner": "foundry_dataset", "fingerprint": "21d1e30bca8341874ed0178582195823fa6b56645a6ed30e27f7bb94cc6d3b35", "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": "vothalvino/fireisp5.0#277", "human_labels": ["security_auth_secret", "source_or_other"], "issue_number": "277", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.82, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-1c199ed219c94ad6", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 6, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"source_or_other": 6}, "linked_commit_count": 1, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#277\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#277\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 6\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'source_or_other': 6}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-16575966823ba8c4\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/277\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/277\\nTitle: feat(deploy): launch embedded RADIUS server via docker-compose (publish UDP + env)\\nBody:\\n## Why\\nThe embedded RADIUS server (#276) is opt-in, and the app container only exposes HTTP behind Nginx \u2014 so RADIUS UDP never reached it. This wires deployment so a normal deploy-on-merge brings it up (you asked for exactly this).\\n\\n## Changes\\n- **`docker-compose.prod.yml`**: publish **UDP 1812/1813** on the `app` service and pass `RADIUS_SERVER_ENABLED` (**default `true` in prod**, overridable with `RADIUS_SERVER_ENABLED=false` in `.env.prod`) + `RADIUS_AUTH_PORT` / `RADIUS_ACCT_PORT` / `RADIUS_SERVER_SECRET`. Nginx proxies HTTP only, so RADIUS UDP is published directly. \u26a0\ufe0f Fixed host ports \u2192 keep `app` at `replicas:1` (or front RADIUS with a UDP LB) if you scale the app tier.\\n- **`docker-compose.yml`** (dev): publish the UDP ports + env, **default `false`**.\\n- **`Dockerfile`**: `EXPOSE 1812/udp 1813/udp` (documentation).\\n- **`.env.prod.example` / `.env.example`**: document `RADIUS_SERVER_*` (prod=true, d\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-6b5a5f0d3995a07e\",\n    \"filename\": \".env.example\",\n    \"label\": \"source_or_other\",\n    \"status\": \"modified\",\n    \"additions\": 6,\n    \"deletions\": 0,\n    \"changes\": 6,\n    \"blob_url\": \"https://github.com/vothalvino/fireisp5.0/blob/0e45c0bcc0bd20f29fcaf1b317eabb857c017d75/.env.example\"\n  },\n  {\n    \"id\": \"github-pr-file-file-788ab6d4feebebb7\",\n    \"filename\": \".env.prod.example\",\n    \"label\": \"source_or_other\",\n    \"status\": \"modified\",\n    \"additions\": 7,\n    \"deletions\": 0,\n    \"changes\": 7,\n    \"blob_url\": \"https://github.com/vothalvino/fireisp5.0/blob/0e45c0bcc0bd20f29fcaf1b317eabb857c017d75/.env.prod.example\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-acf77e07117d6279", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439850, "scanner": "foundry_dataset", "fingerprint": "c476a54eb2767825ee1fdad46b7a4fcafe9a1ded16b4a1b97f2c8fdd1cafc723", "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": "vothalvino/fireisp5.0#276", "human_labels": ["security_auth_secret"], "issue_number": "276", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.82, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-d1507374345d293b", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 2, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#276\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#276\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 2\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-d28e0861a2b3882d\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/276\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/276\\nTitle: feat: embedded RADIUS server (auth + accounting) \u2014 FreeRADIUS inside FireISP\\nBody:\\n## Summary\\nFireISP now ships a **native RADIUS server** so it can authenticate and account PPPoE subscribers itself \u2014 **no external FreeRADIUS daemon required**. A NAS (e.g. MikroTik) points its `/radius` at the FireISP host; FireISP authenticates from its own `radius` table and routes accounting through the existing `ingestAccounting` \u2192 `connection_logs`. The external-FreeRADIUS sync path is unchanged; this is a self-contained alternative.\\n\\nOpt-in: `RADIUS_SERVER_ENABLED=true` (default off). Ports `RADIUS_AUTH_PORT=1812`, `RADIUS_ACCT_PORT=1813`.\\n\\n## What's included\\n- **`radiusServerCodec`** \u2014 RADIUS decode, PAP (decrypt/encrypt), CHAP verify, Message-Authenticator (RFC 9579 / Blast-RADIUS hardening), Response-Authenticator signing.\\n- **`radiusServerService`** \u2014 UDP **auth (1812)** + **accounting (1813)** listeners; per-NAS shared-secret by source IP; Access-Accept with plan policy attrs (reusing `radiusAttribu\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-d49d71f3d630602d\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_a\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-4fe748ef795ea348", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439849, "scanner": "foundry_dataset", "fingerprint": "52223a2556e6e5c986b61d42ec58711e33d5efbde5ab4f6b008b497a3973854d", "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": "vothalvino/fireisp5.0#275", "human_labels": ["security_auth_secret"], "issue_number": "275", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.82, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-501812026bd1f195", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 1, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#275\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#275\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-87e281cc290453e3\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/275\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/275\\nTitle: feat: direct RouterOS API push with configurable per-NAS port\\nBody:\\n## Summary\\nFireISP can now push provisioning **directly** to a MikroTik RouterOS over its API \u2014 **no FireRelay/proxy agent required** \u2014 and the API connection (including the **port**) is configurable per NAS. (A proxy/relay path can be added later; this is the direct path you asked for.)\\n\\n## What's included\\n- **DB** (migration **360** + rollback + `schema.sql`): `nas` gains `api_port` (default 8728, **configurable**), `api_username`, `api_password_encrypted` (AES\u2011256\u2011GCM via `utils/encryption`), `api_use_tls`. README migration range \u2192 360.\\n- **`routerosService`**: new `pppoeUpsert` (idempotent create\u2011or\u2011update) + **TLS/api\u2011ssl** support on `RouterOSClient` (`secure`/`rejectUnauthorized`; `tls.connect` on `secureConnect`). Plain\u2011TCP path unchanged.\\n- **`routerProvisioningService`** (new): `nasToConn` (decrypts the API password; TLS\u2011aware default port 8729 vs 8728), `testConnection`, `pushSubscriber`.\\n- **Routes**: `POST /nas/:i\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-73a2ff132072dc0f\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_a\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-5d7c481f5b88ca15", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439848, "scanner": "foundry_dataset", "fingerprint": "0b11867ed78fe93310726f82a1858fa494d68d2bce30acccbdd6d4e99d1c3cce", "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": "vothalvino/fireisp5.0#274", "human_labels": ["human_feedback_general"], "issue_number": "274", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.587, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-47cb45816498e512", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 2, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#274\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_needs_classification\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\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#274\nRepo: vothalvino/fireisp5.0\nThread label: thread_needs_classification\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 2\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'human_feedback_general': 1}\nPolarities: {'neutral': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-650bd22de1e6ddc4\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/274\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/274\\nTitle: Fix/web UI 500 contract drift\\nBody:\\n\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-e9d3bd166bc0d4fd\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 6, \"designs\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"ci_contradiction_cluster\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-bfe697e02a0089ae", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439847, "scanner": "foundry_dataset", "fingerprint": "3db2095639c0496f7c8440358b104447deaa01f0d1b96143ca00b5db919924c6", "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": "vothalvino/fireisp5.0#273", "human_labels": ["build_install_failure"], "issue_number": "273", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-5e0dd5e0db7a43ef", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#273\nOutcome: ambiguous_needs_more_evidence\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\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#273\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'build_install_failure': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-6df5902f46c9c715\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"build_install_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/273\",\n    \"text\": \"GitHub feedback: build_install_failure\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/273\\nTitle: fix(ci): bump nodemailer (clears Trivy advisories) + Trivy v0.71.1\\nBody:\\n## Why\\nAfter merging to `main`, the **container-scan (Trivy)** job failed. Trivy is report-only on PRs but **blocking on push-to-main**, so it only surfaced post-merge. Root cause: **`nodemailer` 8.0.7** (a runtime dependency shipped in the image) has three advisories \u2014 `GHSA-r7g4-qg5f-qqm2` (fixed 8.0.8), `GHSA-268h-hp4c-crq3` and `GHSA-wqvq-jvpq-h66f` (fixed 8.0.9). GHSA rates them MEDIUM, but Trivy's vendor feed escalates \u22651 to HIGH, tripping the HIGH/CRITICAL gate.\\n\\n## Changes\\n- **`nodemailer` `^8.0.5` \u2192 `^8.0.9`** (resolves to **8.0.11**) \u2014 clears all three advisories. Patch-level bump on a runtime dep (no API change).\\n- **Trivy pinned `v0.70.0` \u2192 `v0.71.1`** in both scan steps \u2014 keeps the scanner current.\\n\\n## Test plan\\n- `pnpm install --frozen-lockfile` clean; `pnpm audit --audit-level=high` exits 0\\n- Backend suite: **4907 passing**\\n- nodemailer resolves to 8.0.11\\n\\n## Note\\nThe Trivy gate is **blocking only on push-\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-e2cb74f38d8304fe\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_s\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-e12a0cefaf07f838", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439846, "scanner": "foundry_dataset", "fingerprint": "c13cdbfd63158e805fa83bbb9c33cebbe3dd0d511eef65a15c0bfbfc570d5c97", "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": "vothalvino/fireisp5.0#272", "human_labels": ["data_schema_persistence"], "issue_number": "272", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-1e4e5af394f1f43b", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#272\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#272\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-4514a7a0a838f7c6\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/272\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/272\\nTitle: fix(radius): expose IP-pool & IPv6-delegation fields on RADIUS create/update\\nBody:\\n## Summary\\nWhile running an end-to-end PPPoE provisioning test (FireISP \u2192 MikroTik RouterOS), I found that a subscriber's IP pool can't be (re)assigned through the documented API: `Radius.fillable` already includes `ipv4_pool_id`, `ipv6_pool_id`, `ipv6_delegated_prefix`, and `ipv6_prefix_len`, but the `createRadius`/`updateRadius` validation schemas omitted them. As a result those fields were **unvalidated** and **absent from the OpenAPI contract** \u2014 so operators/UI had no documented, type-checked way to move a residential subscriber onto a CGNAT pool (or set IPv6 delegation) after provisioning.\\n\\n## Change\\n- Add `ipv4_pool_id`, `ipv6_pool_id` (number, min 1), `ipv6_delegated_prefix` (string), and `ipv6_prefix_len` (number, 0\u2013128) to both `createRadius` and `updateRadius` in `src/middleware/schemas/radius.js`.\\n- Regenerate `docs/openapi.json` (the only other change; +34 lines, radius schema only).\\n\\nNo behavior\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-6534b0f07b3d21c8\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_so\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-b07230dfb690b0d6", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439845, "scanner": "foundry_dataset", "fingerprint": "e14c0d2bdb4d59186d4b633984602872a055c84656fd64b3b8de3c08259f2cbd", "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": "vothalvino/fireisp5.0#269", "human_labels": ["api_or_backend", "docs_or_claims", "runtime_failure", "schema_or_data", "test_or_ci", "ui_or_frontend"], "issue_number": "269", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-70aa812a36302d5e", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 61, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 15, "api_or_backend": 12, "docs_or_claims": 2, "schema_or_data": 4, "ui_or_frontend": 28}, "linked_commit_count": 5, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#269\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#269\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 61\nLabels: {'runtime_failure': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 2, 'schema_or_data': 4, 'api_or_backend': 12, 'ui_or_frontend': 28, 'test_or_ci': 15}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-a2776f69cf33e12a\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"runtime_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/269\",\n    \"text\": \"GitHub feedback: runtime_failure\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/269\\nTitle: fix: resolve all critical + high audit findings (DB, backend, web GUI)\\nBody:\\n## Summary\\n\\nResolves the verified **critical + high** findings from an automated 13-dimension audit of the database, backend, and web GUI (full report: `docs/AUDIT-broken-or-missing.md`). The recurring theme was **code\u2194schema drift** \u2014 ORM column names, scheduled-task dispatch names, and frontend API paths had diverged, so features that looked complete failed at runtime.\\n\\n## \ud83d\udd34 Critical\\n- **Payment gateway no longer fakes success** \u2014 unimplemented providers (openpay/mercadopago/paypal) now throw instead of returning a `Date.now()` reference with no API call; `refund()` calls the real Stripe/Conekta processor before updating DB status; `refundRequestService` routes original-method refunds through the gateway. (`paymentGatewayService.js`, `refundRequestService.js`)\\n- **Topology Map page** \u2014 removed the double `/v1` prefix on all 8 API calls (page was 404'ing entirely).\\n- **Billing-number UNIQUE keys** scoped by `organization_\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-d5bdb4a1b02e19fd\",\n    \"filename\": \"README.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"modified\",\n    \"additions\": 1,\n    \"deletions\": 1,\n    \"changes\": 2,\n    \"blob_url\": \"https://github.com/vothalvino/fireisp5.0/blob/6bb58c7fa6e7e34991c54a3776f61b3df49884e1/README.md\"\n  },\n  {\n    \"id\": \"github-pr-file-file-235182aa740e770d\",\n    \"filename\": \"database/migrations/359_fix_billing_number_unique_constraints.sql\",\n    \"label\": \"schema_or_data\",\n    \"status\": \"added\",\n    \"additions\": 96,\n    \"deletions\": 0,\n    \"changes\": 96,\n    \"blob\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-d5e6b5d492bff70c", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439844, "scanner": "foundry_dataset", "fingerprint": "85f00ea279ae51bd7d14252a698ffa3d6b98975a2abd4a4afc05b2a8bab849b8", "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": "vothalvino/fireisp5.0#267", "human_labels": ["api_or_backend", "build_install_failure", "docs_or_claims", "schema_or_data", "test_or_ci", "ui_or_frontend"], "issue_number": "267", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-47a79724475a3fc4", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 26, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 1, "api_or_backend": 5, "docs_or_claims": 4, "schema_or_data": 8, "ui_or_frontend": 8}, "linked_commit_count": 5, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#267\nOutcome: ambiguous_needs_more_evidence\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\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#267\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 26\nLabels: {'build_install_failure': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 4, 'api_or_backend': 5, 'schema_or_data': 8, 'ui_or_frontend': 8, 'test_or_ci': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-c55aa769a0fea407\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"build_install_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/267\",\n    \"text\": \"GitHub feedback: build_install_failure\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/267\\nTitle: feat: \u00a720 APIs & Integrations \u2014 core REST API verified + unified third-party integration framework\\nBody:\\nImplements \u00a720 (20.1\u201320.2).\\n\\n## 20.1 Core REST API \u2014 verified existing (no new code; ticked against reality)\\nFull CRUD (clients/plans/invoices/tickets/devices/OLTs/ONUs/sessions), pagination/filtering on list endpoints, webhooks (webhookService dispatches 19 event types), OpenAPI/Swagger (838 paths, /api/docs), rate limiting (apiLimiter/authLimiter/exportLimiter + \u00a717 api_key_rate_limits). Two honest gaps noted/deferred: no dedicated `client.created` webhook event (closest is service_order.activated); `sort_by` not universal.\\n\\n## 20.2 Integration framework (migrations 348\u2013350, rollbacks included; tables 310 \u2192 313)\\n- `integration_providers` (catalog; 27 providers seeded idempotently via UNIQUE provider_key; category ENUM matches seeded values), `integration_connections` (per-org, AES-256-GCM-encrypted credentials via the existing encryption util), `integration_sync_logs`.\\n- integrationServi\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-5c76cca703d20fc2\",\n    \"filename\": \".claude/agent-memory/fullstack-autonomous-engineer/MEMORY.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"modified\",\n    \"additions\": 1,\n    \"deletions\": 0,\n    \"changes\": 1,\n    \"blob_url\": \"https://github.com/vothalvino/fireisp5.0/blob/12ccfb61997a76cd48dd8e15a08db3d33429b822/.claude%2Fagent-memory%2Ffullstack-autonomous-engineer%2FMEMORY.md\"\n  },\n  {\n    \"id\": \"github-pr-file-file-5053b5a7cc924c2d\",\n    \"filename\": \".claude/agent-memory/fullstack-autonomous-engineer/section20-apis-integrations.md\",\n    \"label\": \"api_or_b\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-f32b741e8dfc9b31", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439843, "scanner": "foundry_dataset", "fingerprint": "a7a65e0039114b4a9ccdedf0a6bc7e4fde86c0807054320aa5b042873db93a70", "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": "vothalvino/fireisp5.0#266", "human_labels": ["docs_or_claims", "test_ci_gap"], "issue_number": "266", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-53facf6c5b2e482e", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 5, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#266\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#266\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-b326fe13e7232aab\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/266\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/266\\nTitle: docs(agents): complete the orchestration sweep checklist\\nBody:\\nFolds the CI gates learned during \u00a716 and \u00a718 into `.claude/agent-orchestration-guidelines.md` \u00a73 sweep, so the committed doc is the full checklist rather than relying on the orchestrator's private notes:\\n\\n- **Coverage gate** \u2014 CI runs jest a 2nd time and fails if global line coverage <70% (`pnpm test` doesn't enforce it). Added the exact verify command + the per-path service/middleware thresholds.\\n- **Seed validation** \u2014 ENUM columns must use valid literals (task_type/priority), and idempotent seeds need `FROM DUAL`; only CI's real MySQL catches these. (\u00a718 shipped `task_type='system'`, numeric priority, and missing FROM DUAL.)\\n- **README range** \u2014 the CI README-sync check validates the migration *range* (001\u2013NNN) AND the table count; the doc previously only mentioned the table count. (\u00a716 failed on the range.)\\n- **Scheduled-task cron** \u2014 a seeded task needs a cron_expression (or it never fires) in addition to a taskRunner case + test. (\u00a71\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-ee3916ffa677f332\",\n    \"filename\": \".claude/agent-orchestration-guidelines.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"modified\",\n    \"additions\": 6,\n    \"deletions\": 2,\n    \"changes\": 8,\n    \"blob_url\": \"https://github.com/vothalvino/fireisp5.0/blob/87944d13f5113340d6eb1dda7e87529884116c8b/.claude%2Fagent-orchestration-guidelines.md\"\n  }\n]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-7f5d34867904ec13\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1,\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-30a762d654cd4a6e", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439842, "scanner": "foundry_dataset", "fingerprint": "1a1b1a636a7c8e9fa7f7ee669c787f3a4e6d9161c5e79d1728c4d806a5880b00", "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": "vothalvino/fireisp5.0#265", "human_labels": ["api_or_backend", "build_install_failure", "docs_or_claims", "schema_or_data", "test_or_ci", "ui_or_frontend"], "issue_number": "265", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-3f29149d20a1d03b", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 26, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 1, "api_or_backend": 4, "docs_or_claims": 4, "schema_or_data": 9, "ui_or_frontend": 8}, "linked_commit_count": 5, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#265\nOutcome: ambiguous_needs_more_evidence\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\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#265\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 26\nLabels: {'build_install_failure': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 4, 'schema_or_data': 9, 'api_or_backend': 4, 'ui_or_frontend': 8, 'test_or_ci': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-736d2bf01a31e611\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"build_install_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/265\",\n    \"text\": \"GitHub feedback: build_install_failure\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/265\\nTitle: feat: \u00a719 Multi-Tenancy / Reseller Support \u2014 hierarchy, scoping, resource allocation, reseller portal\\nBody:\\nImplements all of \u00a719 (19.1\u201319.3). Reseller support as a product feature within a single ISP deployment (reseller_id ownership scoping, mirroring organization_id \u2014 not hardened multi-tenant isolation).\\n\\n## Database (migrations 344\u2013347, rollbacks included; tables 303 \u2192 310)\\n- 344: `resellers` (self-referencing parent_id hierarchy ISP\u2192Master\u2192Sub, white-label branding, commission_rate), `reseller_plan_prices` (custom pricing), `reseller_commissions`\\n- 345: `reseller_id` (nullable BIGINT UNSIGNED FK) added to `clients` via stored-proc guard, backfilled into schema.sql body\\n- 346: `reseller_ip_pool_allocations`, `reseller_bandwidth_quotas`, `reseller_olt_port_assignments`, `reseller_billing_entities`\\n- 347: 22 `resellers`-module permissions seeded to admin / reseller_admin (existing \u00a717 role) / super_admin\\n\\n## Backend (OpenAPI 831 paths)\\n- resellerService (subtree resolution, reseller-scoped\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-8c0e7eab0eb68a8c\",\n    \"filename\": \".claude/agent-memory/fullstack-autonomous-engineer/MEMORY.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"modified\",\n    \"additions\": 1,\n    \"deletions\": 0,\n    \"changes\": 1,\n    \"blob_url\": \"https://github.com/vothalvino/fireisp5.0/blob/c7348117f1ca4c4648825480628ca714ae724845/.claude%2Fagent-memory%2Ffullstack-autonomous-engineer%2FMEMORY.md\"\n  },\n  {\n    \"id\": \"github-pr-file-file-282ef8a19c07371f\",\n    \"filename\": \".claude/agent-memory/fullstack-autonomous-engineer/section19-reseller-support.md\",\n    \"label\": \"docs_or\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-8947f4dff5ab31da", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439841, "scanner": "foundry_dataset", "fingerprint": "015f0bc4ea5162186f0acd781f0d8cef09faca5614ff1dc64e32f4c469726b4c", "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": "vothalvino/fireisp5.0#264", "human_labels": ["api_or_backend", "build_install_failure", "docs_or_claims", "schema_or_data", "test_or_ci", "ui_or_frontend"], "issue_number": "264", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-aaee0bb628319e3f", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 52, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 4, "api_or_backend": 11, "docs_or_claims": 4, "schema_or_data": 17, "ui_or_frontend": 16}, "linked_commit_count": 5, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#264\nOutcome: ambiguous_needs_more_evidence\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\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#264\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 52\nLabels: {'build_install_failure': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 4, 'schema_or_data': 17, 'api_or_backend': 11, 'ui_or_frontend': 16, 'test_or_ci': 4}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-8320d516ea1949a5\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"build_install_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/264\",\n    \"text\": \"GitHub feedback: build_install_failure\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/264\\nTitle: feat: \u00a718 Automation & Scripting \u2014 workflow rules, batch ops, provisioning pipeline, scripting engine, router drivers, heuristic analytics\\nBody:\\nImplements all of \u00a718 (18.1\u201318.4). Reuses scheduled_tasks/taskRunner, alert correlation (\u00a76), \u00a715 forecasting, provisioning/notification services, and the encryption util.\\n\\n## Database (migrations 336\u2013343, rollbacks included; tables 289 \u2192 303)\\n14 new tables: automation_rules(+executions), batch_jobs(+items), provisioning_pipelines(+stages), remediation_rules(+executions), automation_scripts, script_executions, router_driver_configs, device_command_executions, analytics_anomalies, churn_scores. Migration 343 seeds 30 permissions + 3 scheduled tasks (anomaly_detection, churn_score_computation, remediation_evaluation \u2014 each with cron + taskRunner case + dispatch test).\\n\\n## Backend (OpenAPI 812 paths)\\n7 route files + 4 services. Reuse: scheduled_tasks/taskRunner; \u00a76 alert correlation; \u00a715 capacityForecast/ponUtilization; provisioning/IP/notification serv\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-377d4a7afb3b5808\",\n    \"filename\": \".claude/agent-memory/fullstack-autonomous-engineer/MEMORY.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"modified\",\n    \"additions\": 1,\n    \"deletions\": 0,\n    \"changes\": 1,\n    \"blob_url\": \"https://github.com/vothalvino/fireisp5.0/blob/85608a62109a093e9223a9e401347c6cf7cc5c99/.claude%2Fagent-memory%2Ffullstack-autonomous-engineer%2FMEMORY.md\"\n  },\n  {\n    \"id\": \"github-pr-file-file-5ac49b2450120b32\",\n    \"filename\": \".claude/agent-memory/fullstack-autonomous-engineer/section18-automation-scripting.md\",\n    \"label\": \"doc\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-939745594fb2bdeb", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439840, "scanner": "foundry_dataset", "fingerprint": "9f783c9e8b6902750c3bdbbcde15999fc039630384a47c90567e8fcf05f16026", "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": "vothalvino/fireisp5.0#263", "human_labels": ["api_or_backend", "build_install_failure", "docs_or_claims", "schema_or_data", "test_or_ci", "ui_or_frontend"], "issue_number": "263", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-874a5746bcf8f0aa", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 63, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 5, "api_or_backend": 8, "docs_or_claims": 4, "schema_or_data": 28, "ui_or_frontend": 18}, "linked_commit_count": 5, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#263\nOutcome: ambiguous_needs_more_evidence\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\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#263\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 63\nLabels: {'build_install_failure': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 4, 'schema_or_data': 28, 'api_or_backend': 8, 'ui_or_frontend': 18, 'test_or_ci': 5}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-333cf806edf80d2a\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"build_install_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/263\",\n    \"text\": \"GitHub feedback: build_install_failure\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/263\\nTitle: feat: \u00a717 Security & Access Control \u2014 MFA, API keys, IP allowlists, firewall/DDoS/blocklist, encryption, data masking\\nBody:\\nImplements all of \u00a717 (17.1\u201317.4). Reuses existing auth/RBAC/2FA/rate-limiting/audit/backup infra; adds security-specific tables and admin tooling.\\n\\n## Database (migrations 323\u2013335, rollbacks included; tables 277 \u2192 289)\\n12 new tables: webauthn_credentials, admin_ip_allowlist, password_policies, api_key_rate_limits, firewall_rules, ddos_protection_rules, blackhole_routes, dns_blocklists, cpe_security_scans, encryption_key_metadata, data_masking_rules, secure_deletion_log. Migration 335 seeds 36 `security` permissions + 4 new roles (super_admin, noc_operator, reseller_admin, auditor).\\n\\n## Backend (OpenAPI 780 paths)\\n4 route files (securityAdmin, networkSecurity, dataSecurity, webhookSecurity) + 12 models + securityService. Reuse decisions: TOTP via existing twoFactorService; IP allowlist middleware applied at router level; webhook HMAC via existing webhookService (+ timing\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-88f507397b62b90b\",\n    \"filename\": \".claude/agent-memory/fullstack-autonomous-engineer/MEMORY.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"modified\",\n    \"additions\": 1,\n    \"deletions\": 0,\n    \"changes\": 1,\n    \"blob_url\": \"https://github.com/vothalvino/fireisp5.0/blob/ac96a2aeae82c6ab36a5b02828091a20ce9d4877/.claude%2Fagent-memory%2Ffullstack-autonomous-engineer%2FMEMORY.md\"\n  },\n  {\n    \"id\": \"github-pr-file-file-08587ed5e225def7\",\n    \"filename\": \".claude/agent-memory/fullstack-autonomous-engineer/section17-security-access-control.md\",\n    \"label\": \"d\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-0666944298d0b65f", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439839, "scanner": "foundry_dataset", "fingerprint": "f6783a4041ba4d998756c08b99dbf43efc9f229aa02a4d89ff5b50e1c77ec49b", "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": "vothalvino/fireisp5.0#262", "human_labels": ["api_or_backend", "build_install_failure", "docs_or_claims", "schema_or_data", "test_or_ci", "ui_or_frontend"], "issue_number": "262", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-6987fa3fe8fb271a", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 44, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 3, "api_or_backend": 9, "docs_or_claims": 5, "schema_or_data": 19, "ui_or_frontend": 8}, "linked_commit_count": 5, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#262\nOutcome: ambiguous_needs_more_evidence\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\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#262\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 44\nLabels: {'build_install_failure': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 5, 'schema_or_data': 19, 'api_or_backend': 9, 'ui_or_frontend': 8, 'test_or_ci': 3}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-b5cd2b9c24213833\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"build_install_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/262\",\n    \"text\": \"GitHub feedback: build_install_failure\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/262\\nTitle: feat: \u00a716 Regulatory Compliance (Mexico) \u2014 data rights, IP retention/interception, numbering, USO, PROFECO, audit\\nBody:\\nImplements all of \u00a716 (16.1\u201316.9). Heavily reuses existing infra (audit_logs, ip_assignments/connection_logs, \u00a715 compliance reports, CFDI) and adds compliance-specific tables.\\n\\n## Database (migrations 314\u2013322, rollbacks included; tables 265 \u2192 277)\\n- **314** subscriber_consents, dsar_requests, identity_verification_records (CURP format+checksum validation)\\n- **315** gov_data_requests (SHA-256 row_hash integrity)\\n- **316** phone_number_inventory, number_portability_records, numbering_blocks\\n- **317** uso_obligations, rural_coverage_reports\\n- **318** service_modification_notices\\n- **319** data_residency_config (one row/org)\\n- **320** report_access_logs\\n- **321** 47 permissions \u2014 \u00a716 modules + **backfill** for concession_titles/regulatory_filings/ift_statistical_reports/contract_templates_mx (these had routes/models but no permissions before)\\n- **322** data_retention_compliance\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-dea0aa3c369c47ea\",\n    \"filename\": \".claude/agent-memory/fullstack-autonomous-engineer/MEMORY.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"modified\",\n    \"additions\": 1,\n    \"deletions\": 0,\n    \"changes\": 1,\n    \"blob_url\": \"https://github.com/vothalvino/fireisp5.0/blob/aa4c2662f707dddd7544be2aef22920052d29646/.claude%2Fagent-memory%2Ffullstack-autonomous-engineer%2FMEMORY.md\"\n  },\n  {\n    \"id\": \"github-pr-file-file-0e58a2febdebd209\",\n    \"filename\": \".claude/agent-memory/fullstack-autonomous-engineer/section16-regulatory-compliance.md\",\n    \"label\":\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-80c57af4b0998fa4", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439838, "scanner": "foundry_dataset", "fingerprint": "c97895e2ad9344cae61fec592444f9ddc7bd58e13efaf75c67a5c94bb1c66196", "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": "vothalvino/fireisp5.0#261", "human_labels": ["agent_instruction_gap", "docs_or_claims"], "issue_number": "261", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-d610c324bed78488", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 2, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#261\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\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#261\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 2\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 1\nLabels: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-f59a717e381bf84a\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/261\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/261\\nTitle: docs(agents): lean orchestration guidelines in .claude/\\nBody:\\nConsolidates the two loose orchestration drafts (`agent-orchestration-guidelines.md` v1 + `-v2.md`) that were sitting in the parent folder into one reference doc committed at `.claude/agent-orchestration-guidelines.md`.\\n\\n**Key decisions (per discussion):**\\n- **No `CONVENTIONS.md`/`conventions/` system.** Both drafts centered on a conventions file attached to every brief; it was never built and is intentionally not adopted \u2014 it would duplicate the existing mechanisms (subagent definition + `.claude/agent-memory/`) and add context load. The doc now points conventions at where they actually live.\\n- **Matches reality:** one `fullstack-autonomous-engineer` subagent implements each section end-to-end; the orchestrator sweeps/verifies/PRs. (The drafts assumed many subagents replicating patterns within a section.)\\n- **Zero per-turn context cost:** a plain `.md` in `.claude/` is not auto-loaded; **no root `CLAUDE.md` is created** (that's th\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-898ac841a8b9e412\",\n    \"filename\": \".claude/agent-orchestration-guidelines.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"added\",\n    \"additions\": 73,\n    \"deletions\": 0,\n    \"changes\": 73,\n    \"blob_url\": \"https://github.com/vothalvino/fireisp5.0/blob/8576abb0755c14e65fb329126431179d2b172ed1/.claude%2Fagent-orchestration-guidelines.md\"\n  }\n]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-cf339e0b6cb7ceb5\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-ffcebd9e3742443a", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439837, "scanner": "foundry_dataset", "fingerprint": "e619e2a3613ca19a95941800c5ba1da82ab0c07e6f6520e1f600f719de79ccc6", "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": "vothalvino/fireisp5.0#260", "human_labels": ["build_install_failure", "human_feedback_general", "source_or_other", "test_or_ci"], "issue_number": "260", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-a62003b4c6e02025", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 3, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 2, "source_or_other": 1}, "linked_commit_count": 10, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#260\nOutcome: ambiguous_needs_more_evidence\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\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#260\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 2\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 3\nLabels: {'build_install_failure': 1, 'human_feedback_general': 1}\nPolarities: {'bad': 1, 'neutral': 1}\nChanged file labels: {'test_or_ci': 2, 'source_or_other': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-3918dee49a7013c6\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"build_install_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/260\",\n    \"text\": \"GitHub feedback: build_install_failure\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/260\\nTitle: ci(security): ignore CVE-2026-41907 (uuid dev-only) to unblock main container-scan\\nBody:\\n## Problem\\nThe push-to-main `container-scan` job (blocking Trivy, `exit-code: 1`) is failing on **main** after the \u00a715 merge, flagging **CVE-2026-41907** in **uuid@8.3.2**.\\n\\nThis is not a \u00a715 regression:\\n- **PR scans are non-blocking** (`exit-code: 0`, report-only); the blocking scan runs **only on push to main**. So #259's checks were green while main's post-merge run fails.\\n- CVE-2026-41907 was **newly published** to Trivy's vuln DB; prior main pushes passed because it didn't exist yet. (Same time-based pattern as the esbuild advisory handled in #259.)\\n\\n## Why it's safe to ignore\\n`uuid@8.3.2` is **not in the production dependency tree**. Its only consumer is the load-testing dev tool:\\n```\\nuuid@8.3.2 <- hyperid@3.3.0 <- autocannon@7.15.0 <- fireisp (devDependencies)\\n```\\nVerified: a clean `pnpm install --frozen-lockfile --prod` (exactly what the Dockerfile runtime stage runs) resolves **zero** uuid packag\"\n  },\n  {\n    \"id\": \"github-feedback-comment-421b7d77406cbd94\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/260#issuecomment-4696789041\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: issue_comment\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/260#issuecomment-4696789041\\nTitle: \\nBody:\\nAdded a second commit: de-flakes `aiSuggestedReply.test.tsx` (the \\\"action=sent\\\" test). It was clicking Send before the component committed `logId`\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-e6a2a99092c969af", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439836, "scanner": "foundry_dataset", "fingerprint": "2953f07b2629bb5322312bd8648a83d27e51f6116b3880d6dbe149d6961e47dc", "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": "vothalvino/fireisp5.0#259", "human_labels": ["api_or_backend", "build_install_failure", "dependency_or_build", "docs_or_claims", "schema_or_data", "test_or_ci", "ui_or_frontend"], "issue_number": "259", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-58fbbd50fe19b783", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 41, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 5, "api_or_backend": 7, "docs_or_claims": 4, "schema_or_data": 13, "ui_or_frontend": 10, "dependency_or_build": 2}, "linked_commit_count": 5, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#259\nOutcome: ambiguous_needs_more_evidence\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\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#259\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 41\nLabels: {'build_install_failure': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 4, 'schema_or_data': 13, 'api_or_backend': 7, 'ui_or_frontend': 10, 'test_or_ci': 5, 'dependency_or_build': 2}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-565f799cd830b01e\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"build_install_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/259\",\n    \"text\": \"GitHub feedback: build_install_failure\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/259\\nTitle: feat: \u00a715 Reporting & Analytics \u2014 financial/operational/network/compliance reports + report engine\\nBody:\\nImplements all 30 items of \u00a715 (Financial, Operational, Network, Compliance reports + Report Engine).\\n\\n## Database (migrations 308\u2013313, rollbacks included; tables 260 \u2192 265)\\n- **308** \u2014 `report_definitions`, `scheduled_reports`, `generated_reports` (report registry + delivery schedule + generation history)\\n- **309** \u2014 `dashboard_widgets` (per-user analytics grid layout)\\n- **310** \u2014 `custom_reports` (user SQL/visual reports, SELECT-only validation)\\n- **311** \u2014 11 RBAC permissions (reports.*, dashboard_widgets.*, custom_reports.*)\\n- **312** \u2014 `generate_scheduled_reports` hourly task + matching taskRunner case + dispatch test\\n- **313** \u2014 seeds 34 built-in report_definitions rows (one per generatable report slug)\\n\\n## Backend (endpoints 669 \u2192 712)\\n- `reports.js` \u2014 30 report endpoints across all 4 categories + generic `/:report/export?format=csv|xlsx|pdf` + `POST /reports/generate` (on-demand)\\n-\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-73fcf1eed3746cc4\",\n    \"filename\": \".claude/agent-memory/fullstack-autonomous-engineer/MEMORY.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"modified\",\n    \"additions\": 1,\n    \"deletions\": 0,\n    \"changes\": 1,\n    \"blob_url\": \"https://github.com/vothalvino/fireisp5.0/blob/afbe05821e2352e7b54f752a89f1ce899e8d6721/.claude%2Fagent-memory%2Ffullstack-autonomous-engineer%2FMEMORY.md\"\n  },\n  {\n    \"id\": \"github-pr-file-file-12a1d98f5c19e902\",\n    \"filename\": \".claude/agent-memory/fullstack-autonomous-engineer/section15-reporting-an\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-ba93acdcc823d607", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439835, "scanner": "foundry_dataset", "fingerprint": "3b91c2ceaf7b17bf0bb4844ca7f0f556ef0e234a45193077d0c72ab0732ec75c", "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": "vothalvino/fireisp5.0#258", "human_labels": ["agent_instruction_gap", "docs_or_claims"], "issue_number": "258", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-1dc7cf04a8507b94", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 2, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"docs_or_claims": 2}, "linked_commit_count": 1, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_high_confidence"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#258\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\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#258\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 2\nLabels: {'agent_instruction_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 2}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-2cec9d6330817c5d\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/258\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/258\\nTitle: chore(agents): sync agent memory after \u00a714 merge\\nBody:\\nAgent memory left uncommitted in the main checkout after the \u00a714 runs (PR #257):\\n\\n- **section14-inventory-asset.md** \u2014 \u00a714 completion record. The agent wrote TWO near-duplicate files under different slugs (`...-asset.md` indexed, `...-assets.md` orphaned); merged the unique content of the orphan into the indexed file and deleted the orphan. Added the post-run fix note (seeded `inventory_low_stock_check` task had no taskRunner case \u2014 fixed in 7aff639) since neither agent run recorded it, and corrected the final test count (4099).\\n- **MEMORY.md** \u2014 \u00a714 index line.\\n\\n\ud83e\udd16 Generated with [Claude Code](https://claude.com/claude-code)\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-fe0262a001c2a796\",\n    \"filename\": \".claude/agent-memory/fullstack-autonomous-engineer/MEMORY.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"modified\",\n    \"additions\": 1,\n    \"deletions\": 0,\n    \"changes\": 1,\n    \"blob_url\": \"https://github.com/vothalvino/fireisp5.0/blob/cbd37b89ce3cac40a56d551bd03ccb2c00baed93/.claude%2Fagent-memory%2Ffullstack-autonomous-engineer%2FMEMORY.md\"\n  },\n  {\n    \"id\": \"github-pr-file-file-b77d1cee3e0e8504\",\n    \"filename\": \".claude/agent-memory/fullstack-autonomous-engineer/section14-inventory-asset.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"added\",\n    \"additions\": 54,\n    \"deletions\": 0,\n    \"changes\": 54,\n    \"blob_url\": \"https://github.com/vothalvino/fireisp5.0/blob/cbd37b89ce3cac40a56d551bd03ccb2c00baed93/.claude%2Fagent-memory%2Ffullstack-autonomous-engineer%2Fsection14-inventory-asset.md\"\n  }\n]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-7056364d0ad94796\"]\nSource graph evidence:\nSource evidence repo grap\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-5d3d0120ec5b0470", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439834, "scanner": "foundry_dataset", "fingerprint": "69be951624f4a21cc62d302041a5b05766a8f10abe3495173d56f664861820ff", "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": "vothalvino/fireisp5.0#257", "human_labels": ["api_or_backend", "data_schema_persistence", "docs_or_claims", "schema_or_data", "test_or_ci", "ui_or_frontend"], "issue_number": "257", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-9e1baee401b89c12", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 37, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 5, "api_or_backend": 6, "docs_or_claims": 2, "schema_or_data": 11, "ui_or_frontend": 13}, "linked_commit_count": 5, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#257\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#257\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 37\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 2, 'schema_or_data': 11, 'api_or_backend': 6, 'ui_or_frontend': 13, 'test_or_ci': 5}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-a4bac8d49bd34358\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/257\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/257\\nTitle: feat: \u00a714 Inventory & Asset Management \u2014 warehouses, catalog, POs, vendors, assets, RMA\\nBody:\\nImplements all 17 items of \u00a714 (14.1 Stock Management, 14.2 Lifecycle, 14.3 Assignment) of isp-platform-features.md.\\n\\n## Database (migrations 305\u2013307, rollbacks included)\\n- **305** \u2014 6 new tables: `vendors`, `purchase_orders`, `purchase_order_items`, `assets`, `asset_assignments`, `rma_requests` (builds on existing `warehouses`/`inventory_items`). Tables: 254 \u2192 260.\\n- **306** \u2014 20 permissions across vendors/purchase_orders/assets/rma modules, assigned to admin/technician/readonly.\\n- **307** \u2014 `inventory_low_stock_check` hourly scheduled task, with a real `taskRunner.js` handler calling `assetService.getLowStockItems` (no-op task defect caught in orchestrator sweep and fixed).\\n\\n## Backend\\n- 4 new route files: `vendors.js` (6), `purchaseOrders.js` (11), `assets.js` (17 \u2014 stats, low-stock, scan, barcode, depreciation, assign/unassign/swap, dispose, RMA links), `rmaRequests.js` (9 \u2014 ship/receive/close \"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-044b6303146fae44\",\n    \"filename\": \"README.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"modified\",\n    \"additions\": 15,\n    \"deletions\": 3,\n    \"changes\": 18,\n    \"blob_url\": \"https://github.com/vothalvino/fireisp5.0/blob/7aff6398af9d6097642f5d1c8a0f9ed89781c88a/README.md\"\n  },\n  {\n    \"id\": \"github-pr-file-file-45b489fb50393823\",\n    \"filename\": \"database/migrations/305_inventory_asset_management_tables.sql\",\n    \"label\": \"schema_or_data\",\n    \"status\": \"added\",\n    \"additions\": 225,\n    \"deletions\": 0,\n    \"changes\"\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-0e32cbd421e1d9cc", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439833, "scanner": "foundry_dataset", "fingerprint": "3033831fa8e9876f93e2cb3734c98ef723ebcec0211a72edcfb831f942f2ec1a", "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": "vothalvino/fireisp5.0#255", "human_labels": ["data_schema_persistence"], "issue_number": "255", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-0c1f83468664185e", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#255\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#255\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-714e298eef6ce114\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/255\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/255\\nTitle: feat: \u00a713 Topology & Mapping \u2014 network graph, geographic layers, geofences, dependency analysis\\nBody:\\n## Summary\\n\\n- **\u00a713.1 Network Topology Map**: interactive device graph with link polylines colored by utilization (green/yellow/red), layer switching (physical/logical/wireless), device search\\n- **\u00a713.2 Geographic Mapping**: customer location pins, service area polygons, coverage heatmaps, fiber route segments, infrastructure pins (tower/junction/PoP), geofencing alerts via haversine+ray-cast evaluation (scheduled every 10 min)\\n- **\u00a713.3 Dependency Mapping**: parent-child dependency edges, cascade chain visualization, impact analysis, redundancy display (dual-homed devices), dependency edge CRUD\\n\\n## Changes\\n\\n### Database (migrations 302-304)\\n- `302`: 4 new tables \u2014 `map_geofences`, `map_infrastructure_points`, `fiber_route_segments`, `device_dependency_edges`; adds `latitude`, `longitude`, `parent_device_id` to `devices`\\n- `303`: 12 permissions seeded across topology/mapping/geofences modul\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-2d6f071e8433f6da\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-cd390bdd64a65fe0", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439832, "scanner": "foundry_dataset", "fingerprint": "de4c55b1720079636e28069f86d15a40fab9759b63b74476745327b7dcf2368c", "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": "vothalvino/fireisp5.0#254", "human_labels": ["data_schema_persistence"], "issue_number": "254", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.92, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-22764ad3d9b44d4e", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#254\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#254\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-9d7be846bd230b11\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/254\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/254\\nTitle: feat: \u00a712 Ticketing & NOC \u2014 ticket extensions, NOC dashboard, work orders, technician tracking\\nBody:\\n## Section 12 \u2014 Ticketing & NOC\\n\\nImplements \u00a712 of `isp-platform-features.md` (25/28 items; 3 deferred, see below).\\n\\n### Database (migrations 297\u2013301, tables 242 \u2192 250)\\n- `297` ticketing/NOC tables: `ticket_time_logs`, `ticket_relations`, `ticket_ai_triage`, `work_orders`, `work_order_materials`, `technician_gps_breadcrumbs` (+ `tickets.source` ENUM via guard)\\n- `298` 14 NOC/ticket permissions; `299` `sla_breach_check` scheduled task (handler wired in taskRunner); `300`/`301` ticket + work-order attachment tables\\n- All five ship rollback files in `database/rollbacks/`\\n\\n### Backend\\n- **\u00a712.1:** ticket source tracking (manual/alert/portal/ai_escalated), create-from-alert, AI pre-processing on creation (triage: suggested category/priority/resolution + KB suggestions, graceful no-LLM degradation), AI thread summarization, merge + relations, internal notes, time logs, attachments (multer, 20 MB),\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-d6b2504daae27a6e\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-915b475d79ffe797", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439831, "scanner": "foundry_dataset", "fingerprint": "661518c19c1003f4caa4f5aab76b189ccf854aa5e9ef2932d6a00622dc5c3f74", "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": "vothalvino/fireisp5.0#242", "human_labels": ["test_ci_gap"], "issue_number": "242", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-1da0f9a345f9dad0", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#242\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#242\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-8828d6a99d4ea8c7\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/242\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/242\\nTitle: fix(test): resolve cold-start waitFor timeout in aiSuggestedReply first test\\nBody:\\nThe `frontend-test` CI job was failing intermittently on the first test in `aiSuggestedReply.test.tsx` \u2014 the only test that ran in a completely cold JSDOM environment across 78 parallel vitest workers. Cold-start overhead (module imports, React Query init, JSDOM setup) pushed the render time past `@testing-library`'s default 1 000 ms `waitFor` ceiling; tests 2\u201315 in the same file always passed because the environment was already warm by then.\\n\\n## Change\\n\\n**`frontend/src/pages/__tests__/aiSuggestedReply.test.tsx`**\\n\\n- Added a staged wait that mirrors the pattern already used in test 2: first await the ticket title (fast, confirms component has mounted), then await the AI panel heading.\\n- Set explicit `{ timeout: 3000 }` on each `waitFor` to absorb CI load spikes without masking real regressions.\\n\\n```diff\\n- await waitFor(() => {\\n-   expect(screen.queryByText(/AI Suggested Reply/i)).toBeTruthy();\\n- });\\n+ // Wait for ticket to l\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-1c5037b4039fabf3\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-165120982df15ff6", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439830, "scanner": "foundry_dataset", "fingerprint": "d121e5a7af09a0865269a1db22664162039f5665f2d21862826848f630ceacb0", "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": "vothalvino/fireisp5.0#241", "human_labels": ["test_ci_gap"], "issue_number": "241", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-2c6bcadeff4d72af", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#241\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#241\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-0425cd59d7a04c11\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/241\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/241\\nTitle: fix(ci): remove MySQL server flags from dast service container options\\nBody:\\nThe `dast` job fails immediately at \\\"Initialize containers\\\" because MySQL daemon startup flags were placed in the service container `options:` block, which GitHub Actions passes verbatim to `docker create` \u2014 a context where they are invalid.\\n\\n## Root cause\\n\\n```yaml\\n# BEFORE \u2014 docker create receives unknown flags and exits 125\\noptions: >-\\n  --character-set-server=utf8mb4        # MySQL flag \u2260 docker create flag\\n  --collation-server=utf8mb4_unicode_ci\\n  --host-cache-size=0\\n  --health-cmd=\\\"mysqladmin ping --silent\\\"\\n  ...\\n```\\n\\n```\\nunknown flag: --character-set-server\\nExit code 125 returned from process: /usr/bin/docker create ...\\n```\\n\\n## Fix\\n\\nRemove the three MySQL-specific flags. MySQL 8.4 already defaults to `utf8mb4` / `utf8mb4_unicode_ci`, making them redundant. Retain the Docker-compatible health-check options.\\n\\n```yaml\\n# AFTER \u2014 only valid docker create flags remain\\noptions: >-\\n  --health-cmd=\\\"mysqladmin ping --silent\\\"\\n  --healt\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-a8ec2697603a420d\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-97314e30ed350ee9", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439829, "scanner": "foundry_dataset", "fingerprint": "a75d427195c9a00f22826d97e3c55c1d1b88f88a917a7b70c8dd1f84cd0a4e48", "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": "vothalvino/fireisp5.0#238", "human_labels": ["test_ci_gap"], "issue_number": "238", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.592, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-a2935057edb029af", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 1, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#238\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#238\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-649a411dd01f8587\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/238#issuecomment-4676714296\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/238#issuecomment-4676714296\\nTitle: \\nBody:\\nNote: retargeted to main so CI runs (workflow only triggers on PRs against main). Until #237 merges, the diff shows sections 2+3 combined; once #237 lands the diff collapses to section 3 only. Merge order still: #237 first, then this.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-46edfea362539174\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 6, \"designs\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"ci_contradiction_cluster\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-1a4123673442b10e", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439828, "scanner": "foundry_dataset", "fingerprint": "fd6f10f947e0c3d47a18cf98cc3c032abd9c1cbfd89849a3c70ecf11817e9be6", "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": "vothalvino/fireisp5.0#232", "human_labels": ["test_ci_gap"], "issue_number": "232", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-e4d1427936a2cbad", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#232\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#232\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-56c4aba46160e26b\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/232\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/232\\nTitle: fix: bump vitest and react-router-dom to patch high/critical audit vulnerabilities\\nBody:\\n`pnpm audit --audit-level=high` was failing CI due to two unpatched vulnerabilities in frontend dependencies.\\n\\n## Vulnerabilities fixed\\n\\n| Severity | Package | Advisory | Fix |\\n|---|---|---|---|\\n| Critical | `vitest` | [GHSA-5xrq-8626-4rwp](https://github.com/advisories/GHSA-5xrq-8626-4rwp) \u2014 arbitrary file read/execute via Vitest UI server | `^3.2.4` \u2192 `^3.2.6` |\\n| High | `react-router` | [GHSA-8x6r-g9mw-2r78](https://github.com/advisories/GHSA-8x6r-g9mw-2r78) \u2014 DoS via unbounded path expansion in `__manifest` | `react-router-dom ^7.14.2` \u2192 `^7.15.0` (resolves to `7.17.0`) |\\n\\n## Changes\\n\\n- **`frontend/package.json`**: bumped `vitest`, `@vitest/coverage-v8`, and `react-router-dom` to patched minimum versions\\n- **`pnpm-lock.yaml`**: regenerated; lock now pins `vitest@3.2.6` and `react-router@7.17.0`\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-1ff37b4fbe9ad900\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 6, \"designs\": 2, \"doc\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-8bf544f97aafcd59", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439827, "scanner": "foundry_dataset", "fingerprint": "c3eaf3fa53a7e60aa308e28d5c167202359a3c32cf429ab1df21082741ce9fd0", "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": "vothalvino/fireisp5.0#230", "human_labels": ["human_feedback_general"], "issue_number": "230", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.587, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-203447f0df23bc3a", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 4, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#230\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_needs_classification\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\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#230\nRepo: vothalvino/fireisp5.0\nThread label: thread_needs_classification\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 4\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'human_feedback_general': 1}\nPolarities: {'neutral': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-cfd7e5ee059112c7\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/230\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/230\\nTitle: Features check list\\nBody:\\n\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-3939d10fb18d7ef7\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 6, \"designs\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"ci_contradiction_cluster\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-385f6bb34ed26c8e", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439826, "scanner": "foundry_dataset", "fingerprint": "c70bcf1b681b77c2701882f0e3862d7b7cc77ecf761eca9330bedadd3aa40990", "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": "vothalvino/fireisp5.0#221", "human_labels": ["test_ci_gap"], "issue_number": "221", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-f2611dc15ba31dad", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#221\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#221\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-31a97c618da7e0c9\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/221\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/221\\nTitle: Fix quote\u2192invoice transaction atomicity; harden tenant pool lifecycle\\nBody:\\nThe quote\u2192invoice conversion opened a transaction but performed the invoice/item inserts through the model layer (`db.query` on the shared pool), so only the final quote `UPDATE` ran on the transaction connection \u2014 a rollback left orphaned invoices. Secondary review surfaced shutdown/leak/SSL robustness gaps in `database.js` and a style inconsistency in `ssoService`.\\n\\n### Priority 1 \u2014 quote\u2192invoice atomicity (`src/routes/quotes.js`)\\n- All writes now run on the single transaction `conn` via `conn.execute()`, matching `invoices.js`. A failure anywhere now rolls back the invoice and its items.\\n- Fixed latent bugs the model path masked: missing `invoice_number` (NOT NULL UNIQUE) and `due_date` (NOT NULL), invalid `status:'pending'` \u2192 `'issued'`, and item `amount` sourced from the generated `total` column (`quote_items` has no `amount`).\\n- Added a regression test asserting a post-insert failure leaves no orphaned invoice.\\n\\n```js\\nconst [\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-9b3642f5dcce5ac9\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"re\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-702fa89616760f33", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439825, "scanner": "foundry_dataset", "fingerprint": "c3241bb9c70573f8bdae749cb1071429e619086d5eb3f6457a2c7c5a04dabcc7", "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": "vothalvino/fireisp5.0#220", "human_labels": ["build_install_failure"], "issue_number": "220", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-3b1037692bb0b7e5", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#220\nOutcome: ambiguous_needs_more_evidence\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\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#220\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'build_install_failure': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-fb705815fbaa6f5e\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"build_install_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/220\",\n    \"text\": \"GitHub feedback: build_install_failure\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/220\\nTitle: Update container runtime dependencies to clear Trivy findings\\nBody:\\nTrivy was failing the container scan because the shipped image still included vulnerable Node packages from the production install graph. The failures came from `ws@8.20.0` and transitive `brace-expansion@5.0.5`.\\n\\n- **What changed**\\n  - bumped the runtime `ws` dependency to `^8.20.1`\\n  - added a pnpm override to force `brace-expansion` used by `minimatch@10` to `^5.0.6`\\n  - refreshed the lockfile so the container image resolves the patched versions\\n\\n- **Dependency graph impact**\\n  - updates the direct runtime path:\\n    - `ws: ^8.20.0 -> ^8.20.1`\\n  - updates the transitive path:\\n    - `minimatch@10 -> brace-expansion: 5.0.5 -> 5.0.6`\\n\\n- **Representative change**\\n  ```json\\n  {\\n    \\\"pnpm\\\": {\\n      \\\"overrides\\\": {\\n        \\\"minimatch@10>brace-expansion\\\": \\\"^5.0.6\\\"\\n      }\\n    },\\n    \\\"dependencies\\\": {\\n      \\\"ws\\\": \\\"^8.20.1\\\"\\n    }\\n  }\\n  ```\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-9bedee43882be9e9\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact f\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-c167f2eb2c0e4638", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439824, "scanner": "foundry_dataset", "fingerprint": "b46222330ff0701afe357d9f96ae4506c10798b87a2454c1e797ab20f50aa095", "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": "vothalvino/fireisp5.0#219", "human_labels": ["test_ci_gap"], "issue_number": "219", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-d3bcb8ce51078d5d", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#219\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#219\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-60354ca921484f76\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/219\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/219\\nTitle: Refresh README for current migration state and workspace workflow\\nBody:\\nThe README had drifted from the repository: the migration range was stale, the workspace layout was incomplete, and the local development flow no longer matched the pnpm-based multi-package setup. This updates the README so the top-level onboarding and structure references reflect the current codebase.\\n\\n- **README sync**\\n  - Updated the migration range in the project structure from `001\u2013182` to `001\u2013185`\\n  - Kept the schema table count aligned with the current `database/schema.sql`\\n\\n- **Workspace-aware project structure**\\n  - Reworked the structure summary to describe the repo as a pnpm workspace\\n  - Added the `e2e/` package and removed brittle per-directory file counts that were prone to drift\\n\\n- **Local development flow**\\n  - Switched source setup instructions to the current `corepack` + `pnpm` workflow\\n  - Split backend and frontend startup steps so local development matches the actual architecture\\n  - Added current local endpoints,\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-557d17ec7f7dcde5\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-d522259b0fedca96", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439823, "scanner": "foundry_dataset", "fingerprint": "ee4bc42c0c391632b91f79af007f5c87fff493fb39c068e28f50461d1e542475", "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": "vothalvino/fireisp5.0#218", "human_labels": ["data_schema_persistence"], "issue_number": "218", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-b0d9a7358a25db7e", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#218\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#218\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-ba2c5599ab1e76cd\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/218\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/218\\nTitle: Remove obsolete Compose `version` key from production stack config\\nBody:\\nDocker Compose v2 warns that the top-level `version` attribute is obsolete and ignored in `docker-compose.prod.yml`, which creates avoidable noise and confusion in ops output. This change updates the production compose file to align with the current Compose Spec.\\n\\n- **What changed**\\n  - Removed the top-level `version: '3.8'` declaration from `docker-compose.prod.yml`.\\n  - Kept all service, network, volume, and runtime settings unchanged.\\n\\n- **Why this matters**\\n  - Eliminates persistent warning output from Compose.\\n  - Makes the file reflect current Compose behavior (schema inferred, not version-pinned).\\n\\n```yaml\\n# before\\nversion: '3.8'\\nservices:\\n  ...\\n\\n# after\\nservices:\\n  ...\\n```\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-b7a241734b13d384\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 6, \"designs\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-e40a9c1722407572", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439822, "scanner": "foundry_dataset", "fingerprint": "767dbff10b68d46411a1457ca6ae46b8529cb7516a47c255fbd87699e17c02b7", "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": "vothalvino/fireisp5.0#217", "human_labels": ["human_feedback_general"], "issue_number": "217", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-4aa4eb83835032ab", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#217\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_needs_classification\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_unresolved\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#217\nRepo: vothalvino/fireisp5.0\nThread label: thread_needs_classification\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'human_feedback_general': 1}\nPolarities: {'neutral': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-cec10c5c5b7bb62e\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/217\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/217\\nTitle: Remove \\\"deep dive\\\" restrictions from ROADMAP\\nBody:\\nRemoves two references in `ROADMAP.md` that instructed contributors never to open a \\\"deep dive\\\" or \\\"next steps\\\" PR \u2014 one from the \\\"How to Use\\\" numbered rules and one from the \\\"Don't Do This\\\" table.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-63aaa32804a33568\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 6, \"designs\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"ci_contradiction_cluster\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-2dcffbca595da1de", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439821, "scanner": "foundry_dataset", "fingerprint": "50203d152894561cd18ce6fbc2433750d53c2b6962485f37475f1abe6de817ab", "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": "vothalvino/fireisp5.0#215", "human_labels": ["build_install_failure"], "issue_number": "215", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-2a1d20be69bdbade", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#215\nOutcome: ambiguous_needs_more_evidence\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\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#215\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'build_install_failure': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-0944ef88b473df1a\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"build_install_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/215\",\n    \"text\": \"GitHub feedback: build_install_failure\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/215\\nTitle: Harden runtime image by removing Corepack cache artifacts flagged by Trivy\\nBody:\\nTrivy was failing on vulnerable package-manager artifacts carried into the runtime image via Corepack cache, even though those files are not required at runtime. This update applies a minimal Dockerfile change to drop that cache from the final image while keeping the runtime dependency flow intact.\\n\\n- **Scope**\\n  - Runtime-stage Dockerfile only.\\n  - No application code or dependency manifest changes.\\n\\n- **Image hardening change**\\n  - Remove Corepack cache after production install/prune so scanner-visible vulnerable cache payloads are not present in the shipped image.\\n\\n- **Runtime behavior**\\n  - Preserves existing runtime install/prune behavior.\\n  - Reduces attack/scanner surface by excluding non-runtime package-manager cache content.\\n\\n```dockerfile\\nRUN pnpm install --frozen-lockfile --prod \\\\\\n  && pnpm store prune \\\\\\n  && rm -rf /root/.cache/node/corepack \\\\\\n  && corepack disable \\\\\\n  && rm -rf /usr/local/lib/node_module\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-f916a08093538925\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-1ff160c2bf8a6c2c", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439820, "scanner": "foundry_dataset", "fingerprint": "d31b672a0901a8a5b156e83aaf6c80429c889a1da0b15ced91ee69978bf941c3", "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": "vothalvino/fireisp5.0#213", "human_labels": ["human_feedback_general"], "issue_number": "213", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-3f5a060c065b38b6", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#213\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_needs_classification\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_unresolved\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#213\nRepo: vothalvino/fireisp5.0\nThread label: thread_needs_classification\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'human_feedback_general': 1}\nPolarities: {'neutral': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-a56ba41755c2c14d\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/213#issuecomment-4463743183\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: issue_comment\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/213#issuecomment-4463743183\\nTitle: \\nBody:\\nWhat does this change do exactly @copilot \"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-c86e1c7b4249d813\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 6, \"designs\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"ci_contradiction_cluster\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-e04b4427b350396e", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439819, "scanner": "foundry_dataset", "fingerprint": "6c57185447c88fa5534c3d2edacea54494d848870149512ddf7deada7c4ef075", "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": "vothalvino/fireisp5.0#212", "human_labels": ["human_feedback_general"], "issue_number": "212", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-95cf06276d97e51f", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#212\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_needs_classification\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_unresolved\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#212\nRepo: vothalvino/fireisp5.0\nThread label: thread_needs_classification\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'human_feedback_general': 1}\nPolarities: {'neutral': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-7684a9dbf3004c0c\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/212\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/212\\nTitle: Revert \\\"e2e: Assert payment row appears in table after recording\\\"\\nBody:\\nReverts vothalvino/fireisp5.0#210\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-0d2272691f85d9ad\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 6, \"designs\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"ci_contradiction_cluster\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-9391335192559e2e", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439818, "scanner": "foundry_dataset", "fingerprint": "5c6b03b490c348693769fc9c126bbcf33a55815996511501ae88710183ffa57a", "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": "vothalvino/fireisp5.0#211", "human_labels": ["runtime_failure"], "issue_number": "211", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.627, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-d756691e991f292c", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#211\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#211\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'runtime_failure': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-8ba15b98a19d44b0\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"runtime_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/211\",\n    \"text\": \"GitHub feedback: runtime_failure\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/211\\nTitle: fix: README install commands require sudo and correct env var piping\\nBody:\\nThe documented one-liner install commands had two bugs: missing `sudo` (the installer hard-aborts if `EUID != 0`), and env vars placed before `| bash` are scoped to the left side of the pipe and never reach the subshell.\\n\\n## Changes\\n\\n- `| bash` \u2192 `| sudo bash` \u2014 matches the root check in `install.sh`\\n- `| DOMAIN=x EMAIL=y bash` \u2192 `| sudo DOMAIN=x EMAIL=y bash` \u2014 vars placed before `sudo bash` are passed into the elevated shell correctly\\n\\n```bash\\n# before (broken \u2014 runs unprivileged, env vars lost)\\ncurl -fsSL https://.../install.sh | DOMAIN=isp.example.com EMAIL=admin@example.com bash\\n\\n# after\\ncurl -fsSL https://.../install.sh | sudo DOMAIN=isp.example.com EMAIL=admin@example.com bash\\n```\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-85cf032a9ea8f523\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 6, \"designs\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\"\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-1deb0992d0c10c32", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439817, "scanner": "foundry_dataset", "fingerprint": "9d0b46fefff1f79e5af3b300674806dee3b22860ed649ee95e12cc5ed6ab371e", "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": "vothalvino/fireisp5.0#209", "human_labels": ["test_ci_gap"], "issue_number": "209", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-42225efe0e166fcc", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#209\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#209\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-56d2043a9f029fe6\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/209\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/209\\nTitle: feat(e2e): dedicated record-payment Playwright test with UI + API save assertions\\nBody:\\nNo focused e2e coverage existed for the payment recording flow \u2014 the smoke test submitted the form but never verified the payment actually persisted.\\n\\n## Changes\\n\\n- **`e2e/tests/payment.spec.ts`** \u2014 new standalone Playwright test: `record payment and verify it saves`\\n  - Creates an isolated throwaway client via API (unique per run suffix)\\n  - Opens the Record Payment modal and fills all fields: client, amount (`75.50 USD`), method (`cash`), today's UTC date, and a unique reference folio (`E2E-PAY-<suffix>`)\\n  - **UI assertion**: unique reference text visible in the payments table after modal closes\\n  - **API assertion**: `GET /api/v1/payments` confirms the row exists with matching `amount` and `status: 'completed'`\\n  - Pre-dismisses the DR Drill banner via `sessionStorage` (same pattern as `smoke.spec.ts`) to prevent overlay interference\\n  - Extracts `SavedPayment` interface; uses an explicit `throw` instead of non-null\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-cc30e08a7c86fed9\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-39633982fd6e1aee", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439816, "scanner": "foundry_dataset", "fingerprint": "6c819c6796318d0a9770fe206e43229a25bbefb6da740a601aefcbe02e8d3d21", "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": "vothalvino/fireisp5.0#208", "human_labels": ["agent_instruction_gap", "api_integration_gap", "data_schema_persistence", "human_feedback_general", "runtime_failure", "security_auth_secret", "test_ci_gap"], "issue_number": "208", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-f6d288c2b062fe24", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 75, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#208\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#208\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 32\nLinked commit count: 75\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'agent_instruction_gap': 2, 'test_ci_gap': 17, 'human_feedback_general': 7, 'security_auth_secret': 2, 'data_schema_persistence': 1, 'api_integration_gap': 1, 'runtime_failure': 2}\nPolarities: {'bad': 25, 'neutral': 7}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-27f84c73aa120a72\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/208#issuecomment-4410817762\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/208#issuecomment-4410817762\\nTitle: \\nBody:\\nCan you create a fix for me for the e2e test errorP @copilot+claude-sonnet-4.6 \"\n  },\n  {\n    \"id\": \"github-feedback-comment-51636b9608f916cf\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/208#issuecomment-4410836625\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/208#issuecomment-4410836625\\nTitle: \\nBody:\\n\\n> Can you create a fix for me for the e2e test errorP @copilot+claude-sonnet-4.6 \\n\\nFixed in commit `17ee9fc`.\\n\\nThe CI log showed:\\n```\\nError: Create client failed: {\\\"error\\\":{\\\"code\\\":\\\"FORBIDDEN\\\",\\\"message\\\":\\\"CSRF check failed: invalid or missing CSRF token\\\"}}\\n```\\n\\nRoot cause: Playwright's `APIRequestContext` stores cookies set by the server across requests. After `apiLogin`, the `fireisp_csrf_secret` and `fireisp_csrf` cookies were in the jar and got automatically sent with `apiCreateClient`. The CSRF middleware sees the auth cookie, finds the CSRF secret, and requires `X-CSRF-Token` \u2014 but the test never set that header.\\n\\nFix: `apiLogin` now calls `request.storageState()` after login to read the `fireisp_csrf` cookie, and returns `{ token, csrfToken }`. `apiCreateClient` accepts and forwards the CSRF token as the `X-CSRF-Token` header on the `POST /api/v1/clients` call.\"\n  },\n  {\n    \"id\": \"github-feedback-comment-8d879b1\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-692f9a8a02272a10", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439815, "scanner": "foundry_dataset", "fingerprint": "848b29d7d29a7e757e7ddc8f0b37bc1304a5087f18aae1b7f520961c674d3cbe", "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": "vothalvino/fireisp5.0#204", "human_labels": ["deployment_env_gap"], "issue_number": "204", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.587, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-3362a97bf5b341eb", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 4, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#204\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#204\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 4\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'deployment_env_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-7a9cb380d44e5e5a\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/204\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/204\\nTitle: .env automation\\nBody:\\n\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-1c16455372d83d82\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 6, \"designs\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"ci_contradiction_cluster\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-84e2c086c324f3e6", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439814, "scanner": "foundry_dataset", "fingerprint": "09c7c89ed526535224afeae6bb17f03f9fcf6598f066886b61b6ab0727fd6eeb", "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": "vothalvino/fireisp5.0#200", "human_labels": ["runtime_failure"], "issue_number": "200", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-b9df4c56e13070a4", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#200\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#200\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'runtime_failure': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-ac2f17e11938e7b9\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"runtime_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/200\",\n    \"text\": \"GitHub feedback: runtime_failure\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/200\\nTitle: fix: installer never starts containers when Let's Encrypt bootstrap fails\\nBody:\\n`install.sh` uses `set -euo pipefail`, so any failure in `init-letsencrypt.sh` (DNS not yet resolving, port 80 blocked, certbot rate-limit) causes the installer to exit before `docker compose up -d --build` is ever reached \u2014 leaving zero containers created.\\n\\nSecondary: `nginx:1.27-alpine` ships the OpenSSL libraries but not the `openssl` CLI binary, so the nginx service's cert-generation fallback silently fails on any server where certs aren't pre-populated, causing nginx to crash on startup.\\n\\n## Changes\\n\\n- **`install.sh` \u2014 non-fatal TLS bootstrap**\\n  - Wrapped `init-letsencrypt.sh` call in `if/else` instead of letting `set -e` kill the install\\n  - On failure: atomically cleans up the partial nginx container (`docker compose rm -sf`), recovers `nginx.conf` if the bootstrap backup was left behind, generates a self-signed fallback cert (with visible error output), then always proceeds to `docker compose up -d --build`\\n  - Use\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-186962af29685e21\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-b5f082389bd623b7", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439813, "scanner": "foundry_dataset", "fingerprint": "fe25d197abbd6552779bcf81cebf4fed2a0563c5b06f72b8633fd1b0de8d83c3", "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": "vothalvino/fireisp5.0#198", "human_labels": ["deployment_env_gap"], "issue_number": "198", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.662, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-848c63e16d9dd3c2", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#198\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#198\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'deployment_env_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-232dba7f67a35b73\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/198\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/198\\nTitle: fix: nginx stays unhealthy \u2014 port-80 healthz + self-signed cert fallback\\nBody:\\nnginx never listens on `0.0.0.0:80` because (a) the production config requires TLS cert files at startup \u2014 absent files cause an immediate exit/restart loop \u2014 and (b) even when running, the port-80 block 301-redirects `/healthz` to HTTPS, so the healthcheck always fails.\\n\\n## Changes\\n\\n### `nginx/nginx.conf`\\n- Added `location /healthz` to the port-80 server block returning `200 ok` directly, bypassing the HTTPS redirect so the Docker healthcheck resolves without TLS.\\n\\n```nginx\\nlocation /healthz {\\n    access_log  off;\\n    return 200  \\\"ok\\\\n\\\";\\n    add_header  Content-Type text/plain;\\n}\\n```\\n\\n### `docker-compose.prod.yml`\\n- **Self-signed cert bootstrap**: nginx `command` now runs a startup script that generates a temporary self-signed cert when `fullchain.pem`/`privkey.pem` are absent. nginx starts immediately; `init-letsencrypt.sh` / certbot overwrites the cert later.\\n- **Removed `:ro`** from the `./nginx/certs` volume mount \u2014 \"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-3b82d963f702a643\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_ha\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-acdb02667cae6023", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439812, "scanner": "foundry_dataset", "fingerprint": "0d2a8391f18515017b1ca02cd3ac46ea4c24a8efbda260afac0123a67a63e1f7", "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": "vothalvino/fireisp5.0#195", "human_labels": ["deployment_env_gap"], "issue_number": "195", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-f5c41d2e7e75d9e6", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#195\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#195\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'deployment_env_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-d29f9f3465150e68\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/195\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/195\\nTitle: Fix misleading \\\"nginx failed to start \u2014 check nginx.conf for syntax errors\\\" during install\\nBody:\\n`nginx/init-letsencrypt.sh` aborts during the TLS bootstrap with a \\\"syntax errors\\\" message, but `nginx.conf` is valid. The actual failure is `[emerg] host not found in upstream \\\"app:3000\\\"`: the script starts nginx with `--no-deps`, while the production config declares `upstream app { server app:3000; }`, which open-source nginx resolves at startup \u2014 and `app` isn't running yet. The script's `nginx -t >/dev/null 2>&1` discards the real reason.\\n\\n### Changes\\n\\n- **`nginx/nginx.bootstrap.conf` (new)** \u2014 minimal port-80-only config serving just the ACME webroot. No `upstream{}`, no TLS server, so it boots without `app` and without certs.\\n- **`nginx/init-letsencrypt.sh`**\\n  - Swaps `nginx.conf` \u2194 `nginx.bootstrap.conf` under an `EXIT` trap that always restores the original (even on abort/Ctrl-C).\\n  - `up -d --force-recreate` so a leftover container from a previous failed run picks up the swapped config.\\n  - On \"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-7d3a29aad9620f6c\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_sour\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-a1f05fb49825736b", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439811, "scanner": "foundry_dataset", "fingerprint": "acf30e808a2ffeff057d5142601b48889b4afbdd8127ee5981abca0d8ef59743", "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": "vothalvino/fireisp5.0#194", "human_labels": ["deployment_env_gap"], "issue_number": "194", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.592, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-4c1c6348ca3083a1", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 3, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#194\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#194\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 3\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'deployment_env_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-36a316855d0a0c66\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/194\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/194\\nTitle: fix: prevent SSH disconnection during TLS certificate bootstrap\\nBody:\\nTwo bugs in the installer caused SSH sessions to drop during Let's Encrypt cert issuance, leaving nginx never started.\\n\\n## Root causes\\n\\n- **TTY hijack** \u2014 `docker compose run --rm certbot certonly` (no `-T`) attempts PTY allocation. Over a piped shell (`curl | bash`) Docker can't allocate the PTY and tears down the SSH session.\\n- **Premature full-stack build** \u2014 `docker compose up -d nginx` follows the `depends_on` chain: `nginx \u2192 app \u2192 db-primary (healthy) + redis (healthy)`. This triggered a full Docker image build during the cert step, blocking for several minutes with no terminal heartbeat \u2014 enough to hit any SSH idle timeout.\\n\\n## Changes\\n\\n- **`nginx/init-letsencrypt.sh`**\\n  - `docker compose run --rm -T certbot certonly` \u2014 `-T` disables PTY allocation\\n  - `docker compose up --no-deps -d nginx` \u2014 starts nginx in isolation; nginx can serve the ACME webroot without the upstream app running\\n\\n- **`install.sh`**\\n  - Added early `$S\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-5b89261cef9f2663\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_sour\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-fb4b602c595843d2", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439810, "scanner": "foundry_dataset", "fingerprint": "52071a7e4dd096f90f53b579974c9e46126689174689681f615ed46c62047fad", "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": "vothalvino/fireisp5.0#193", "human_labels": ["deployment_env_gap"], "issue_number": "193", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-5f90cee4ea37192a", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#193\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#193\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'deployment_env_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-61ba4ad7c9cdd254\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/193\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/193\\nTitle: fix(install): auto-install all prerequisites on fresh Ubuntu \u2014 no manual Docker setup required\\nBody:\\n`install.sh` was hard-failing (`die`) when Docker, Docker Compose, git, or openssl weren't present, requiring the owner to manually pre-install everything before the installer could run.\\n\\n## Changes\\n\\n- **Root check** \u2014 fails early with a clear message if not invoked via `sudo`/root\\n- **OS detection** \u2014 reads `/etc/os-release`; warns on non-Ubuntu/Debian but continues\\n- **Auto-install `curl`, `git`, `openssl`** \u2014 via `apt-get` if missing; lazy `apt-get update` runs at most once\\n- **Auto-install Docker CE** from Docker's official apt repo:\\n  - Purges conflicting distro packages (`docker.io`, old `containerd`, etc.)\\n  - Adds Docker GPG key + stable apt source\\n  - Installs `docker-ce`, `docker-ce-cli`, `containerd.io`, `docker-buildx-plugin`, `docker-compose-plugin`\\n- **Auto-start Docker daemon** \u2014 `systemctl enable docker --now`, polls socket up to 30 s\\n- **Auto-install Docker Compose plugin** \u2014 if `doc\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-51a82348357f1bd1\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-40180c465617f45b", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439809, "scanner": "foundry_dataset", "fingerprint": "5fca0ef5ebfed14611c834cf3c38ac4cdf71bd654c9483007818554a5115a33f", "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": "vothalvino/fireisp5.0#186", "human_labels": ["human_feedback_general"], "issue_number": "186", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-0dd316cf25127fe7", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#186\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_needs_classification\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_unresolved\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#186\nRepo: vothalvino/fireisp5.0\nThread label: thread_needs_classification\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'human_feedback_general': 1}\nPolarities: {'neutral': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-d775b366d478131c\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/186\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/186\\nTitle: Deleted the item of Buro de credito\\nBody:\\nNo buro de credito\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-18ae8f285d62b678\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 6, \"designs\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"ci_contradiction_cluster\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-a85767cfbf54fadb", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439808, "scanner": "foundry_dataset", "fingerprint": "1480ecf2a98709684de841415ddbc4d0298c94f946a4504f85b8cb2d7e70dca6", "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": "vothalvino/fireisp5.0#183", "human_labels": ["build_install_failure", "test_ci_gap"], "issue_number": "183", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-5858b8d4e0252300", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#183\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#183\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 3\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'build_install_failure': 1, 'test_ci_gap': 2}\nPolarities: {'bad': 3}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-a21113570e82d4ec\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"build_install_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/183\",\n    \"text\": \"GitHub feedback: build_install_failure\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/183\\nTitle: P3.10: Migrate npm \u2192 pnpm@10 workspace\\nBody:\\nReplaces the three separate `package-lock.json` files (root, `frontend/`, `e2e/`) with a single `pnpm-lock.yaml` managed by a pnpm workspace, cutting CI install time via pnpm's content-addressable store and strict dependency resolution.\\n\\n## Package manager\\n\\n- `\\\"packageManager\\\": \\\"pnpm@10.33.2\\\"` pinned in root `package.json`; `engines.pnpm >=10.0.0` added\\n- `pnpm-workspace.yaml` \u2014 declares `frontend` and `e2e` as workspace packages\\n- `.npmrc` \u2014 `auto-install-peers=true`; lifecycle scripts restricted to `onlyBuiltDependencies` whitelist (`esbuild`, `msgpackr-extract`, `unrs-resolver` \u2014 native binaries required by Vite/Vitest)\\n- `overrides` block converted to `pnpm.overrides` with pnpm's nested-override syntax:\\n  ```json\\n  \\\"pnpm\\\": {\\n    \\\"overrides\\\": {\\n      \\\"glob\\\": \\\"^13.0.6\\\",\\n      \\\"test-exclude>glob\\\": \\\"^7.2.0\\\"\\n    }\\n  }\\n  ```\\n\\n## CI (`.github/workflows/ci.yml`)\\n\\nAll three jobs (`lint-and-test`, `frontend-test`, `dast`) updated:\\n- `pnpm/action-setup@v4` ad\"\n  },\n  {\n    \"id\": \"github-feedback-comment-6f44bce94f9cc7c4\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/183#issuecomment-4337848346\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/183#issuecomment-4337848346\\nTitle: \\nBody:\\nPlease make me a fix for the problem the CI encountered with Container scan @copilot+gpt-5.4 \"\n  },\n  {\n    \"id\": \"github-feedback-comment-91e12e549bdb3629\",\n    \"kind\": \"issue_commen\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-9cf76cb69353c6c8", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439807, "scanner": "foundry_dataset", "fingerprint": "b559d4417cc7c3e3e7a44347eaacea5c16ae9a17283bbae90bb9dfcc15353824", "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": "vothalvino/fireisp5.0#180", "human_labels": ["test_ci_gap"], "issue_number": "180", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-237d4acb2f9f91ee", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#180\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#180\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-284f0b012d97bd88\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/180\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/180\\nTitle: P3.6 \u2014 Frontend dark mode\\nBody:\\nThe frontend had no dark mode support \u2014 all pages used hardcoded hex colors in inline JS style objects with no theming layer.\\n\\n## Core infrastructure\\n\\n- **`DarkModeContext.tsx`** \u2014 `ThemePreference` (`'light' | 'dark' | 'system'`) stored in `localStorage` (`fireisp_theme`); resolves `'system'` via `prefers-color-scheme` media query; applies `data-theme` attribute to `<html>` reactively; exposes `useDarkMode()` with `{ theme, effectiveTheme, setTheme, toggleTheme }`\\n- **`index.css`** \u2014 16 CSS custom property tokens defined in `:root` and overridden in `[data-theme=\\\"dark\\\"]`; `color-scheme` toggled for native form-element adaptation\\n\\n```css\\n:root          { --bg-card: #ffffff; --text-primary: #111827; --border: #e5e7eb; \u2026 }\\n[data-theme=\\\"dark\\\"] { --bg-card: #161b22; --text-primary: #e6edf3; --border: #30363d; \u2026 }\\n```\\n\\n## Component wiring\\n\\n- `App.tsx` \u2014 `DarkModeProvider` added as outermost wrapper\\n- `Layout.tsx` / `PortalLayout.tsx` \u2014 \u2600\ufe0f/\ud83c\udf19 toggle button added (sidebar user area \"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-10e7fcbc97c549a8\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifa\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-04731f3f8af4777e", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439806, "scanner": "foundry_dataset", "fingerprint": "cb2d06ac21e8984457802c5587666eed908b9e074a1a4e9e7e59b4ad49dbde76", "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": "vothalvino/fireisp5.0#177", "human_labels": ["data_schema_persistence"], "issue_number": "177", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-f2ec82c212ba5a2b", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#177\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#177\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-a11166dd016836c5\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/177\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/177\\nTitle: P3.3: GraphQL gateway \u2014 org-scoped resolvers, ClientDetail single-query rewrite\\nBody:\\nAdds a GraphQL endpoint (`/api/v1/graphql`) powered by graphql-yoga v5, eliminating the 5+ parallel REST calls that `ClientDetail` fired on every page load. All queries are org-scoped at the resolver level via `ctx.orgId`.\\n\\n## Backend\\n\\n- **`src/graphql/typeDefs.js`** \u2014 SDL schema: 12 types (`Client`, `Contract`, `Invoice`, `InvoiceItem`, `AppliedPayment`, `Payment`, `Device`, `LedgerEntry`, `Contact`, `Ticket`, `TicketComment`) + `Query` root\\n- **`src/graphql/resolvers.js`** \u2014 Lazy nested field resolvers; all root queries filter by `ctx.orgId`; list queries clamped to `MAX_LIMIT=200`; snake_case DB columns mapped to camelCase\\n- **`src/graphql/index.js`** \u2014 `yoga.requestListener` wrapped in try/catch and mounted as Express middleware\\n- **`src/app.js`** \u2014 `authenticate` + `orgScope` imported at app level; endpoint wired as `v1.use('/graphql', authenticate, orgScope, graphqlMiddleware)`\\n- **`src/middleware/saniti\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-d81b12bf46ce5075\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-60f7de9c656ece59", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439805, "scanner": "foundry_dataset", "fingerprint": "f1e3f96f648501db0657cd2e62696dbcd097b9c61f5efdec806d70b4c184beed", "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": "vothalvino/fireisp5.0#176", "human_labels": ["runtime_failure"], "issue_number": "176", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.662, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-c05f6182000e7002", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#176\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#176\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'runtime_failure': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-ed1d87a1f8ce8593\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"runtime_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/176\",\n    \"text\": \"GitHub feedback: runtime_failure\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/176\\nTitle: P3.2: Add pre-commit hooks via husky + lint-staged\\nBody:\\nImplements ROADMAP_PRODUCTION.md P3.2. Without pre-commit enforcement, contributors can commit ESLint violations or broken TypeScript that CI catches only after push.\\n\\n## Changes\\n\\n- **`husky@^9` + `lint-staged@^16`** added as root devDependencies; `\\\"prepare\\\": \\\"husky\\\"` ensures hooks are installed on every `npm ci`\\n- **`.husky/pre-commit`** \u2014 runs `npx lint-staged`\\n- **`.lintstagedrc.cjs`** \u2014 two rule sets:\\n  - `src/**/*.js` \u2192 `eslint --fix` (auto-corrects style; aborts on unfixable violations)\\n  - `frontend/src/**/*.{ts,tsx}` \u2192 **function** returning `gen:api && tsc --noEmit`; function form suppresses lint-staged's default file-argument appending so `tsc` checks the full project (not individual files, which it ignores in project mode) and always has an up-to-date `schema.d.ts`\\n\\nEmergency bypass: `git commit --no-verify`.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-6abc5d261a2c540f\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 6, \"designs\": 2,\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-fecba801aa8561eb", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439804, "scanner": "foundry_dataset", "fingerprint": "03bb216c64e15b001c917e6986def6aca379ea1b4bc36bf2d23e7875f9b5e66a", "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": "vothalvino/fireisp5.0#174", "human_labels": ["data_schema_persistence", "security_auth_secret", "test_ci_gap"], "issue_number": "174", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-97a2480ffaeea14f", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 15, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#174\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#174\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 7\nLinked commit count: 15\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'data_schema_persistence': 1, 'test_ci_gap': 5, 'security_auth_secret': 1}\nPolarities: {'bad': 7}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-9d82bb30473f4232\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/174\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/174\\nTitle: Add per-tenant database isolation support\\nBody:\\n- [x] Audit README vs current codebase state\\n- [x] Update features list (BullMQ background jobs + tenant DB isolation)\\n- [x] Update project structure counts (models 89\u219291, routes 69\u219278, services 25\u219239, migrations 166\u2192167, tables 115\u2192116, tests 65\u2192123, add workers/ dir)\\n- [x] Add database table 116 (organization_database_configs)\\n- [x] Add migration 167 note\\n- [x] Add MIGRATE_ISOLATED_TENANTS command to useful commands\\n- [x] Update docs reference list\"\n  },\n  {\n    \"id\": \"github-feedback-comment-71bc1a792f22b3a1\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/174#issuecomment-4329533722\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/174#issuecomment-4329533722\\nTitle: \\nBody:\\n@copilot+gpt-5.4 Can you please help me fix the CI problem?\"\n  },\n  {\n    \"id\": \"github-feedback-comment-8a04b1bc1b77ac37\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/174#issuecomment-4329573564\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/174#issuecomment-4329573564\\nTitle: \\nBody:\\n\\n> @copilot+gpt-5.4 Can you please help me fix the CI problem?\\n\\nFixed in 8e1cba4. The failing CI job was `lint-and-test`: ESLint was rejecting two `eqeqeq` violations\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-c121073246ff5dd6", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439803, "scanner": "foundry_dataset", "fingerprint": "9b016c3a7160ff6d2c43ec427b370c98ce0f909c80371ba254fae1f7df387f2d", "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": "vothalvino/fireisp5.0#172", "human_labels": ["data_schema_persistence"], "issue_number": "172", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-06e96620ee1cd035", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#172\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#172\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-82057e2117f8b7e7\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/172\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/172\\nTitle: docs: bring README up to speed with migrations 165\u2013166\\nBody:\\nREADME was stale \u2014 didn't reflect the two migrations added after 164 (SSO configs, per-tenant quotas), leaving the table count, migration range, features list, and migration notes all behind.\\n\\n## Changes\\n\\n- **Project Structure**: migration range `001\u2013164` \u2192 `001\u2013166`; schema table count `111` \u2192 `115`\\n- **Features list**: two new bullets \u2014 SAML 2.0/OIDC SSO (per-org IdP, auto-provisioning, group\u2192role mapping) and per-tenant resource quotas\\n- **Database Tables**: four new entries (112\u2013115) \u2014 `organization_sso_configs`, `organization_sso_group_mappings`, `sso_auth_states`, `organization_quotas`\\n- **Migration notes**: detailed callouts added for migration 165 (three SSO tables) and migration 166 (`organization_quotas`, `checkQuota` middleware enforcement)\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-ae7f3fc5ac0d254f\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 6, \"designs\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schem\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-bc67cc35a64299f1", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439802, "scanner": "foundry_dataset", "fingerprint": "a1c0d51b9cf74ba4d3ee7817a81d5d7921809e899faeb9a3e08e7b73cd0c4533", "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": "vothalvino/fireisp5.0#170", "human_labels": ["human_feedback_general"], "issue_number": "170", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.662, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-67f35844765c9742", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 3, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#170\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_needs_classification\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\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#170\nRepo: vothalvino/fireisp5.0\nThread label: thread_needs_classification\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 3\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'human_feedback_general': 1}\nPolarities: {'neutral': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-df0ad0978a324a7b\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/170\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/170\\nTitle: fix(quotaService): replace template literals with single-quoted strings\\nBody:\\nThree SQL strings in `getUsage()` used unnecessary template literals, failing the `quotes` ESLint rule enforcing single quotes.\\n\\n## Changes\\n- **`src/services/quotaService.js`**: Converted backtick template literals to single-quoted strings for the `clients`, `devices`, and `scheduled_tasks` count queries\\n\\n```js\\n// Before\\ndb.query(`SELECT COUNT(*) AS cnt FROM clients WHERE organization_id = ? AND deleted_at IS NULL`, [orgId])\\n\\n// After\\ndb.query('SELECT COUNT(*) AS cnt FROM clients WHERE organization_id = ? AND deleted_at IS NULL', [orgId])\\n```\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-ede68ef60c22235b\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 6, \"designs\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"ci_contradiction_cluster\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-0d20a69ce9614ffb", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439801, "scanner": "foundry_dataset", "fingerprint": "9342a1dc239324ade933637d73e36fa910ed20ebdbbea2e37db0b11502831f3b", "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": "vothalvino/fireisp5.0#168", "human_labels": ["data_schema_persistence"], "issue_number": "168", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-56e375bfbc9de463", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#168\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#168\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-0b64e2ad76ab13a9\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/168\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/168\\nTitle: feat(P2.4): per-tenant resource quotas\\nBody:\\nImplements P2.4 of the production-hardening roadmap. Adds hard per-org resource caps (clients, devices, storage MB, scheduled tasks) with enforcement at creation time and a live usage dashboard in Settings.\\n\\n## Backend\\n\\n- **Migration 166** \u2014 `organization_quotas` table; NULL limit = unlimited; `ON DELETE CASCADE` from `organizations`\\n- **`OrganizationQuota` model** \u2014 `findByOrgId()` returns all-null defaults when no row exists; `upsert()` via `INSERT \u2026 ON DUPLICATE KEY UPDATE`, coerces empty string \u2192 NULL\\n- **`quotaService`** \u2014 `getUsage()` counts active clients/devices/tasks and aggregates file storage across org-owned entities (organization + clients + devices + tickets via cross-joins); `checkQuota()` throws 422 `ValidationError` when `current >= limit`\\n- **`checkQuota` middleware** \u2014 `quotaCheck('clients' | 'devices' | 'scheduled_tasks')` inserted before `ctrl.create` on the three POST routes\\n- **`GET/PUT /api/v1/organizations/:id/quota`** \u2014 retu\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-a4ac91b8aaf42861\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-41686c7d055c0798", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439800, "scanner": "foundry_dataset", "fingerprint": "82b1c8d62301ce7814624be741ba6b66fee6aadfa2c9c035cf5fd830a256f00a", "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": "vothalvino/fireisp5.0#167", "human_labels": ["test_ci_gap"], "issue_number": "167", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-365fe5b710f4a421", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#167\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#167\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-79ad7870661dc42c\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/167\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/167\\nTitle: feat: P2.2 OWASP ZAP DAST in CI + P2.3 multi-tenant data isolation audit\\nBody:\\nImplements P2.2 and P2.3 from `ROADMAP_PRODUCTION.md`: automated passive DAST scanning on every CI run, and property-based proof that all org-scoped models and routes enforce tenant isolation at both the SQL and HTTP layers.\\n\\n## P2.2 \u2014 OWASP ZAP Baseline DAST\\n\\n- **`dast` CI job** \u2014 boots MySQL, runs migrations + seed, starts Express, then runs `zaproxy/action-baseline@v0.14.0` (passive spider + passive scanner, no active attacks); ZAP HTML/JSON report uploaded as 30-day artifact\\n- **`.zap/rules.tsv`** \u2014 6 accepted-risk suppressions (HSTS delegated to Nginx, Permissions-Policy irrelevant for API-only backend, record timestamps are public contract, etc.)\\n- **`docs/pentest.md`** \u2014 pen-test runbook: OWASP Top-10 checklist with FireISP controls, manual test cases (IDOR, auth bypass, SQLi, rate-limit bypass, sensitive-data exposure), findings register, quarterly scheduling cadence, re-test procedure\\n- `fail_action: false` for initial \"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-c1c14c45fc0e7257\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"rep\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-9763fa51b7e8de0b", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439799, "scanner": "foundry_dataset", "fingerprint": "66b653120c8ee046d21d9f4d876d99f5ab6f1e820c8db30f8a2ebc02023db696", "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": "vothalvino/fireisp5.0#164", "human_labels": ["api_integration_gap"], "issue_number": "164", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.61, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-80602433613940fc", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 3, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#164\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#164\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 3\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'api_integration_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-77381911f4ed0d10\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/164\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/164\\nTitle: fix(docker): copy docs/openapi.json into frontend build stage\\nBody:\\nThe frontend Docker build stage failed because `gen:api` calls `openapi-typescript ../docs/openapi.json` (resolves to `/docs/openapi.json` from `WORKDIR /frontend`), but only `frontend/` was copied into the stage \u2014 `docs/` never landed in the container.\\n\\n## Change\\n\\nAdd a single `COPY` instruction in Stage 1 before `RUN npm run build`:\\n\\n```dockerfile\\nCOPY frontend/ ./\\nCOPY docs/openapi.json /docs/openapi.json   # \u2190 added\\nRUN npm run build\\n```\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-557561414a09cec3\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 6, \"designs\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"ci_contradiction_cluster\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-a1b4b796abb9328b", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439798, "scanner": "foundry_dataset", "fingerprint": "bc9c70b12a898bfef3448854c51866332cf3dce77cd2bc7a90e83ed7bfbb268b", "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": "vothalvino/fireisp5.0#162", "human_labels": ["test_ci_gap"], "issue_number": "162", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.592, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-26a994c7d8bae225", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 1, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#162\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#162\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-be7b382d96e9016f\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/162\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/162\\nTitle: chore(deps): sweep deprecated dependencies and shims\\nBody:\\n- [x] Remove `overrides.rimraf` from package.json \u2014 nothing depends on it after exceljs was removed\\n- [x] Keep `overrides.glob` \u2014 required to silence deprecation warnings from `test-exclude@6.0.0` (via `babel-plugin-istanbul@^7` via `babel-jest@30`) which pins `glob ^7.1.4`; cannot be eliminated without upgrading Jest or migrating to Vitest\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-8035dae2601bcf06\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 6, \"designs\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"ci_contradiction_cluster\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-552bf8f987e13616", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439797, "scanner": "foundry_dataset", "fingerprint": "b75f56976698c9d5b9663d2ac2988f157ebe2e62444f2802cc5ff786ae36069b", "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": "vothalvino/fireisp5.0#160", "human_labels": ["test_ci_gap"], "issue_number": "160", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-b7219f4ae283ae9a", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#160\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#160\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-bd1ad0badcd8dc83\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/160\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/160\\nTitle: feat: P1.6\u2013P1.9 production-hardening \u2014 soak test, DSAR endpoint, SLOs, incident runbook\\nBody:\\nImplements the four remaining open P1 items from `ROADMAP_PRODUCTION.md`, completing the \\\"must-have before first paying tenant\\\" checklist.\\n\\n## P1.6 \u2014 Soak test (`src/scripts/loadtest-soak.js`)\\nLow-rate round-based soak runner (default: 5 conn, 30s rounds, 300s total). After each round probes `/health?detail=true` for RSS growth and checks error rate. Exits 1 on budget violation (`SOAK_MAX_RSS_GROWTH_MB=100`, `SOAK_MAX_ERROR_RATE=0.005`). New `npm run loadtest:soak` script.\\n\\n`docs/load-testing.md` extended with production docker-compose stack setup, regression budget table (0% errors, p99 \u2264 200ms single-record / \u2264 500ms lists), and RC gate procedure.\\n\\n## P1.7 \u2014 DSAR export endpoint (`src/routes/dsar.js`)\\n`GET /api/v1/dsar/clients/:id` \u2014 returns all PII held for a client as a single JSON document across 9 tables (client, contacts, MX profile, contracts, invoices, payments, tickets, last-500 connection logs, IP assig\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-bdab1440e2abd12f\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-fafd9caa97779e7b", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439796, "scanner": "foundry_dataset", "fingerprint": "54e6a29db05a04ffd5c5d7bbbe3a04ac1ac81096f1bb232d8f0f3016b4efd48a", "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": "vothalvino/fireisp5.0#159", "human_labels": ["test_ci_gap"], "issue_number": "159", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-c84ef7325b7e4bbf", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#159\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#159\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-8516d0735073320d\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/159\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/159\\nTitle: P1.5: Container image hardening, SBOM generation, Trivy scan, cosign signing\\nBody:\\nImplements the P1.5 production-hardening milestone: lock down the container runtime surface, generate a verifiable SBOM on every build, gate merges on CVE scan results, and establish an image signing/verification chain.\\n\\n## Dockerfile\\n- Upgrade both stages `node:18-alpine` \u2192 `node:22-alpine` (consistent with CI)\\n\\n## K8s deployment hardening\\n- Pod: `seccompProfile: RuntimeDefault`\\n- Container: `allowPrivilegeEscalation: false`, `readOnlyRootFilesystem: true`, `capabilities.drop: [ALL]`\\n- `/tmp` emptyDir volume to satisfy any transient writes under the read-only rootfs\\n\\n## CI \u2014 new `container-scan` job (runs after `lint-and-test` + `frontend-test`)\\n- **Build**: `docker/build-push-action` with GHA layer cache\\n- **SBOM**: `anchore/sbom-action@v0.18.0` \u2192 SPDX JSON, uploaded as 90-day artifact\\n- **Scan**: `aquasecurity/trivy-action@0.35.0` \u2192 SARIF artifact; `exit-code: 1` on `HIGH`/`CRITICAL` (unfixed CVEs ignored)\\n- **Sign**: `si\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-9e27da9f68bbbae1\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\":\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-80d1b4daa3f58006", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439795, "scanner": "foundry_dataset", "fingerprint": "4215aae90b5ada574b5f3467813d7d626b783a56dae6010f703f1d71c307dbda", "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": "vothalvino/fireisp5.0#158", "human_labels": ["test_ci_gap"], "issue_number": "158", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-e9b746fed5633831", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#158\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#158\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-c0cb86f4614403ec\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/158\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/158\\nTitle: P1.4: Production secrets management \u2014 Pino redact, Sealed Secrets, health audit\\nBody:\\n`.env`-based secrets lack audit trails, rotation automation, and access control. This PR documents and enforces the production secrets story: a recommended K8s Sealed Secrets path, three alternative provider integrations, Pino-level redaction as a defence-in-depth backstop, and explicit verification that health endpoints are secret-free.\\n\\n## Pino logger redaction (`src/utils/logger.js`)\\n- Added `redact` config with 62 paths; censor value `[REDACTED]`\\n- Covers common field names (`password`, `secret`, `token`, `authorization`, `accessToken`/`access_token`, `refreshToken`/`refresh_token`, `apiKey`/`api_key`, `privateKey`, `clientSecret`)\\n- All known env-var names (`JWT_SECRET`, `ENCRYPTION_KEY`, `DB_PASSWORD`, `SMTP_PASS`, `TWILIO_AUTH_TOKEN`, `STRIPE_SECRET_KEY`, `CONEKTA_API_KEY`, `PAC_PASSWORD`, `RADIUS_SECRET`, `REDIS_PASSWORD`, `BACKUP_S3_SECRET_KEY`, `CF_API_TOKEN`, \u2026)\\n- HTTP request fields (`req.headers.authorization\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-3cfff39a5e76a86b\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-97c47e9d4f3d0aed", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439794, "scanner": "foundry_dataset", "fingerprint": "3f696d11ad2fedb6e097828a3c634806b6d5666546f6eaa8a853a5aba7c669cb", "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": "vothalvino/fireisp5.0#156", "human_labels": ["test_ci_gap"], "issue_number": "156", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.645, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-42b9d728c1d02ad3", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#156\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#156\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-5055967163cca77e\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/156\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/156\\nTitle: ci: remove non-essential jobs and collapse Node matrix to v22\\nBody:\\nCI was running 5 jobs with a 3-version Node matrix, totalling ~8 parallel runners per push. Most of the overhead was redundant or premature.\\n\\n## Removed jobs\\n- **`e2e`** \u2014 full-stack Playwright job (MySQL + migrations + seed + frontend build + Chromium); not worth the cost during active development\\n- **`docker-build`** \u2014 GHCR image build & push; premature until deployment is ready\\n- **`migration-smoke-test`** \u2014 redundant with `database-tests`, which already applies all migrations sequentially and validates the resulting table count\\n\\n## Simplified\\n- **`lint-and-test` matrix** `[18, 20, 22]` \u2192 `22` only; Node 18 is EOL-bound, cross-version parity isn't a concern here\\n\\n## Remaining jobs\\n`lint-and-test` \u00b7 `database-tests` \u00b7 `frontend-test`\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-a1c74374c2acaff4\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 6, \"designs\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fa\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-3c3730a246eed9f8", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439793, "scanner": "foundry_dataset", "fingerprint": "424cc2bd5d635d4aaf296ea2d7c520fc141566504231e05985f29cd4d43cbf96", "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": "vothalvino/fireisp5.0#155", "human_labels": ["data_schema_persistence"], "issue_number": "155", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.645, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-f04b0e27e3f5db0d", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#155\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#155\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-8f367244ad39ee66\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/155\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/155\\nTitle: fix(e2e): send `name` instead of `first_name`/`last_name` in apiCreateClient\\nBody:\\nThe smoke test's `apiCreateClient` helper was posting `first_name` + `last_name`, but the `/api/clients` schema only accepts a single required `name` field \u2014 causing a `VALIDATION_ERROR` on every run.\\n\\n## Change\\n\\n- **`e2e/tests/smoke.spec.ts`** \u2014 replace `first_name: 'Smoke', last_name: suffix` with `name: \\\\`Smoke ${suffix}\\\\``, which satisfies the schema and aligns with the `clientName` value already used later in the test.\\n\\n```diff\\n data: {\\n-  first_name: 'Smoke',\\n-  last_name: suffix,\\n+  name: `Smoke ${suffix}`,\\n   email: `smoke.${suffix}@e2e.test`,\\n   client_type: 'residential',\\n   status: 'active',\\n   country: 'US',\\n },\\n```\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-888ff406af57c914\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 6, \"designs\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence label\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-6900587f1d97eb90", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439792, "scanner": "foundry_dataset", "fingerprint": "51e5778b4f6ffbbb06783bafedf15a4fcd8e1f0d3225d4b16b32be6198e14983", "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": "vothalvino/fireisp5.0#154", "human_labels": ["test_ci_gap"], "issue_number": "154", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-bf1fe6dd2421e8eb", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#154\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#154\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-dbf75e647a6f2450\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/154\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/154\\nTitle: Fix E2E CI smoke failures by satisfying production env validation and hardening backend readiness\\nBody:\\nThe Playwright smoke job was failing with `ECONNREFUSED` on `localhost:3000` because the backend process exited before tests started. In CI E2E, `NODE_ENV=production` now enforces startup validation (`JWT_SECRET` length and `ENCRYPTION_KEY` presence), which was not fully satisfied.\\n\\n- **Backend startup env (E2E workflow)**\\n  - Keep a 64+ character `JWT_SECRET` in the E2E backend startup step.\\n  - Stop hardcoding encryption material; generate a per-run `ENCRYPTION_KEY` and export it via `GITHUB_ENV`.\\n\\n- **Readiness gate behavior**\\n  - Strengthen backend health wait logic to fail the job if `/health/live` never becomes healthy, instead of continuing to Playwright with a dead backend.\\n\\n- **Playwright target stability**\\n  - Switch E2E `BASE_URL` from `localhost` to `127.0.0.1` to avoid IPv6 loopback resolution edge cases in runner networking.\\n\\n```yaml\\n- name: Generate ephemeral encryption key for CI\\n  run: e\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-edb7ef1bb96fd762\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\":\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-d501e1bf2dc5c865", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439791, "scanner": "foundry_dataset", "fingerprint": "d630ccc7ef647a51b1bdf989d6ccbff862ec44c8307699afac3806e50f999041", "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": "vothalvino/fireisp5.0#152", "human_labels": ["data_schema_persistence"], "issue_number": "152", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-883d15e74e6222e2", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#152\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#152\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-2f80f59bd955ccda\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/152\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/152\\nTitle: Align `seed.js` inserts with current MySQL schema (remove obsolete `slug` and related column mismatches)\\nBody:\\n`node src/scripts/seed.js` failed early because the seed script referenced columns that no longer exist in the live schema (`organizations.slug`), with additional drift across other seeded tables. This PR updates seed inserts to the current table definitions so development seeding can run against the present schema.\\n\\n- **Organization seed compatibility**\\n  - Removed obsolete `organizations.slug` and `organizations.currency` from the insert.\\n  - Kept only schema-valid fields (`id`, `name`, `locale`, `country`, `status`).\\n\\n- **Cross-table schema drift cleanup in seed data**\\n  - Updated `clients` insert to use `name` (instead of `first_name`/`last_name`) and valid enum values (`personal`/`company`).\\n  - Updated `contracts` insert to remove `organization_id` and use valid `connection_type` values.\\n  - Updated `devices` insert to remove `organization_id`, add required `category`, and use va\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-ecdbe6b7717d779c\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-c00a1a5d6ed5cfa8", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439790, "scanner": "foundry_dataset", "fingerprint": "abfddeef07863a390217da7d51855937e3b5dd488a297a53c85bbd54f9f99b9b", "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": "vothalvino/fireisp5.0#151", "human_labels": ["test_ci_gap"], "issue_number": "151", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-9d08d0a72bfada94", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#151\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#151\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-ed58a0c734180524\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/151\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/151\\nTitle: P1.2 \u2014 Playwright E2E smoke test suite\\nBody:\\nFireISP had zero browser-level test coverage \u2014 no automated verification that the full operator workflow (login \u2192 data creation \u2192 logout) actually works end-to-end.\\n\\n## What's added\\n\\n### `e2e/` package\\n- `package.json` + `playwright.config.ts`: standalone Playwright package, Chromium only, 60 s timeout, 1 retry in CI, HTML report retained on failure, serial workers (shared DB state)\\n- `e2e/.gitignore`: excludes `node_modules/`, `playwright-report/`, `test-results/`\\n\\n### `e2e/tests/smoke.spec.ts` \u2014 two tests\\n**Full operator workflow** (covers the path a real operator takes on day one):\\n1. Create test client via REST API (no UI form on `ClientList`)\\n2. Login via browser form \u2192 assert dashboard visible\\n3. `ClientList` \u2192 assert seeded + new client both present\\n4. `Contracts` \u2192 open **New Contract** modal \u2192 select client + plan \u2192 submit\\n5. `Invoices` \u2192 open **Generate Invoice** modal \u2192 select client + contract \u2192 submit\\n6. `Payments` \u2192 open **Record Payment** modal \u2192 \"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-897c6c3af9389593\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\":\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-48a5536ccce2e1c2", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439789, "scanner": "foundry_dataset", "fingerprint": "9b538c55c0af4156f72f0404c44dd4ffdb402192703af5e87a7b7f31dcbd18a5", "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": "vothalvino/fireisp5.0#15", "human_labels": ["human_feedback_general"], "issue_number": "15", "thread_label": "thread_needs_classification", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.593, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-c8790db5f3231d57", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 1, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#15\nOutcome: ambiguous_needs_more_evidence\nThread label: thread_needs_classification\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\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#15\nRepo: vothalvino/fireisp5.0\nThread label: thread_needs_classification\nOutcome: ambiguous_needs_more_evidence\nComment count: 3\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'human_feedback_general': 3}\nPolarities: {'neutral': 3}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-1eb3e795dd5de57a\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/15#issuecomment-4202988376\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: issue_comment\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/15#issuecomment-4202988376\\nTitle: \\nBody:\\nIs every move sale or install logged to see which user did it?\"\n  },\n  {\n    \"id\": \"github-feedback-comment-148373f6c8f8f7fd\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/15#issuecomment-4209936938\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: issue_comment\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/15#issuecomment-4209936938\\nTitle: \\nBody:\\n@copilot  will all inventory movement be logged for example who and when?\"\n  },\n  {\n    \"id\": \"github-feedback-comment-ee1531c734c48195\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"human_feedback_general\",\n    \"polarity\": \"neutral\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/15#issuecomment-4209942293\",\n    \"text\": \"GitHub feedback: human_feedback_general\\nPolarity: neutral\\nKind: issue_comment\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/15#issuecomment-4209942293\\nTitle: \\nBody:\\n\\n> @copilot  will all inventory movement be logged for example who and when?\\n\\nYes \u2014 every inventory movement is logged in `inventory_transactions`. Each row records:\\n\\n- **Who:** `performed_by` column (FK \u2192 `users.id`)\\n- **When:** `created_at` column (`TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP`)\\n- **What:** `transaction_type` (receive, assign_to_job, sell_to_client, transfer_out/in, return, adjustment), `quantity`, `unit_price`\\n- **Context:** optional `job_id`, `client_id`, `invoice_id`, `destination_stock_id`, `reference`, and `notes`\\n\\nThe table is append-only (no `updat\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-acd0bfa8ba512ee0", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439788, "scanner": "foundry_dataset", "fingerprint": "ffc7f635fd9231b25c230f718fa25bf1fdd1e9d9b8c09fdd9fcf5f522a0c28f7", "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": "vothalvino/fireisp5.0#145", "human_labels": ["test_ci_gap"], "issue_number": "145", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-942d64f916570a40", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#145\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#145\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-fee41ff50ff5cc43\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/145\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/145\\nTitle: fix(P0): resolve all release-blocking CI defects from ROADMAP_PRODUCTION.md\\nBody:\\nCI on `main` has been red for 5+ runs due to two migration-level defects that break any fresh deployment, plus a known performance regression on every paginated list endpoint.\\n\\n## P0.1 \u2014 Migration 163 FK type mismatch (`ERROR 3780`)\\n`snmp_traps.organization_id / device_id / acknowledged_by` were `INT UNSIGNED` referencing `BIGINT UNSIGNED` PKs. Changed all three to `BIGINT UNSIGNED` in both `163_create_snmp_traps_table.sql` and `schema.sql`.\\n\\n## P0.2 \u2014 Migration 028 `DELIMITER` parsing (`ER_PARSE_ERROR`)\\n`migrate.js` passed raw file content to mysql2, which rejects `DELIMITER $$` (a mysql-client directive). Added `splitStatements()` \u2014 a DELIMITER-aware pre-processor that tracks the active delimiter and executes each statement individually:\\n\\n```js\\n// Before: one conn.query(entireFile) \u2014 explodes on DELIMITER $$\\n// After:\\nfor (const stmt of splitStatements(sql)) {\\n  await conn.query(stmt);\\n}\\n```\\n\\n7 unit tests added in `tests/mi\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-ab5544ee672359f3\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\"\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-0b4f20b54f3999a4", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439787, "scanner": "foundry_dataset", "fingerprint": "49a1f5188f8d9149f5c932bedb8f7638d495f7ecebaf88aab82b9efe937d21af", "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": "vothalvino/fireisp5.0#142", "human_labels": ["data_schema_persistence"], "issue_number": "142", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-3e0b27d5a2356898", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#142\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#142\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'data_schema_persistence': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-54af383d8d7cedd2\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/142\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/142\\nTitle: feat(M5.9): SNMP trap receiver for unsolicited device alerts\\nBody:\\nImplements the Milestone 5.9 roadmap item: a UDP-based SNMP trap receiver that captures unsolicited push notifications from network devices \u2014 complementing the existing polling-based SNMP metrics system.\\n\\n## Backend\\n\\n- **`snmpTrapReceiver.js`** \u2014 UDP listener on `SNMP_TRAP_PORT` (default `1620`; use iptables to redirect from `162` in non-root deployments). Handles both SNMPv1 and SNMPv2c PDUs, extracts well-known trap types (`coldStart`, `warmStart`, `linkDown`, `linkUp`, `authenticationFailure`, `egpNeighborLoss`, `enterpriseSpecific`), normalises IPv4-mapped IPv6 source addresses, and emits `device.trap` on the event bus when the source IP resolves to a known device.\\n- **`snmpTraps.js` route** \u2014 `GET /snmp-traps` (paginated, filterable by `device_id`, `trap_type`, date range), `GET /snmp-traps/:id` (with parsed varbinds), `POST /:id/acknowledge`, `POST /:id/clear`. Mounted under `requireFeature('snmp')`.\\n- **`notificationHooks\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-34546b0bb8ef8c32\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_so\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-3b3ff166520489b0", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439786, "scanner": "foundry_dataset", "fingerprint": "56dc67b8da8bfcf90a04011868334d5e3a87969b93eaf886f8b4f34ba8f6758d", "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": "vothalvino/fireisp5.0#141", "human_labels": ["api_integration_gap"], "issue_number": "141", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-b91adfa1d91007fa", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#141\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#141\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'api_integration_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-a27b1fda2f2c126f\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/141\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/141\\nTitle: feat(M5.8): Coverage zone map editor \u2014 SVG polygon editor + GeoJSON API\\nBody:\\nNext item in Milestone 5: the coverage zone map editor. The `boundary` column is a MySQL `POLYGON (SRID 4326)` \u2014 the existing generic CRUD route returned raw WKB binary, making it unusable from the frontend.\\n\\n## Backend\\n\\n- **`src/services/coverageZoneService.js`** \u2014 new service replacing the generic `crudController` for coverage zones. Uses `ST_AsGeoJSON()` on reads and `ST_GeomFromGeoJSON(?, 1, 4326)` on writes so all API boundaries are standard GeoJSON `Polygon` objects. Includes GeoJSON validation (type check + closed ring \u2265 4 vertices), org scoping, soft-delete/restore, and audit logging.\\n- **`src/routes/coverageZones.js`** \u2014 rewritten to delegate to the service. `GET /coverage-zones?service_area_id=N` filter added. `POST`/`PUT` accept `boundary` as a GeoJSON Polygon.\\n\\n```js\\n// Before: boundary came back as raw WKB Buffer \u2014 unusable\\n// After:\\n{ \\\"type\\\": \\\"Polygon\\\", \\\"coordinates\\\": [[[-98.5, 19.5], [-98.0, 19.5], ...]] }\\n\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-3a53d6456d6b66bb\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-4bf91b84656eb0eb", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439785, "scanner": "foundry_dataset", "fingerprint": "9c4fc545b2b0ea9fc28380dad6ba74ba7f08abbf06ea8d1d170734e105592b9a", "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": "vothalvino/fireisp5.0#139", "human_labels": ["api_integration_gap"], "issue_number": "139", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-84b03e0eefd2975a", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#139\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#139\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'api_integration_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-bf774349124e63ce\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/139\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/139\\nTitle: feat(M5.6): Redis caching for top 10 most-queried endpoints\\nBody:\\nAdds a cache-aside HTTP response layer backed by cacheService (Redis when `REDIS_URL` is set, in-memory LRU otherwise) to the highest-traffic read endpoints.\\n\\n## Core: `src/middleware/httpCache.js`\\n- `httpCache(resource, ttl)` \u2014 intercepts `res.json` on cache miss, stores body, replays on hit; sets `X-Cache: HIT/MISS`; no-ops on non-GET or non-2xx\\n- `bustCache(orgId, resource)` \u2014 increments a per-org per-resource **version counter** (7-day TTL); old cache keys become unreachable without Redis `SCAN`\\n\\n```js\\n// Cache key shape\\n`cache:GET:${orgId}:${resource}:v${version}:${sortedQS}`\\n// Invalidation\\n`cache:ver:${orgId}:${resource}` \u2192 integer, bumped on any write\\n```\\n\\n## `crudController` extension\\nNew `cacheResource` option \u2014 calls `bustCache()` after create/update/partialUpdate/destroy/restore automatically.\\n\\n```js\\nconst ctrl = crudController(Plan, { cacheResource: 'plans' });\\n```\\n\\n## Endpoints cached\\n\\n| Route | TTL |\\n|---|---|\\n| `GET /\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-b997116373d1f329\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"r\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-3f83642189b1d72d", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439784, "scanner": "foundry_dataset", "fingerprint": "bf8ba92da83aa64aa02315e66d530b7e7a2a9e362d679de18db25a6906db33e0", "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": "vothalvino/fireisp5.0#137", "human_labels": ["api_integration_gap"], "issue_number": "137", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-535818f7113ac61c", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#137\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#137\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'api_integration_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-09b945fd78d8868e\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/137\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/137\\nTitle: feat(M5.4): API rate limiting per tenant\\nBody:\\nIP-based rate limiting treats all users of a large organization as a single identity, meaning one heavy client can exhaust another tenant's quota. This adds per-organization rate limiting so each tenant's request budget is tracked independently.\\n\\n## Approach\\n\\n- **`CacheStore`** \u2014 custom `express-rate-limit` v8 store backed by the existing `cacheService` (Redis when `REDIS_URL` is set, in-memory LRU fallback). Stores `{ hits, resetTime }` per key with TTL-aligned expiry.\\n- **`tenantApiLimiter`** \u2014 new limiter keyed by `req.orgId`. Default: 500 req / 15 min window, configurable via `RATE_LIMIT_TENANT_API` / `RATE_LIMIT_TENANT_WINDOW_MS`.\\n- **`orgScope` middleware** \u2014 calls `tenantApiLimiter` after setting `req.orgId`, so every authenticated + org-scoped route gets the limit applied without touching individual route files.\\n\\n```js\\n// orgScope.js \u2014 single injection point covers all 70+ routes\\nreq.orgId = orgId;\\ntenantApiLimiter(req, res, next);  // keyed by\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-229ca582904fa541\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_sourc\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-d096ed8ccef218de", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439783, "scanner": "foundry_dataset", "fingerprint": "bd3a3fd40aae483022d55ae91328d77a16ad2a73517fee4b8d3514f3e2285e5f", "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": "vothalvino/fireisp5.0#135", "human_labels": ["ui_workflow_gap"], "issue_number": "135", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-6372b9098a16a06c", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_weak_supervision"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#135\nOutcome: ambiguous_needs_more_evidence\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\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#135\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'ui_workflow_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-191778a12aec4494\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"ui_workflow_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/135\",\n    \"text\": \"GitHub feedback: ui_workflow_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/135\\nTitle: feat(M5.2): mobile-responsive frontend \u2014 off-canvas sidebar, hamburger nav, portal header stacking\\nBody:\\nThe admin and portal layouts were desktop-only: the 220px fixed sidebar consumed the full viewport width on mobile and the portal header had no wrapping behaviour.\\n\\n## Layout shell (`Layout.tsx` + `index.css`)\\n- Replaced inline `display:flex` shell with `.app-shell` / `.app-sidebar` / `.app-main` CSS classes so media queries can control them\\n- Below 768 px the sidebar becomes a **fixed off-canvas drawer** (`transform: translateX(-100%)`) with a slide-in transition\\n- Added `.hamburger-btn` (\u2630 / \u2715, fixed top-left) and `.mobile-topbar` (48 px fixed bar) \u2014 both `display:none` on desktop, shown only via the breakpoint\\n- Added `.nav-overlay` dimming backdrop; clicking it closes the drawer\\n- Each `<NavLink>` calls `closeSidebar()` so the drawer auto-dismisses on navigation\\n\\n## Portal layout (`PortalLayout.tsx`)\\n- Header, nav, and user-area now use `.portal-header` / `.portal-nav` / `.portal-user-area` CSS \"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-68ab4fcce7e4b743\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\":\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-5320c93efde6fb60", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439782, "scanner": "foundry_dataset", "fingerprint": "7cab2fbe1b1b5a85506a0f1e47fc10ebf7fb4cbd982858729d87ac9eed2b8c17", "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": "vothalvino/fireisp5.0#132", "human_labels": ["test_ci_gap"], "issue_number": "132", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-e66bc05ddb68f87b", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#132\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#132\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-c0636090c28f67e5\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/132\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/132\\nTitle: feat(3.3): PPPoE auth flow end-to-end test + scrub lab credentials\\nBody:\\nImplements roadmap item 3.3 \u2014 \\\"Test PPPoE auth flow end-to-end (MikroTik \u2192 FreeRADIUS \u2192 FireISP DB)\\\" \u2014 and removes a hardcoded lab IP that was introduced during the session.\\r\\n\\r\\n## New test file: `tests/pppoeAuthFlow.test.js` (25 tests)\\r\\n\\r\\n**Live device block** (`describe.skip` unless `MIKROTIK_HAP_HOST` is set)\\r\\n- RouterOS API auth + identity read\\r\\n- `/radius/print`, `/radius/incoming/print` \u2014 reports RADIUS config state (informational; passes regardless of count so a fresh lab device doesn't fail CI)\\r\\n- `/interface/pppoe-server/server/print`, `/ppp/profile/print` \u2014 PPPoE server state\\r\\n- Subscriber lifecycle: `pppoeCreate` \u2192 `/ppp/secret/print` verify \u2192 `/ppp/active/print` \u2192 `pppoeDelete` \u2192 confirm gone\\r\\n\\r\\n**Unit block** (always runs)\\r\\n- `syncAccount`: active contract \u2192 `status='active'`; suspended \u2192 `status='disabled'`; bulk sync\\r\\n- Active session lookup mapping to `connection_logs` `start` events\\r\\n- CoA/Disconnect through the circui\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-346fa98645bf09cf\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_sour\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-6daf1510d12ffbfb", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/assumption_checks", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_assumption_check", "level": "warning", "message": {"text": "Foundry mined assumption checks: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 439781, "scanner": "foundry_dataset", "fingerprint": "80ee3f98b7a805c5c169f3ec03866a489142ecb8ca59200cbf8f3dfea876bccf", "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": "vothalvino/fireisp5.0#131", "human_labels": ["api_integration_gap"], "issue_number": "131", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-ef1ef8bd8f0f37ed", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: assumption_checks\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#131\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#131\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 5\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'api_integration_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-6081b8cfb7686d59\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/131\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/131\\nTitle: feat(3.1): MikroTik hAP lab integration tests \u2014 13 tests, real CHR router\\nBody:\\n- [x] Remove hardcoded `ai_test` / `ai_test123` defaults from `tests/mikrotikHapIntegration.test.js` (comment + code)\\n- [x] Replace `ai_test` example with generic `admin` in `.env.example`\\n- [x] Strengthen skip guard to also require `MIKROTIK_HAP_USER` and `MIKROTIK_HAP_PASS`\\n- [x] Full test suite: 2204 passed, 0 failures (13 hAP tests skip without env vars)\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-9c39b3f9503806c3\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 6, \"designs\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"ci_contradiction_cluster\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-assumption_checks-8a8034d01b96a513", "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": "vothalvino/fireisp5.0", "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: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 460689, "scanner": "foundry_dataset", "fingerprint": "9e07854c83ae75aa166aec04fb4cfb7277838de6cb6fec1ef132d6a65c344a4d", "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": {"test_or_ci": 2, "test_ci_gap": 1, "api_or_backend": 7, "docs_or_claims": 1, "schema_or_data": 3, "ui_or_frontend": 8, "verification_or_tests": 5, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 61, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 21, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 35, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 21, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#280", "issue_number": "280", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-84a1d9aae17088a8", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"test_or_ci": 8, "api_or_backend": 28, "docs_or_claims": 4, "schema_or_data": 12, "ui_or_frontend": 32}}, "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_high_confidence_link\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#280\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#280\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#280\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 280\nGraph consistency label: supported_by_high_confidence_link\nNodes: 35\nEdges: 61\nNode types: {'pr_file': 21, 'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 21, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ui_or_frontend': 8, 'api_or_backend': 7, 'verification_or_tests': 5, 'schema_or_data': 3, 'ambiguous_needs_more_evidence': 3, 'test_or_ci': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'docs_or_claims': 1, 'comment_has_related_commit_context': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'high_confidence': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-624ca6fb08eb2de9", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 460688, "scanner": "foundry_dataset", "fingerprint": "b04a2610d2483aaa93e08e76dc39f75b7bf61d33a9bcaf522d7329dc9c0a5efc", "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": {"test_ci_gap": 1, "docs_or_claims": 1, "verification_or_tests": 5, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 19, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 15, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#266", "issue_number": "266", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-c92e6bbc5bdb2916", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"docs_or_claims": 4}}, "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_high_confidence_link\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#266\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#266\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#266\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 266\nGraph consistency label: supported_by_high_confidence_link\nNodes: 15\nEdges: 19\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'pr_file': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_touches_file': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_touches_file': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'issue_chain_touches_file': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'docs_or_claims': 1, 'comment_has_related_commit_context': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'high_confidence': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-a817db73e183c7ee", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 460687, "scanner": "foundry_dataset", "fingerprint": "69613293d70bf15dd94f15141a9dcc8a282b836822e7fe4c7a13dad928260e80", "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": {"test_ci_gap": 1, "verification_or_tests": 5, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#242", "issue_number": "242", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-68d7875fbcbacf3c", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#242\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#242\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#242\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 242\nGraph consistency label: weak_supervision_needs_review\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'comment_has_related_commit_context': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-0b63e23c39344301", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 460686, "scanner": "foundry_dataset", "fingerprint": "a653f2b77b32fa808bd68104c491ec2b687df1f8090d9b7f4c102b47278c1925", "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": {"test_ci_gap": 1, "verification_or_tests": 5, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#241", "issue_number": "241", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-6bbfe11adf013a23", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#241\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#241\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#241\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 241\nGraph consistency label: weak_supervision_needs_review\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'comment_has_related_commit_context': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-2d2e5d77789c89e9", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 460685, "scanner": "foundry_dataset", "fingerprint": "25711abcd314227d285e9787f81ae2a7bd7e4464b98f0609e9ba86c43fb8774c", "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": {"test_ci_gap": 1, "verification_or_tests": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 12, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 10, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#238", "issue_number": "238", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-7574ca9289c0beb0", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#238\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#238\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#238\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 238\nGraph consistency label: weak_supervision_needs_review\nNodes: 10\nEdges: 12\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'comment_has_related_commit_context': 1, 'verification_or_tests': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-97a9377337404d6b", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 460684, "scanner": "foundry_dataset", "fingerprint": "cf6e98d424472ce155e4d57cbca6d4f3fef2c62d17b4614b2c770133b4074536", "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": {"test_ci_gap": 1, "verification_or_tests": 5, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#232", "issue_number": "232", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-2f19f11b3633830e", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#232\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#232\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#232\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 232\nGraph consistency label: weak_supervision_needs_review\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'comment_has_related_commit_context': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-c8a1b41fee0d2dbe", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 460683, "scanner": "foundry_dataset", "fingerprint": "46af0a27388a3e630f657abd0cc9c9148846addba36fc1670500e0d57553439f", "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": {"test_ci_gap": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#223", "issue_number": "223", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-649b00605d557f00", "graph_gold_label": "needs_more_evidence", "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#223\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#223\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#223\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 223\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-953149a847e63476", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 460682, "scanner": "foundry_dataset", "fingerprint": "8588183e1bd7a4319622402edfb456c63ad387df9c8cbde48aa29f33f859103c", "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": {"test_ci_gap": 1, "verification_or_tests": 5, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#221", "issue_number": "221", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-a1c1305faece4ff8", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#221\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#221\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#221\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 221\nGraph consistency label: weak_supervision_needs_review\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'comment_has_related_commit_context': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-69f3d1303f095187", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 460681, "scanner": "foundry_dataset", "fingerprint": "3047f9438cecf005a3e74a767b8dc76629763dd4f273eb6ebd94984611152fe3", "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": {"test_ci_gap": 1, "verification_or_tests": 5, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#219", "issue_number": "219", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-b468e3a069a5bbb1", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#219\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#219\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#219\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 219\nGraph consistency label: weak_supervision_needs_review\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'comment_has_related_commit_context': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-8a1868607ce74024", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 460680, "scanner": "foundry_dataset", "fingerprint": "804462c675e362c75920785bbc6c758f071db080a42be78f97d7c135cb5f2608", "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": {"test_ci_gap": 1, "verification_or_tests": 5, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#209", "issue_number": "209", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-7918326f062dfa90", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#209\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#209\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#209\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 209\nGraph consistency label: weak_supervision_needs_review\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'comment_has_related_commit_context': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-813bc1594eaf7b90", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 460679, "scanner": "foundry_dataset", "fingerprint": "1d137b6039878673e44d46a0a9bbe38a5925ae3922b287055a01048807fe9eda", "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": {"test_ci_gap": 17, "runtime_failure": 2, "api_integration_gap": 1, "security_auth_secret": 2, "agent_instruction_gap": 2, "verification_or_tests": 14, "human_feedback_general": 7, "data_schema_persistence": 1, "unlinked_human_feedback": 6, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 10, "ambiguous_needs_more_evidence": 24, "comment_has_related_commit_context": 16, "human_reported_issue_no_linked_fix": 10, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"not_resolved_or_not_observed": 20, "ambiguous_needs_more_evidence": 48}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 241, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 32, "thread_has_comment": 32, "chain_has_link_quality": 34, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 32, "comment_chain_links_commit": 75, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 32}, "node_count": 116, "node_types": {"repo": 1, "commit": 14, "thread": 1, "comment": 32, "fix_outcome": 1, "issue_chain": 1, "link_quality": 34, "comment_chain": 32}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#208", "issue_number": "208", "quality_tiers": {"unresolved": 16, "weak_supervision": 18}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-2272d3493e24b717", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#208\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#208\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#208\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 208\nGraph consistency label: weak_supervision_needs_review\nNodes: 116\nEdges: 241\nNode types: {'link_quality': 34, 'comment': 32, 'comment_chain': 32, 'commit': 14, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 75, 'chain_has_link_quality': 34, 'thread_has_comment': 32, 'thread_has_comment_chain': 32, 'comment_has_chain': 32, 'issue_chain_has_comment_chain': 32, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 24, 'test_ci_gap': 17, 'comment_has_related_commit_context': 16, 'verification_or_tests': 14, 'human_reported_issue_no_linked_fix': 10, 'not_resolved_or_not_observed': 10, 'human_feedback_general': 7, 'unlinked_human_feedback': 6, 'agent_instruction_gap': 2, 'security_auth_secret': 2, 'runtime_failure': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'api_integration_gap': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 48, 'not_resolved_or_not_observed': 20}\nQuality tiers: {'weak_supervision': 18, 'unresolved': 16}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-a39510978aa44363", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 460678, "scanner": "foundry_dataset", "fingerprint": "0a37f24651a9dd8498d1c3ac00ca85fcc93bd451f34e554fd0f74bd1d8c1d9f8", "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": {"data_schema": 5, "test_ci_gap": 3, "mock_placeholder": 2, "build_install_failure": 2, "verification_or_tests": 7, "claimed_resolved_unverified": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 2, "ambiguous_needs_more_evidence": 6, "comment_has_related_commit_context": 4, "human_reported_issue_no_linked_fix": 2, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"claimed_resolved_unverified": 2, "not_resolved_or_not_observed": 4, "ambiguous_needs_more_evidence": 12}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 58, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 7, "thread_has_comment": 7, "chain_has_link_quality": 9, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 7, "comment_chain_links_commit": 17, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 7}, "node_count": 39, "node_types": {"repo": 1, "commit": 12, "thread": 1, "comment": 7, "fix_outcome": 1, "issue_chain": 1, "link_quality": 9, "comment_chain": 7}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#192", "issue_number": "192", "quality_tiers": {"unresolved": 2, "weak_supervision": 7}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-b9c49e8b0933b706", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#192\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#192\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#192\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 192\nGraph consistency label: weak_supervision_needs_review\nNodes: 39\nEdges: 58\nNode types: {'commit': 12, 'link_quality': 9, 'comment': 7, 'comment_chain': 7, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 17, 'chain_has_link_quality': 9, 'thread_has_comment': 7, 'thread_has_comment_chain': 7, 'comment_has_chain': 7, 'issue_chain_has_comment_chain': 7, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 7, 'ambiguous_needs_more_evidence': 6, 'data_schema': 5, 'comment_has_related_commit_context': 4, 'test_ci_gap': 3, 'mock_placeholder': 2, 'build_install_failure': 2, 'human_reported_issue_no_linked_fix': 2, 'not_resolved_or_not_observed': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'human_reported_issue_then_fix_attempt': 1, 'claimed_resolved_unverified': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 12, 'not_resolved_or_not_observed': 4, 'claimed_resolved_unverified': 2}\nQuality tiers: {'weak_supervision': 7, 'unresolved': 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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-9dcc725fcb642253", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 460677, "scanner": "foundry_dataset", "fingerprint": "076110ace6f0f58ba76f8cedff6e3fb170148aead5d10ec9a4828b1521fb901f", "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": {"test_ci_gap": 5, "deployment_env_gap": 1, "agent_instruction_gap": 4, "verification_or_tests": 9, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 7, "ambiguous_needs_more_evidence": 5, "comment_has_related_commit_context": 5, "human_reported_issue_no_linked_fix": 5, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"not_resolved_or_not_observed": 14, "ambiguous_needs_more_evidence": 10}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 76, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 10, "thread_has_comment": 10, "chain_has_link_quality": 12, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 10, "comment_chain_links_commit": 20, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 10}, "node_count": 45, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 10, "fix_outcome": 1, "issue_chain": 1, "link_quality": 12, "comment_chain": 10}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#189", "issue_number": "189", "quality_tiers": {"unresolved": 5, "weak_supervision": 7}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-bec26f2ff54a457c", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#189\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#189\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#189\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 189\nGraph consistency label: weak_supervision_needs_review\nNodes: 45\nEdges: 76\nNode types: {'link_quality': 12, 'comment': 10, 'comment_chain': 10, 'commit': 9, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 20, 'chain_has_link_quality': 12, 'thread_has_comment': 10, 'thread_has_comment_chain': 10, 'comment_has_chain': 10, 'issue_chain_has_comment_chain': 10, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 9, 'not_resolved_or_not_observed': 7, 'test_ci_gap': 5, 'human_reported_issue_no_linked_fix': 5, 'comment_has_related_commit_context': 5, 'ambiguous_needs_more_evidence': 5, 'agent_instruction_gap': 4, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'deployment_env_gap': 1}\nOutcomes: {'not_resolved_or_not_observed': 14, 'ambiguous_needs_more_evidence': 10}\nQuality tiers: {'weak_supervision': 7, 'unresolved': 5}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-b811e49c091c7ff1", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 460676, "scanner": "foundry_dataset", "fingerprint": "b9b6d64f27f815293f50ef23c399b318d94a6a86db90e6db46a277ea99459ffd", "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": {"test_ci_gap": 1, "security_auth_secret": 1, "agent_instruction_gap": 1, "verification_or_tests": 5, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 4, "ambiguous_needs_more_evidence": 1, "comment_has_related_commit_context": 1, "human_reported_issue_no_linked_fix": 2, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"not_resolved_or_not_observed": 8, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 26, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 3, "thread_has_comment": 3, "chain_has_link_quality": 5, "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": 20, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 3}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#184", "issue_number": "184", "quality_tiers": {"unresolved": 2, "weak_supervision": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-a5c78dd3ea799424", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#184\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#184\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#184\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 184\nGraph consistency label: weak_supervision_needs_review\nNodes: 20\nEdges: 26\nNode types: {'commit': 5, 'link_quality': 5, 'comment': 3, 'comment_chain': 3, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 5, 'thread_has_comment': 3, 'thread_has_comment_chain': 3, 'comment_has_chain': 3, 'issue_chain_has_comment_chain': 3, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 5, 'not_resolved_or_not_observed': 4, 'human_reported_issue_no_linked_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'agent_instruction_gap': 1, 'security_auth_secret': 1, 'comment_has_related_commit_context': 1, 'ambiguous_needs_more_evidence': 1}\nOutcomes: {'not_resolved_or_not_observed': 8, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'weak_supervision': 3, 'unresolved': 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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-804b3fd7f1542ac1", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 460675, "scanner": "foundry_dataset", "fingerprint": "3dde58773e92c6ea9c17074e3b886923c706b5148b74c96dafabc81075e7a4df", "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": {"test_ci_gap": 2, "build_install_failure": 1, "verification_or_tests": 7, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 1, "ambiguous_needs_more_evidence": 4, "comment_has_related_commit_context": 2, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"not_resolved_or_not_observed": 2, "ambiguous_needs_more_evidence": 8}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 31, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 3, "thread_has_comment": 3, "chain_has_link_quality": 5, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 3, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 3}, "node_count": 22, "node_types": {"repo": 1, "commit": 7, "thread": 1, "comment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 3}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#183", "issue_number": "183", "quality_tiers": {"unresolved": 1, "weak_supervision": 4}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-585d70e08e4ddb81", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#183\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#183\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#183\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 183\nGraph consistency label: weak_supervision_needs_review\nNodes: 22\nEdges: 31\nNode types: {'commit': 7, 'link_quality': 5, 'comment': 3, 'comment_chain': 3, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, 'chain_has_link_quality': 5, 'thread_has_comment': 3, 'thread_has_comment_chain': 3, 'comment_has_chain': 3, 'issue_chain_has_comment_chain': 3, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 7, 'ambiguous_needs_more_evidence': 4, 'test_ci_gap': 2, 'comment_has_related_commit_context': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'build_install_failure': 1, 'human_reported_issue_no_linked_fix': 1, 'not_resolved_or_not_observed': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 8, 'not_resolved_or_not_observed': 2}\nQuality tiers: {'weak_supervision': 4, 'unresolved': 1}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-379716d3824304c7", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 460674, "scanner": "foundry_dataset", "fingerprint": "3edd47b422cf2e09b32e4ee57e4bbf07ae53fc4c7ea6fc2f104643ac6ee8e53e", "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": {"test_ci_gap": 4, "verification_or_tests": 9, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 4, "ambiguous_needs_more_evidence": 2, "comment_has_related_commit_context": 2, "human_reported_issue_no_linked_fix": 2, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"not_resolved_or_not_observed": 8, "ambiguous_needs_more_evidence": 4}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 36, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 4, "thread_has_comment": 4, "chain_has_link_quality": 6, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 4, "comment_chain_links_commit": 10, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 4}, "node_count": 27, "node_types": {"repo": 1, "commit": 9, "thread": 1, "comment": 4, "fix_outcome": 1, "issue_chain": 1, "link_quality": 6, "comment_chain": 4}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#182", "issue_number": "182", "quality_tiers": {"unresolved": 2, "weak_supervision": 4}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-37f5381595f89cd7", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#182\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#182\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#182\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 182\nGraph consistency label: weak_supervision_needs_review\nNodes: 27\nEdges: 36\nNode types: {'commit': 9, 'link_quality': 6, 'comment': 4, 'comment_chain': 4, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 10, 'chain_has_link_quality': 6, 'thread_has_comment': 4, 'thread_has_comment_chain': 4, 'comment_has_chain': 4, 'issue_chain_has_comment_chain': 4, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 9, 'test_ci_gap': 4, 'not_resolved_or_not_observed': 4, 'human_reported_issue_no_linked_fix': 2, 'comment_has_related_commit_context': 2, 'ambiguous_needs_more_evidence': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1}\nOutcomes: {'not_resolved_or_not_observed': 8, 'ambiguous_needs_more_evidence': 4}\nQuality tiers: {'weak_supervision': 4, 'unresolved': 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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-a948a3b502096072", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 460673, "scanner": "foundry_dataset", "fingerprint": "ddec63838fabead662df16608590d2e6287e67d7e62278590dbc546d9666ec8c", "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": {"test_ci_gap": 1, "verification_or_tests": 5, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#180", "issue_number": "180", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-82b822b8e78106c7", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#180\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#180\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#180\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 180\nGraph consistency label: weak_supervision_needs_review\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'comment_has_related_commit_context': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-586089b4a7d79c6e", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 460672, "scanner": "foundry_dataset", "fingerprint": "b69b763f64fde089048dedd72ce1a99f5723ffa72814b440e8acaf59ced0a336", "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": {"test_ci_gap": 5, "security_auth_secret": 1, "verification_or_tests": 10, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 6, "comment_has_related_commit_context": 4, "human_reported_issue_no_linked_fix": 3, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"not_resolved_or_not_observed": 6, "ambiguous_needs_more_evidence": 12}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 56, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 7, "thread_has_comment": 7, "chain_has_link_quality": 9, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 7, "comment_chain_links_commit": 15, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 7}, "node_count": 37, "node_types": {"repo": 1, "commit": 10, "thread": 1, "comment": 7, "fix_outcome": 1, "issue_chain": 1, "link_quality": 9, "comment_chain": 7}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#174", "issue_number": "174", "quality_tiers": {"unresolved": 3, "weak_supervision": 6}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-4c25689a79a85b81", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#174\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#174\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#174\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 174\nGraph consistency label: weak_supervision_needs_review\nNodes: 37\nEdges: 56\nNode types: {'commit': 10, 'link_quality': 9, 'comment': 7, 'comment_chain': 7, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 15, 'chain_has_link_quality': 9, 'thread_has_comment': 7, 'thread_has_comment_chain': 7, 'comment_has_chain': 7, 'issue_chain_has_comment_chain': 7, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 10, 'ambiguous_needs_more_evidence': 6, 'test_ci_gap': 5, 'comment_has_related_commit_context': 4, 'human_reported_issue_no_linked_fix': 3, 'not_resolved_or_not_observed': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'security_auth_secret': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 12, 'not_resolved_or_not_observed': 6}\nQuality tiers: {'weak_supervision': 6, 'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-416d5d2f404c7c87", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 460671, "scanner": "foundry_dataset", "fingerprint": "ca8ba918267daa8adcf145b84bebd9470162519b7c2ae85e305a83f624992433", "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": {"test_ci_gap": 1, "verification_or_tests": 5, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#167", "issue_number": "167", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-ed80a1458b62ab37", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#167\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#167\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#167\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 167\nGraph consistency label: weak_supervision_needs_review\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'comment_has_related_commit_context': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-59d3db807cc9e1a4", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 460670, "scanner": "foundry_dataset", "fingerprint": "5ff646a85dc68415d019486f3fcc95f8e5658623e414877fdbb3de4bcfb86406", "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": {"test_ci_gap": 1, "verification_or_tests": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 12, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 10, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#162", "issue_number": "162", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-10849801a1619bd5", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#162\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#162\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#162\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 162\nGraph consistency label: weak_supervision_needs_review\nNodes: 10\nEdges: 12\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'comment_has_related_commit_context': 1, 'verification_or_tests': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-c6581f155444f57e", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 460669, "scanner": "foundry_dataset", "fingerprint": "16930ec48288af5388428c3e74567f6a2427aeaa9cdf5d42b54fb21946e08108", "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": {"test_ci_gap": 1, "verification_or_tests": 5, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#160", "issue_number": "160", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-038b7f3f8e379cab", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#160\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#160\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#160\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 160\nGraph consistency label: weak_supervision_needs_review\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'comment_has_related_commit_context': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-358f4c8bc56bf5b6", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 460668, "scanner": "foundry_dataset", "fingerprint": "ad9f03c13cb84ea15f7ff1c277bba1a772bb058cfc96bfa93a0e26fd0806e5fe", "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": {"test_ci_gap": 1, "verification_or_tests": 5, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#159", "issue_number": "159", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-4a817ddaed4cc218", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#159\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#159\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#159\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 159\nGraph consistency label: weak_supervision_needs_review\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'comment_has_related_commit_context': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-03ecd02cd3216a3f", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 460667, "scanner": "foundry_dataset", "fingerprint": "3df05ce34a9be02f611861d7953cdeb09e86fff10c731f8574c222b7f7c2c769", "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": {"test_ci_gap": 1, "verification_or_tests": 5, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#158", "issue_number": "158", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-e4a70b9bf7747c6c", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#158\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#158\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#158\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 158\nGraph consistency label: weak_supervision_needs_review\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'comment_has_related_commit_context': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-95d3ed3a25646258", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 460666, "scanner": "foundry_dataset", "fingerprint": "0a62380f19624ece58f3bc82dcc5aa23fe75ffeeded37b831ddb5f4f69bfe7b3", "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": {"test_ci_gap": 1, "verification_or_tests": 5, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#156", "issue_number": "156", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-004462404f193591", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#156\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#156\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#156\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 156\nGraph consistency label: weak_supervision_needs_review\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'comment_has_related_commit_context': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-4d4298d28ceb2103", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 460665, "scanner": "foundry_dataset", "fingerprint": "7974dc53d8c098ab2714e5c246ddff8c1047e129296c11e35d7b7320c6de08d6", "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": {"test_ci_gap": 1, "verification_or_tests": 5, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#154", "issue_number": "154", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-4902096f068feb22", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#154\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#154\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#154\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 154\nGraph consistency label: weak_supervision_needs_review\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'comment_has_related_commit_context': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-c49b744cf9be7b71", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 460664, "scanner": "foundry_dataset", "fingerprint": "bb1d464faca93862d02a31dfed0136905f2248bae6a3bf425a4d74bde6c994c3", "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": {"test_ci_gap": 1, "verification_or_tests": 5, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#151", "issue_number": "151", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-ec9965a0bf38c8bb", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#151\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#151\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#151\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 151\nGraph consistency label: weak_supervision_needs_review\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'comment_has_related_commit_context': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-68752bc65cb05e5d", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 460663, "scanner": "foundry_dataset", "fingerprint": "01c2304f56b0001c6383f459614f4948ba1fc8d88f627fe3963061a1f4d973da", "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": {"test_ci_gap": 1, "verification_or_tests": 5, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#145", "issue_number": "145", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-891a428f30a99206", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#145\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#145\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#145\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 145\nGraph consistency label: weak_supervision_needs_review\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'comment_has_related_commit_context': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-6b06e7fcda9dbeb2", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/test_ci_gap_after_feedback", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_test_ci_gap", "level": "error", "message": {"text": "Foundry mined test ci gap after feedback: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 460662, "scanner": "foundry_dataset", "fingerprint": "86a2666fa158b4a55b903f68b7c71c16f9174fd39eef1503fc11062aae5eb41d", "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": {"test_ci_gap": 1, "verification_or_tests": 5, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "test_ci_gap_after_feedback", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "test_ci_gap_after_feedback", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#132", "issue_number": "132", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-6cc331c4a12949ca", "graph_gold_label": "weak_supervision_needs_review", "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: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#132\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#132\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#132\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 132\nGraph consistency label: weak_supervision_needs_review\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'comment_has_related_commit_context': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-c6c6ed9451723a83", "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": "vothalvino/fireisp5.0", "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: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 453994, "scanner": "foundry_dataset", "fingerprint": "fa650c8ae5534b6cb542c3545ef5c4bf95244fe491bf39ecccdde164a5613bab", "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": {"verification_or_tests": 5, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#272", "issue_number": "272", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-78684cec1145a896", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {}}, "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: supported_by_high_confidence_link\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#272\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#272\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#272\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 272\nGraph consistency label: supported_by_high_confidence_link\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'comment_has_related_commit_context': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'high_confidence': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-6e51237a3f70e03a", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 453993, "scanner": "foundry_dataset", "fingerprint": "33866ecd099802f1dd3c51a14ca76f1f75834be457cf8fe3e572e66c3e3e000c", "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": {"test_or_ci": 5, "api_or_backend": 6, "docs_or_claims": 2, "schema_or_data": 11, "ui_or_frontend": 13, "verification_or_tests": 5, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 77, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 37, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 51, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "pr_file": 37, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#257", "issue_number": "257", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-a39d725dfe7ac4d9", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"test_or_ci": 20, "api_or_backend": 24, "docs_or_claims": 8, "schema_or_data": 44, "ui_or_frontend": 52}}, "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: supported_by_high_confidence_link\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#257\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#257\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#257\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 257\nGraph consistency label: supported_by_high_confidence_link\nNodes: 51\nEdges: 77\nNode types: {'pr_file': 37, 'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 37, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ui_or_frontend': 13, 'schema_or_data': 11, 'api_or_backend': 6, 'test_or_ci': 5, 'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'docs_or_claims': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'comment_has_related_commit_context': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'high_confidence': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-d48a4d3df5a2d550", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 453992, "scanner": "foundry_dataset", "fingerprint": "a717f72dfe5a39b704e87441b7c056ecf907d17b623dd403549001295bb3a1c6", "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": {"verification_or_tests": 5, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#255", "issue_number": "255", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-541cae494a02d266", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {}}, "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: supported_by_high_confidence_link\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#255\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#255\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#255\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 255\nGraph consistency label: supported_by_high_confidence_link\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'comment_has_related_commit_context': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'high_confidence': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-2cc423133fcf5c64", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 453991, "scanner": "foundry_dataset", "fingerprint": "1b8932e170625973cbd8a4c20706267a4bfe577a424274eb06b09035b0326928", "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": {"verification_or_tests": 5, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#254", "issue_number": "254", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-41db352416d3bd35", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {}}, "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: supported_by_high_confidence_link\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#254\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#254\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#254\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 254\nGraph consistency label: supported_by_high_confidence_link\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'comment_has_related_commit_context': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'high_confidence': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-cb7325405b57d647", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 453990, "scanner": "foundry_dataset", "fingerprint": "6987ddfd2b04de5db4ef75af670900d32a2e1d5d89808ed4b027730abedd8ab7", "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": {"verification_or_tests": 5, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#218", "issue_number": "218", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-0b59a1c87c9d488f", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#218\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#218\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#218\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 218\nGraph consistency label: weak_supervision_needs_review\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'comment_has_related_commit_context': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-51140e9330f77f21", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 453989, "scanner": "foundry_dataset", "fingerprint": "0fbc5c4295e4e4611fc30ee8d960975631199964d6e02c3b3da980d4b6eb32ab", "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": {"test_ci_gap": 17, "runtime_failure": 2, "api_integration_gap": 1, "security_auth_secret": 2, "agent_instruction_gap": 2, "verification_or_tests": 14, "human_feedback_general": 7, "data_schema_persistence": 1, "unlinked_human_feedback": 6, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 10, "ambiguous_needs_more_evidence": 24, "comment_has_related_commit_context": 16, "human_reported_issue_no_linked_fix": 10, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"not_resolved_or_not_observed": 20, "ambiguous_needs_more_evidence": 48}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 241, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 32, "thread_has_comment": 32, "chain_has_link_quality": 34, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 32, "comment_chain_links_commit": 75, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 32}, "node_count": 116, "node_types": {"repo": 1, "commit": 14, "thread": 1, "comment": 32, "fix_outcome": 1, "issue_chain": 1, "link_quality": 34, "comment_chain": 32}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#208", "issue_number": "208", "quality_tiers": {"unresolved": 16, "weak_supervision": 18}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-bc92797d85886956", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#208\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#208\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#208\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 208\nGraph consistency label: weak_supervision_needs_review\nNodes: 116\nEdges: 241\nNode types: {'link_quality': 34, 'comment': 32, 'comment_chain': 32, 'commit': 14, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 75, 'chain_has_link_quality': 34, 'thread_has_comment': 32, 'thread_has_comment_chain': 32, 'comment_has_chain': 32, 'issue_chain_has_comment_chain': 32, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 24, 'test_ci_gap': 17, 'comment_has_related_commit_context': 16, 'verification_or_tests': 14, 'human_reported_issue_no_linked_fix': 10, 'not_resolved_or_not_observed': 10, 'human_feedback_general': 7, 'unlinked_human_feedback': 6, 'agent_instruction_gap': 2, 'security_auth_secret': 2, 'runtime_failure': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'api_integration_gap': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 48, 'not_resolved_or_not_observed': 20}\nQuality tiers: {'weak_supervision': 18, 'unresolved': 16}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-2fadd732e9d713e6", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 453988, "scanner": "foundry_dataset", "fingerprint": "3c2d6be4f100325ab240e51ffd0ce9338b415c90465d8aad96b7740ed1959078", "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": {"verification_or_tests": 5, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#177", "issue_number": "177", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-6dd24b7da7529823", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#177\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#177\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#177\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 177\nGraph consistency label: weak_supervision_needs_review\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'comment_has_related_commit_context': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-090eaf639d24c3ce", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 453987, "scanner": "foundry_dataset", "fingerprint": "4cd30180414c0982e173eaf18ed2b7b93854bf64b90a80a9c06ebf71129fe081", "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": {"test_ci_gap": 5, "security_auth_secret": 1, "verification_or_tests": 10, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 6, "comment_has_related_commit_context": 4, "human_reported_issue_no_linked_fix": 3, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"not_resolved_or_not_observed": 6, "ambiguous_needs_more_evidence": 12}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 56, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 7, "thread_has_comment": 7, "chain_has_link_quality": 9, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 7, "comment_chain_links_commit": 15, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 7}, "node_count": 37, "node_types": {"repo": 1, "commit": 10, "thread": 1, "comment": 7, "fix_outcome": 1, "issue_chain": 1, "link_quality": 9, "comment_chain": 7}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#174", "issue_number": "174", "quality_tiers": {"unresolved": 3, "weak_supervision": 6}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-4713a1c5e3706661", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#174\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#174\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#174\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 174\nGraph consistency label: weak_supervision_needs_review\nNodes: 37\nEdges: 56\nNode types: {'commit': 10, 'link_quality': 9, 'comment': 7, 'comment_chain': 7, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 15, 'chain_has_link_quality': 9, 'thread_has_comment': 7, 'thread_has_comment_chain': 7, 'comment_has_chain': 7, 'issue_chain_has_comment_chain': 7, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 10, 'ambiguous_needs_more_evidence': 6, 'test_ci_gap': 5, 'comment_has_related_commit_context': 4, 'human_reported_issue_no_linked_fix': 3, 'not_resolved_or_not_observed': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'security_auth_secret': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 12, 'not_resolved_or_not_observed': 6}\nQuality tiers: {'weak_supervision': 6, 'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-e936f8acc1f00ac6", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 453986, "scanner": "foundry_dataset", "fingerprint": "3726bc0f08fe9335ae66ce3f84f71f7a5d1a95e4a95c5f2eefb94c37fae89943", "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": {"verification_or_tests": 5, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#172", "issue_number": "172", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-00c6efbe1447599f", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#172\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#172\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#172\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 172\nGraph consistency label: weak_supervision_needs_review\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'comment_has_related_commit_context': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-8487ab1627d8feba", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 453985, "scanner": "foundry_dataset", "fingerprint": "0508231a0d14efc55bf897fe6d9824a2d89e0c66b8d16f25d1e28f782b4d761f", "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": {"agent_instruction_gap": 1, "verification_or_tests": 1, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 1, "comment_has_related_commit_context": 1, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"not_resolved_or_not_observed": 6, "ambiguous_needs_more_evidence": 2}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 17, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 2, "thread_has_comment": 2, "chain_has_link_quality": 4, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 2, "comment_chain_links_commit": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 2}, "node_count": 13, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 2, "fix_outcome": 1, "issue_chain": 1, "link_quality": 4, "comment_chain": 2}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#17", "issue_number": "17", "quality_tiers": {"unresolved": 1, "weak_supervision": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-b6780288d5f9f381", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#17\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#17\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#17\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 17\nGraph consistency label: weak_supervision_needs_review\nNodes: 13\nEdges: 17\nNode types: {'link_quality': 4, 'comment': 2, 'comment_chain': 2, 'thread': 1, 'repo': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 4, 'thread_has_comment': 2, 'thread_has_comment_chain': 2, 'comment_has_chain': 2, 'issue_chain_has_comment_chain': 2, 'repo_has_thread': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'agent_instruction_gap': 1, 'data_schema_persistence': 1, 'human_reported_issue_no_linked_fix': 1, 'comment_has_related_commit_context': 1, 'verification_or_tests': 1, 'ambiguous_needs_more_evidence': 1}\nOutcomes: {'not_resolved_or_not_observed': 6, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'weak_supervision': 3, 'unresolved': 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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-bab60c8a7acfc650", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 453984, "scanner": "foundry_dataset", "fingerprint": "4aaca270a5e2f7220634ed6055cd3f2460c09307b8cc71c27fdb32cb8555ded9", "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": {"verification_or_tests": 5, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#168", "issue_number": "168", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-6f17bbd5a2696326", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#168\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#168\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#168\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 168\nGraph consistency label: weak_supervision_needs_review\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'comment_has_related_commit_context': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-e6d7d5a85c158c59", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 453983, "scanner": "foundry_dataset", "fingerprint": "c1c7db30a9379562e707d373cb008ab495d92c41a951296a8989c1eafcc692d2", "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": {"verification_or_tests": 5, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#155", "issue_number": "155", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-4e1584385cca5c7e", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#155\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#155\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#155\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 155\nGraph consistency label: weak_supervision_needs_review\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'comment_has_related_commit_context': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-1fcb82e7381e6409", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 453982, "scanner": "foundry_dataset", "fingerprint": "56411e446f6640f97fb00da31a028a5507ca2bda6d249250dc4b9547b1f0381c", "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": {"verification_or_tests": 5, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#152", "issue_number": "152", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-8fef8fc6eea9f06f", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#152\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#152\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#152\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 152\nGraph consistency label: weak_supervision_needs_review\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'comment_has_related_commit_context': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-79a4561c001b24f2", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_schema_ui_api_gap", "level": "error", "message": {"text": "Foundry mined schema ui api mismatch: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 453981, "scanner": "foundry_dataset", "fingerprint": "9e5da0e2cabda58138c3d0a9b1a0bf85a0454f08f19b5a73f2223c0852a58208", "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": {"verification_or_tests": 5, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "schema_ui_api_mismatch", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "schema_ui_api_mismatch", "severity": "high", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#142", "issue_number": "142", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-f10fb338360ec35c", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#142\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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#142\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#142\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 142\nGraph consistency label: weak_supervision_needs_review\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 5, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'comment_has_related_commit_context': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'weak_supervision': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-0e3a1144a4027c28", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/schema_ui_api_mismatch", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 445193, "scanner": "foundry_dataset", "fingerprint": "98696e130d872a6b15f46257b8ff13fd2364e851a6ac0df5c65ff50e0eae2e47", "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": "vothalvino/fireisp5.0#279", "human_labels": ["mock_placeholder", "test_or_ci", "ui_or_frontend"], "issue_number": "279", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.82, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-d234c482627b9269", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 3, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 1, "ui_or_frontend": 2}, "linked_commit_count": 1, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#279\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#279\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 3\nLabels: {'mock_placeholder': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'ui_or_frontend': 2, 'test_or_ci': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-d1e94ed837328ded\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/279\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/279\\nTitle: fix(radius): query settings by real columns (setting_key/setting_value, no organization_id)\\nBody:\\n## What & why\\nPost-deploy verification of #278 showed **`POST /api/v1/radius/sync-freeradius` still 500s** \u2014 a *separate* schema drift from the `radius.organization_id` one.\\n\\nThe `settings` table is a **global key/value store** \u2014 columns `setting_key` / `setting_value`, **no `organization_id`** (migration 043; `Organization.js` uses it correctly). But two queries hit it as `SELECT value \u2026 WHERE organization_id = ? AND \\\\`key\\\\` = '\u2026'` \u2192 `Unknown column` at runtime:\\n\\n| Site | Setting | Impact |\\n|---|---|---|\\n| `radiusService.syncFreeradiusTables` | `mab_password_mode` | **first** query in the function, **not** in try/catch \u2192 500s `POST /radius/sync-freeradius` + the scheduled sync task |\\n| `pppoeDiagnosticsService` | `pppoe_auth_failure_threshold` | wrapped in try/catch \u2192 silently swallowed; the per-org override was **never read** (always default) |\\n\\n## Fix\\nBoth now use `SELECT setting_value FROM setting\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-c1bb105372bebf49\",\n    \"filename\": \"src/services/pppoeDiagnosticsService.js\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 5,\n    \"deletions\": 3,\n    \"changes\": 8,\n    \"blob_url\": \"https://github.com/vothalvino/fireisp5.0/blob/08140dde96e960f6ee3ea57b7b5368c106f1342f/src%2Fservices%2FpppoeDiagnosticsService.js\"\n  },\n  {\n    \"id\": \"github-pr-file-file-66ad3f255de901a5\",\n    \"filename\": \"src/services/radiusService.js\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 5,\n    \"deletions\": 3,\n    \"changes\": 8,\n    \"blob_url\": \"https://github.com/vothalvino\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-bad_chains-636fdad85539f55c", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 445192, "scanner": "foundry_dataset", "fingerprint": "ab7775ddf0b9517f9fe88f4e0e22f903bcaf76385e57bbec856f9bcc15da1f6a", "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": "vothalvino/fireisp5.0#278", "human_labels": ["api_or_backend", "mock_placeholder", "test_or_ci", "ui_or_frontend"], "issue_number": "278", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.82, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-28387a6221b783ff", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 4, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 1, "api_or_backend": 1, "ui_or_frontend": 2}, "linked_commit_count": 2, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#278\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#278\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 2\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 4\nLabels: {'mock_placeholder': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'api_or_backend': 1, 'ui_or_frontend': 2, 'test_or_ci': 1}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-f80e3e3627ba72b8\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/278\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/278\\nTitle: fix(radius): repair queries referencing dropped radius.organization_id / renamed password_hash\\nBody:\\n## What & why\\nWhile live-testing the embedded RADIUS server on the demo, **`GET /api/v1/radius/cdr` returned a deterministic 500**. Root cause: the `radius` table has **no `organization_id` column** (`Radius.hasOrgScope === false`; it's absent from migration 008, every later migration, schema.sql, and the live API), yet several queries still filter on `r.organization_id` \u2192 MySQL throws `Unknown column 'r.organization_id'`. A second drift: migration 189 renamed `radius.password_hash` \u2192 `password`, but `syncFreeradiusTables` still selected `r.password_hash`.\\n\\nThese fail **silently in production** \u2014 the endpoints 500, the scheduled radius sync/kick tasks error each run, and the walled-garden sync error is swallowed by `.catch`. CI never caught it because the unit tests mock `db.query` (so a dead column name never errors).\\n\\n## Diagnosis (how it was isolated)\\nOn the live demo, with identical data:\\n- `GE\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-f2c47391340af73e\",\n    \"filename\": \"src/routes/radius.js\",\n    \"label\": \"api_or_backend\",\n    \"status\": \"modified\",\n    \"additions\": 3,\n    \"deletions\": 1,\n    \"changes\": 4,\n    \"blob_url\": \"https://github.com/vothalvino/fireisp5.0/blob/6493637067a676ef6c7648ff71181849c1fd01fd/src%2Froutes%2Fradius.js\"\n  },\n  {\n    \"id\": \"github-pr-file-file-f8436f2a481156cc\",\n    \"filename\": \"src/services/radiusAccountingService.js\",\n    \"label\": \"ui_or_frontend\",\n    \"status\": \"modified\",\n    \"additions\": 9,\n    \"deletions\": 5,\n    \"changes\": 14,\n    \"blob_url\": \"https://github.com/vothalvino/fireisp5.0/\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-bad_chains-301571db9bc8d468", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 445191, "scanner": "foundry_dataset", "fingerprint": "94078e88b941751e1a85133d35cee3bf60d3f963fade706a782184a9b88ceb5d", "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": "vothalvino/fireisp5.0#271", "human_labels": ["mock_placeholder"], "issue_number": "271", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.82, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-ad5fb45b2278a6c3", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 1, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#271\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#271\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'mock_placeholder': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-7ecf67772335470f\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/271\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/271\\nTitle: fix: repair web-UI 500s (LIMIT? bind bug, model/schema drift, RBAC & data-leak)\\nBody:\\n## Summary\\nA read-only sweep of every endpoint the admin UI calls (run against the live demo on current HEAD) surfaced **34 list endpoints returning HTTP 500**, 1\u00d7 404, 1\u00d7 422, plus sensitive-data leaks. This PR fixes the root causes.\\n\\n## Root causes & fixes\\n- **`LIMIT ? OFFSET ?` bound params** \u2014 `db.query` uses `pool.execute()` (prepared protocol); MySQL 8 rejects placeholder LIMIT/OFFSET (`Incorrect arguments to mysqld_stmt_execute`). Inlined as validated integer literals across **~86 sites in ~53 route/service files**, matching `BaseModel.findAll`'s existing workaround. Fixes `/roles`, `/audit-logs`, `/alerts/*`, `/wireless/*`, `/config-*`, `/work-orders`, `/facturas-publicas`, `/network-health`, traffic-engineering, etc.\\n- **Model\u2194schema drift** \u2014 `jobs`, `outages`, `speed_tests`, `sla_definitions`, `snmp_profiles`, `recurring_payment_profiles` declared `hasOrgScope` for a non-existent `organization_id` colu\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-57066b79b0b98e68\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"rep\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-bad_chains-30f8f64971bfca3d", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 445190, "scanner": "foundry_dataset", "fingerprint": "f03dc34b9f407040b340b6b937f6491b326c3134e4083edef9a9458720d2d1bf", "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": "vothalvino/fireisp5.0#270", "human_labels": ["api_or_backend", "docs_or_claims", "mock_placeholder", "schema_or_data", "test_or_ci", "ui_or_frontend"], "issue_number": "270", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.82, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-ae73eb094cb9725a", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 49, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 9, "api_or_backend": 15, "docs_or_claims": 1, "schema_or_data": 2, "ui_or_frontend": 22}, "linked_commit_count": 1, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#270\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#270\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 49\nLabels: {'mock_placeholder': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 1, 'api_or_backend': 15, 'ui_or_frontend': 22, 'test_or_ci': 9, 'schema_or_data': 2}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-adc78c0a361de72a\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/270\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/270\\nTitle: fix: repair web-UI functions broken by frontend\u2194backend contract drift\\nBody:\\n## Summary\\n\\nAn end-to-end trace of every admin-UI function (page \u2192 API \u2192 backend \u2192 response \u2192 render) across 13 domains found **51 functional bugs** \u2014 the \\\"a lot of them don't work\\\" symptoms. They collapse into a handful of **systemic contract drifts**. Full report: `docs/FUNCTIONAL-BUGS.md`.\\n\\n## \ud83d\udd34 Biggest systemic bug \u2014 `req.organizationId` is always `undefined`\\n`orgScope` sets `req.orgId`, but **12 route files read `req.organizationId`** (never assigned \u2192 mysql2 throws on the bind param). This **500s / empties** org-scoped operations across config compliance/backups/templates, device config backups, integrations, invoice settings, late-fee rules, NOC AI, payment reminders, SMS, the **entire AI-support surface** (`supportConversations`, 23 sites), and tax reports. Renamed all **67 occurrences** \u2192 `req.orgId` (JWT `req.user.organizationId` untouched).\\n\\n## Critical / high\\n- **Cash Reconciliation** expand + close \u2192 **500**:\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-5797e1a042420925\",\n    \"filename\": \"docs/FUNCTIONAL-BUGS.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"added\",\n    \"additions\": 186,\n    \"deletions\": 0,\n    \"changes\": 186,\n    \"blob_url\": \"https://github.com/vothalvino/fireisp5.0/blob/b89fc924a55ffb4e5935b30c4295f2fc15b831c5/docs%2FFUNCTIONAL-BUGS.md\"\n  },\n  {\n    \"id\": \"github-pr-file-file-6719d7d02a834619\",\n    \"filename\": \"docs/openapi.json\",\n    \"label\": \"api_or_backend\",\n    \"status\": \"modified\",\n    \"additions\": 64,\n    \"deletions\": 22,\n    \"changes\": 86,\n    \"blob_url\": \"https://\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-bad_chains-911399348b30e08d", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 445189, "scanner": "foundry_dataset", "fingerprint": "c66010493d23c2114018ea7cb9abeabf78cbc43bb2574110086753a00b9896bd", "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": "vothalvino/fireisp5.0#268", "human_labels": ["api_or_backend", "docs_or_claims", "mock_placeholder", "schema_or_data", "test_or_ci", "ui_or_frontend"], "issue_number": "268", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.82, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "gold_candidate", "confidence_tier": "high_confidence", "source_chain_id": "evidence-chain-issue_chain-e48f425d4a9cebd6", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 46, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {"test_or_ci": 2, "api_or_backend": 4, "docs_or_claims": 4, "schema_or_data": 19, "ui_or_frontend": 17}, "linked_commit_count": 1, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#268\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#268\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 46\nLabels: {'mock_placeholder': 1}\nPolarities: {'bad': 1}\nChanged file labels: {'docs_or_claims': 4, 'schema_or_data': 19, 'api_or_backend': 4, 'ui_or_frontend': 17, 'test_or_ci': 2}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-9de162dbf33e9d3e\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/268\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/268\\nTitle: feat: \u00a721 AI-Powered Customer Support System \u2014 routing engine, diagnostic modules, KB/RAG, guardrails, metrics, NOC assistant (FINAL SECTION)\\nBody:\\nImplements all of \u00a721 (21.1\u201321.11) \u2014 the last section of the 21-section build. Orchestrates the existing AI layer (llmProviderService, ai_providers/policies) and the full diagnostic-service suite into a customer-facing AI support system.\\n\\n## Database (migrations 351\u2013358, rollbacks included; tables 313 \u2192 322)\\n9 new tables: support_conversations, support_messages, ai_diagnostic_runs, kb_articles, kb_article_embeddings (MEDIUMBLOB vectors), kb_feedback, support_channel_configs, ai_support_metrics, noc_ai_insights. 14 permissions (support.* + noc_ai.*). Scheduled task ai_support_metrics_rollup (task_type='other', cron '0 1 * * *' + taskRunner case + test).\\n\\n## Backend (OpenAPI 858 paths)\\n9 new services + 2 route files (25 endpoints): intent classifier (LLM + keyword fallback + prompt-injection sanitization), conversation lifecycle with 5 escalation trigger\"\n  }\n]\nChanged files:\n[\n  {\n    \"id\": \"github-pr-file-file-cca29cf65fdcfac1\",\n    \"filename\": \".claude/agent-memory/fullstack-autonomous-engineer/MEMORY.md\",\n    \"label\": \"docs_or_claims\",\n    \"status\": \"modified\",\n    \"additions\": 1,\n    \"deletions\": 0,\n    \"changes\": 1,\n    \"blob_url\": \"https://github.com/vothalvino/fireisp5.0/blob/646e3d4a8979c948cc1f6b4f867e382f9d0d3427/.claude%2Fagent-memory%2Ffullstack-autonomous-engineer%2FMEMORY.md\"\n  },\n  {\n    \"id\": \"github-pr-file-file-b94fba88fdf68740\",\n    \"filename\": \".claude/agent-memory/fullstack-autonomous-engineer/section21-ai-customer-support.md\",\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-bad_chains-16f90a44abbc1f9c", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "gold_candidate"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 445188, "scanner": "foundry_dataset", "fingerprint": "d1b02567c82ed823dbb6bd6aed8ba6f8eff3e18b2090ff0ff02f1d5e7cec85d1", "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": "vothalvino/fireisp5.0#229", "human_labels": ["security_auth_secret"], "issue_number": "229", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-711e7d0fb897fb07", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#229\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_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_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#229\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-6742a64f0d461486\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/229\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/229\\nTitle: Implement strict design-token system for the admin web GUI\\nBody:\\nPer `front_instructions.md`, the frontend needed a clean/flat/industrial design system: a restricted token palette with exactly one accent, borders over shadows, Inter + monospace typography, and accent focus states. The existing UI split styling across `index.css`, a shared `crudStyles.tsx`, and ~25 bespoke pages, with ~35 hardcoded `#e25822`, stray blues/purples, shadow-based cards, no focus rings, and a `system-ui`-only font stack.\\n\\n### Token foundation (`index.css`)\\n- Restricted light/dark palette: zinc/slate neutrals, a single `--accent` (with hover/active/soft/focus-ring), status colors, neutral badge, and sidebar tokens.\\n- Typography tokens (self-hosted **Inter** UI + **JetBrains Mono** data), a 4px spacing scale, and a radius scale capped at 8px.\\n- **Global accent focus rings + hover** on native `input`/`select`/`button` \u2014 works around inline-style objects being unable to express `:focus`/`:hover`.\\n\\n### Component-class layer\\n\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-298faf454452ad8d\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifa\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-bad_chains-1f02e26c8017822b", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 445187, "scanner": "foundry_dataset", "fingerprint": "6e537fa3c5e8f74b56b1e17ce77ab07b46a4092a29950025d35bd71eb7ba29f8", "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": "vothalvino/fireisp5.0#228", "human_labels": ["deployment_env_gap"], "issue_number": "228", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-30492eb0fd281079", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#228\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_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_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#228\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'deployment_env_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-08f8f6c17d33a849\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/228\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/228\\nTitle: Remove version from docker-compose.yml\\nBody:\\nRemoved version specification from docker-compose file.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-71fac7ac78f9ea22\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 6, \"designs\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"ci_contradiction_cluster\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-bad_chains-a3dcb3aae5e93109", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 445186, "scanner": "foundry_dataset", "fingerprint": "42067cc9e4ad0b0b3b6faebe2257fbae4e231b5f5dee92d4a28f45fcc7f16715", "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": "vothalvino/fireisp5.0#223", "human_labels": ["test_ci_gap"], "issue_number": "223", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-926de900a342a371", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#223\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_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_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#223\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'test_ci_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-c3e378eaeff4eaff\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/223\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/223\\nTitle: fix(ci): prevent e2e browser install from hanging on needrestart prompts\\nBody:\\nThe e2e CI job hangs every run during `playwright install --with-deps chromium` because Ubuntu 24.04 (`ubuntu-latest`) ships `needrestart`, which intercepts apt operations and prompts interactively about service restarts \u2014 bypassing `DEBIAN_FRONTEND=noninteractive`.\\n\\n- Set `NEEDRESTART_MODE=l` (list-only, no prompt) and `DEBIAN_FRONTEND=noninteractive` on the step\\n- Remove `needrestart` package before running Playwright's apt-based dependency install\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-dff34d9539708c4b\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 6, \"designs\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"ci_contradiction_cluster\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-bad_chains-6eafe782e6c084fa", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 445185, "scanner": "foundry_dataset", "fingerprint": "06cccba1961ef57d680be4ec575a22a76e413533fd774a6143b39e173a3a1996", "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": "vothalvino/fireisp5.0#216", "human_labels": ["mock_placeholder"], "issue_number": "216", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-0d61a6821b6c00d7", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#216\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_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_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#216\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'mock_placeholder': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-1d1b63bb35065c43\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/216\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/216\\nTitle: Harden install-time encryption and HS256 JWT secrets\\nBody:\\nThe app could fail to launch when install-time encryption/JWT secrets were missing or malformed. Installation now provisions local 64-character HS256-compatible secrets and validates them before startup.\\n\\n- **Install-time secret generation**\\n  - Generates `JWT_SECRET` and `ENCRYPTION_KEY` as 64-character hex values.\\n  - Sets `JWT_ALGORITHM=HS256`.\\n  - Preserves existing valid secrets to avoid breaking sessions or encrypted database values.\\n  - Generates database, replication, and Redis passwords when placeholders are present.\\n\\n- **Runtime validation**\\n  - Requires HS256 for JWTs.\\n  - Requires exactly 64 characters for `JWT_SECRET`.\\n  - Requires `ENCRYPTION_KEY` to be 64-character hex.\\n\\n- **JWT enforcement**\\n  - Signs access tokens with the configured HS256 algorithm.\\n  - Verifies tokens with an explicit algorithm allowlist.\\n\\n```sh\\nJWT_SECRET=<64-char-hex>\\nJWT_ALGORITHM=HS256\\nENCRYPTION_KEY=<64-char-hex>\\n```\\n\\n- **Logging hardening**\\n  - Avoids \"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-83d4f82175db8a0d\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_sourc\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-bad_chains-a94f75382da10f53", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 445184, "scanner": "foundry_dataset", "fingerprint": "dc76288f2b13ce2e5b64779f46c23f84fe08e8c7efe118febdacd816dbb8e9a4", "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": "vothalvino/fireisp5.0#206", "human_labels": ["api_integration_gap"], "issue_number": "206", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-3ef20d458a8be363", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#206\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_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_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#206\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'api_integration_gap': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-a7e2bf74c548a8a9\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"api_integration_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/206\",\n    \"text\": \"GitHub feedback: api_integration_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/206\\nTitle: Debugging install script syntax error\\nBody:\\nPull request created by AI Agent\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-a9a1dede965bdf53\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"repo_has_source_bundle\": 1, \"source_bundle_uses_cooccurrence_profile\": 1}\nArtifact families: {\"ci\": 6, \"designs\": 2, \"docs\": 1}\nHelicopter views: {\"graphs\": 2, \"schemas\": 2}\nBundle labels: {\"source_backed_fake_real_verification_bundle\": 1}\nCo-occurrence labels: {\"ci_contradiction_cluster\": 1}", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-bad_chains-9cffc648dd7e785a", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 445183, "scanner": "foundry_dataset", "fingerprint": "e69b48bd9ce726a6f6fa4c417f2e4bd5c47ff4af1016727e8ab828c4cf607a00", "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": "vothalvino/fireisp5.0#203", "human_labels": ["security_auth_secret"], "issue_number": "203", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-6b19df5de913f485", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#203\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_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_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#203\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-f7a4ca0277249093\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/203\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/203\\nTitle: test: make repo testing-ready \u2014 fix lint warnings + cover zero-coverage models\\nBody:\\n5 ESLint `no-unused-vars` warnings and 26 model files sitting at 0% coverage left the repo in a noisy, incomplete testing state.\\n\\n## ESLint fixes\\n- `resolvers.js` \u2014 dropped `AiProvider`/`AiPhrase` imports (queries use raw `db.query`)\\n- `contracts.js` \u2014 dropped unused `old` binding in PUT handler\\n- `llmProviderService.js` \u2014 removed unused `result` from probe call; added comment clarifying the response is intentionally discarded (connectivity/auth health check only)\\n- `phraseLibraryService.js` \u2014 removed unused `NotFoundError` import\\n\\n## Coverage: 26 thin model files\\nAdded `tests/remainingModels.test.js` \u2014 one test per model asserting `tableName`, `fillable` fields, `hasOrgScope`, and `softDelete` for all previously-untouched `BaseModel` subclasses (`BillingPeriod`, `CfdiConcepto`, `OrganizationUser`, `TaxRate`, `TicketSlaEvent`, etc.).\\n\\n## Net result\\n| Metric | Before | After |\\n|---|---|---|\\n| ESLint warnings | 5 | \"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-7e7f395575c29a4a\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-bad_chains-f688aa130dbba0f9", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 445182, "scanner": "foundry_dataset", "fingerprint": "44fb45220a0769dc1701d3b6292fd2abf6ca5b3963ac9bcb6721f7339e367830", "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": "vothalvino/fireisp5.0#202", "human_labels": ["mock_placeholder"], "issue_number": "202", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-86f26666339bbfda", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#202\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_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_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#202\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'mock_placeholder': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-7d332b2a6c644843\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/202\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/202\\nTitle: fix: extend JWT_SECRET defaults to >= 64 chars to satisfy HS256 validation\\nBody:\\n## Summary\\n\\n`fireisp-app-1` was failing to start with:\\n\\n```\\nError: Fatal configuration errors:\\n  \u2022 JWT_SECRET is only 61 characters \u2014 use at least 64 characters for HS256\\n```\\n\\nThe root cause is that all built-in `JWT_SECRET` placeholder/fallback values were shorter than the 64-character minimum enforced by `validateEnv()`:\\n\\n| File | Old value (chars) | New value (chars) |\\n|------|-------------------|-------------------|\\n| `src/config/index.js` fallback | `change-me-to-a-random-64-char-string` (36) | 64 |\\n| `src/config/index.js` `DEFAULT_SECRET` | same as above | same new value |\\n| `.env.example` | same (36) | 64 |\\n| `docker-compose.e2e.yml` | `e2e-test-jwt-secret-not-for-production` (38) | 64 |\\n| `docker-compose.test.yml` | `test-secret-key-for-integration-tests-only` (42) | 64 |\\n\\n## Changes\\n\\n- **`src/config/index.js`** \u2014 updated the JS fallback value and the `DEFAULT_SECRET` constant (used for the \\\"insecure default\\\" dete\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-0f0e0955e12828cc\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-bad_chains-ece4c6ff74a127c5", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 445181, "scanner": "foundry_dataset", "fingerprint": "4e8bcce005a9be1a7dab24b34735bff21a118fa8efcb77300872626b3bfec477", "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": "vothalvino/fireisp5.0#197", "human_labels": ["mock_placeholder"], "issue_number": "197", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-57c68e103c128fa8", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#197\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_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_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#197\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'mock_placeholder': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-be4de5baf6c4b9c4\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/197\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/197\\nTitle: fix: resolve port-80 conflict via host-nginx mode (Option 1)\\nBody:\\nDocker's nginx container binding ports 80/443 blocks the system-level nginx from starting, which causes Certbot HTTP-01 ACME challenges to hit the wrong process and fail certificate issuance.\\n\\n## What changed\\n\\n### `docker-compose.host-nginx.yml` (new overlay)\\n- Moves the Docker `nginx` service to an opt-in `docker-nginx` profile \u2014 excluded from `docker compose up` by default, freeing ports 80/443\\n- Publishes the `app` container on `127.0.0.1:8080` (loopback only) for host nginx to proxy to\\n- Swaps `certbot_www` named volume \u2192 host bind-mount (`./nginx/certbot-www`) so host nginx can serve ACME challenges directly\\n\\n```bash\\n# Host-nginx mode startup\\ndocker compose \\\\\\n  -f docker-compose.prod.yml \\\\\\n  -f docker-compose.host-nginx.yml \\\\\\n  --env-file .env.prod up -d\\n```\\n\\n### `nginx/host-nginx.conf` (new)\\n- http-block-level only (no `worker_processes`/`events{}`/`http{}` wrappers) \u2014 placed in `/etc/nginx/conf.d/` which Ubuntu's nginx already i\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-86af10a668d375d9\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_a\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-bad_chains-48ab76d688d75311", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 445180, "scanner": "foundry_dataset", "fingerprint": "5cd1f72dd0ef935b4881be6d304eac1b9a95bd36ff2bc6d96f003ae138a10b85", "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": "vothalvino/fireisp5.0#192", "human_labels": ["build_install_failure", "mock_placeholder", "test_ci_gap"], "issue_number": "192", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "ambiguous_needs_more_evidence", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-80bfc7631bd0999c", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 17, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#192\nOutcome: ambiguous_needs_more_evidence\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: vothalvino/fireisp5.0#192\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: ambiguous_needs_more_evidence\nComment count: 7\nLinked commit count: 17\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'mock_placeholder': 2, 'build_install_failure': 2, 'test_ci_gap': 3}\nPolarities: {'bad': 7}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-cd3b2d3b037a8e65\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/192\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/192\\nTitle: feat: \u00a78 RAG \u2013 ChromaDB vector store integration for AI Reply Assistant\\nBody:\\n- [x] Verify schema.sql ends at migration 168 (missing migrations 169-172)\\n- [x] Add `devices.role` column (migration 169)\\n- [x] Add `network_links.medium` + `network_links.role` columns (migration 169)\\n- [x] Add `organization_quotas.max_ai_tokens_month` / `ai_cost_month_usd` / `ai_cost_rollup_month` (migrations 169+170)\\n- [x] Append `ai_providers` (with `embedding_model`), `ai_policies`, `ai_phrase_library`, `ai_forbidden_terms`, `ai_reply_logs`, `contract_topology_paths` tables (migrations 169 + 172)\\n- [x] Append migration 171 seed INSERT for ai.* permissions\\n- [x] Regenerate `pnpm-lock.yaml` so `pnpm install --frozen-lockfile` succeeds\\n- [x] Fix MySQL `ADD COLUMN IF NOT EXISTS` syntax in migrations 169 and 170\\n- [x] Fix backend ESLint: remove useless escapes in aiReplyService.js; fix indent in aiReplyService.js + llmProviderService.js; add `URL` to eslint.config.js globals\\n- [x] Fix frontend TypeScript: TS2769 mock.calls.\"\n  },\n  {\n    \"id\": \"github-feedback-comment-6638f83506a22d43\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"build_install_failure\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/192#issuecomment-4349956801\",\n    \"text\": \"GitHub feedback: build_install_failure\\nPolarity: bad\\nKind: issue_comment\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/192#issuecomment-4349956801\\nTitle: \\nBody:\\nPlease help me fix: Run pnpm install --frozen-lockfile\\r\\nScope: all 3 workspace projects\\r\\n\u2009ERR_PNPM_OUTDATED_LOCKFILE\u2009 Cannot install with \\\"frozen-lockfile\\\" because pnpm-lock\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-bad_chains-e38c53acaef7f95e", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 445179, "scanner": "foundry_dataset", "fingerprint": "730e62bfae15874b14dd2601f954cfa99a4d1bc6f0c583bfac079a35a52f887d", "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": "vothalvino/fireisp5.0#191", "human_labels": ["mock_placeholder"], "issue_number": "191", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-f2d9198929f33d11", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#191\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_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_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#191\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'mock_placeholder': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-7565b161e5c83399\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/191\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/191\\nTitle: fix(security): resolve CodeQL js/missing-token-validation via csrf library\\nBody:\\nCodeQL flags `cookie-parser` middleware serving route handlers without recognised CSRF protection. Custom string-comparison logic is not tracked by the CodeQL dataflow model \u2014 only specific npm packages are.\\n\\n## Changes\\n\\n- **`src/middleware/csrf.js`** \u2014 replace bare `crypto.randomBytes` double-submit comparison with the `csrf` (Pillarjs) library:\\n  - `setCsrfCookie(res, maxAge)` calls `tokens.secretSync()` + `tokens.create(secret)`, storing the secret in `fireisp_csrf_secret` (httpOnly) and the derived token in `fireisp_csrf` (non-httpOnly, SPA-readable)\\n  - `csrfOriginCheck` calls `tokens.verify(secret, token)` \u2014 the pattern CodeQL tracks as valid CSRF mitigation; Origin/Referer fallback retained for sessions predating the new cookies\\n\\n- **`src/routes/auth.js`** \u2014 `setAuthCookies()` issues both CSRF cookies; `clearAuthCookies()` clears them\\n\\n- **`package.json` / `pnpm-lock.yaml`** \u2014 adds `csrf@^3.1.0` (no known CVEs)\\n\\n- \"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-04d606434e081fb1\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\":\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-bad_chains-5ad319bf3f3063b1", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 445178, "scanner": "foundry_dataset", "fingerprint": "616ba10aa88f9d5bb333ac9beb803a02715f7f850626fa81fa37a3057f234369", "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": "vothalvino/fireisp5.0#190", "human_labels": ["security_auth_secret"], "issue_number": "190", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-8ddb10d20f31a8e3", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#190\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_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_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#190\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-b559fc951c9a5a3f\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/190\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/190\\nTitle: Add implementation plan for AI reply assistant\\nBody:\\nCaptures a step-by-step build plan for an AI assistant that drafts client ticket replies, with explicit support for an admin chatbot on/off switch and pluggable LLM providers selectable at runtime.\\n\\n### `docs/ai-reply-assistant.md`\\n\\n- **Data model** \u2014 migration 169 adds `ai_policies`, `ai_providers`, `ai_phrase_library`, `ai_forbidden_terms`, `ai_reply_logs`, `contract_topology_paths`; small `medium`/`role` columns on `network_links` and `devices`; `ai_tokens_month` quota.\\n- **On/off control** \u2014 `ai_policies.enabled` (master) + `enabled_channels` JSON (portal/email/whatsapp/sms); `aiReplyService` short-circuits before any LLM call when disabled.\\n- **Provider abstraction** \u2014 `llmProviderService.chat()` dispatches by `kind` (`openai`, `azure_openai`, `anthropic`, `gemini`, `ollama`, `custom`); keys encrypted at rest, `verify()` round-trip for the UI's \\\"Test connection\\\", priority-based fallback chain when the active provider errors.\\n- **Topology gr\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-086bb6704cd8b021\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artif\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-bad_chains-2ed6a4bd971b4a09", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 445177, "scanner": "foundry_dataset", "fingerprint": "bf975692272a2a7eb86af85a9016abaec205bfd3014a936463e14c7bf38a51cf", "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": "vothalvino/fireisp5.0#189", "human_labels": ["agent_instruction_gap", "deployment_env_gap", "test_ci_gap"], "issue_number": "189", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-e03b258b32d15b0e", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 20, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#189\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: vothalvino/fireisp5.0#189\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 10\nLinked commit count: 20\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'agent_instruction_gap': 4, 'deployment_env_gap': 1, 'test_ci_gap': 5}\nPolarities: {'bad': 10}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-a775a010ac15d4a8\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/189#issuecomment-4346098858\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/189#issuecomment-4346098858\\nTitle: \\nBody:\\nCan you help me fix: (Warning:  2026-04-29T17:29:26.504732Z 10 [Warning] [MY-013360] [Server] Plugin sha256_password reported: ''sha256_password' is deprecated and will be removed in a future release. Please use caching_sha2_password instead') @copilot+claude-sonnet-4.6 \"\n  },\n  {\n    \"id\": \"github-feedback-comment-bfa6fd3e6dfe4251\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"deployment_env_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/189#issuecomment-4346117854\",\n    \"text\": \"GitHub feedback: deployment_env_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/189#issuecomment-4346117854\\nTitle: \\nBody:\\n\\n> Can you help me fix: (Warning:  2026-04-29T17:29:26.504732Z 10 [Warning] [MY-013360] [Server] Plugin sha256_password reported: ''sha256_password' is deprecated and will be removed in a future release....\\n\\nFixed in commit `4195ca5`.\\n\\nThe warning was caused by `default-authentication-plugin=mysql_native_password` forcing MySQL to load the legacy `sha256_password` plugin (which is deprecated since MySQL 8.0.27 and removed in MySQL 9.0). Changes made across 6 files:\\n\\n- **`mysql/primary.cnf`** and **`mysql/replica.cnf`**: removed `default-authentication-plugin = mysql_native_password` (MySQL 8.0 defaults to `caching_sha2_password`)\\n- **`docker-compose.yml`**, **`docker-compose.e2e.yml`**, **`docker-compose.test.yml`**: removed `--default-authentication-plugin=mysql_native_password` from the MySQL `command:` block\\n- **`mysql/init-replica.sh`**: changed the repli\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-bad_chains-cb7dbbe861f12e26", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 445176, "scanner": "foundry_dataset", "fingerprint": "d63d39bd7344445f915c8f7ccca5e9eee67ac3fe23c55a7b512057d77d0c968b", "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": "vothalvino/fireisp5.0#184", "human_labels": ["agent_instruction_gap", "security_auth_secret", "test_ci_gap"], "issue_number": "184", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-de16e010a956ca14", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "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": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#184\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: vothalvino/fireisp5.0#184\nRepo: vothalvino/fireisp5.0\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, 'agent_instruction_gap': 1, 'security_auth_secret': 1}\nPolarities: {'bad': 3}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-e59ef3d167a8187f\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/184\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/184\\nTitle: P3.11: Spec-driven development \u2014 drift detector, route stub generator, CI enforcement\\nBody:\\n`docs/openapi.json` had no automated guard against diverging from `src/utils/openapi.js` (the generator), and there was no tooling to scaffold new routes from the spec. 11 paths were already silently drifted.\\n\\n## Drift detector \u2014 `src/scripts/spec-drift.js`\\n\\nRegenerates the spec in-memory via `generateSpec()` and diffs it against the committed JSON. Detects:\\n- Paths/methods in the generator missing from committed spec (forgot to run `pnpm run openapi`)\\n- Paths/methods in committed spec not in the generator (manual JSON edits)\\n- Duplicate `operationId` values (breaks client codegen + Swagger UI)\\n- `info` / `servers` / `components` meta-section drift\\n\\n```\\n\u2713  docs/openapi.json is in sync with src/utils/openapi.js (196 paths, 0 drift items)\\n```\\n\\n## Route stub generator \u2014 `src/scripts/gen-route.js`\\n\\n```sh\\npnpm run spec:gen -- --resource payment-plans --tag \\\"Payment Plans\\\"\\n```\\n\\nReads `docs/openapi.json` and writes skeleto\"\n  },\n  {\n    \"id\": \"github-feedback-comment-e1e631397456f230\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/184#issuecomment-4338236905\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/184#issuecomment-4338236905\\nTitle: \\nBody:\\n@copilot+claude-sonnet-4.6 Just opened firewall to demo-facturacion.finkok.com and services.test.sw.com.mx for sandbox testing\"\n  },\n  {\n    \"id\": \"github-feedback-commen\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-bad_chains-e3c4507c60c390b2", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 445175, "scanner": "foundry_dataset", "fingerprint": "76bfcd63e99419eaae453445fcc10026a87bae724f96e9d2235d955c843d9606", "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": "vothalvino/fireisp5.0#182", "human_labels": ["test_ci_gap"], "issue_number": "182", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.67, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-14fed78af4710374", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 10, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#182\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: vothalvino/fireisp5.0#182\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 4\nLinked commit count: 10\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'test_ci_gap': 4}\nPolarities: {'bad': 4}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-d51ce97c890f0918\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/182#issuecomment-4337412457\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/182#issuecomment-4337412457\\nTitle: \\nBody:\\n@copilot+gpt-5.4 Can you help me fix the problem of the CI container scan?\"\n  },\n  {\n    \"id\": \"github-feedback-comment-3211f4af6cf34e1a\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/182#issuecomment-4337425457\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/182#issuecomment-4337425457\\nTitle: \\nBody:\\nCan you give a security report based on the CI of the databases? @copilot+claude-sonnet-4.6 \"\n  },\n  {\n    \"id\": \"github-feedback-comment-134b7001b14ce55f\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"test_ci_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/182#issuecomment-4337485017\",\n    \"text\": \"GitHub feedback: test_ci_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/182#issuecomment-4337485017\\nTitle: \\nBody:\\n\\n> @copilot+gpt-5.4 Can you help me fix the problem of the CI container scan?\\n\\nFixed in `5c8a471`.\\n\\nThe failure was in the Docker build step, not Trivy itself: the runtime image installs production deps only, but `package.json` still ran `prepare: husky`, so CI hit `sh: husky: not found`. I changed `prepare` to run Husky only when `node_modules/.bin/husky` exists.\\n\\nValidated with `npm run prepare`, a local `docker build`, and the targeted changelog/subscription tests. No UI changes in this fix, so there isn\u2019t a UI screenshot to attach.\"\n  },\n  {\n    \"id\": \"github-feedback-comment-5aa00297045f5d5f\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-bad_chains-556f6ff3c43a5cf4", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 445174, "scanner": "foundry_dataset", "fingerprint": "12ff65f281a97a76a49cfb6f199bdc9b2cf63527cbbce8335dee1eecaf8bec62", "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": "vothalvino/fireisp5.0#181", "human_labels": ["security_auth_secret"], "issue_number": "181", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-2d74927ea175808e", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#181\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_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_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#181\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-248a4a91e6068c8d\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/181\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/181\\nTitle: P3.7: WebSocket hub for real-time live dashboards\\nBody:\\nSSE-only push was one-way and required reconnects on every HTTP/2 proxy hop. This adds a proper authenticated WebSocket hub at `/ws` with dual SSE+WS delivery, so browser clients get lower-latency push without dropping the SSE backward-compat path.\\n\\n## Backend\\n\\n- **`src/services/wsHub.js`** \u2014 `WsHub` class + singleton. Attaches at `/ws` (separate from FireRelay's `/ws/firerelay`). JWT auth via first message (`{type:\\\"auth\\\",token:\\\"...\\\"}`) \u2014 access token only, no DB round-trip. Per-org channels: `notifications`, `metrics`, `outages`, `ticket:<id>`; cross-org subscriptions rejected with close `4003/4004`. Native ping/pong heartbeat (30s interval, 10s pong timeout).\\n- **`src/routes/events.js`** \u2014 `broadcast()` now dual-dispatches to SSE clients _and_ `wsHub.broadcastWs()`. SSE path fully preserved; wsHub errors silently swallowed so test environments (no attached hub) are unaffected.\\n- **`src/server.js`** \u2014 `wsHub.attach(server)` after tunnel atta\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-e36ce4c4cf3a607d\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_arti\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-bad_chains-4bf0cad2d83bb7bb", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 445173, "scanner": "foundry_dataset", "fingerprint": "b5c08eb7012e92d0642b1399421c841cb8e2cff8009ccf73b1f0de16937dbcf1", "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": "vothalvino/fireisp5.0#179", "human_labels": ["mock_placeholder"], "issue_number": "179", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "claimed_resolved_unverified", "source_backed": true, "max_confidence": 0.59, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-f1922e0f0e9b4aa8", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 1, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#179\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: vothalvino/fireisp5.0#179\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: claimed_resolved_unverified\nComment count: 1\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'mock_placeholder': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-1dc56c30883d35a5\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/179\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/179\\nTitle: P3.5 \u2014 i18n message catalogue (EN / ES / pt-BR)\\nBody:\\nNo internationalisation infrastructure existed despite EN/ES/pt-BR support being claimed. All UI strings were hardcoded English. No tooling existed to enforce translation completeness.\\n\\n## i18n infrastructure\\n- `i18next` + `react-i18next` + `i18next-browser-languagedetector` added to frontend\\n- `frontend/src/i18n/index.ts` \u2014 language detection order: cookie \u2192 localStorage \u2192 `navigator.language`; fallback `en`; imported in `main.tsx` before `<App />`\\n\\n## Locale catalogues\\n- 178 keys across 18 sections: `common`, `login`, `portalLogin`, `nav` (all 19 items), `layout`, `portalLayout`, `dashboard` (KPIs + overdue table + all loading/error states), `drDrill` (never-run / failed / overdue modal variants), `portalDashboard`, and all list pages (`clientList` \u2192 `userList`)\\n- `es.json` (Spanish MX) and `pt-BR.json` (Portuguese BR) \u2014 both at 100% key coverage\\n- Interpolation placeholders (`{{name}}`, `{{total}}`, `{{days}}`, etc.) preserved identically across\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-62bfa34e4aacc558\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9, \"re\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-bad_chains-a6c1e19384e99b58", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 445172, "scanner": "foundry_dataset", "fingerprint": "a85ad3c186509a9243f38ca87726be8def3370dae98c736f1d305eb5ebd5ac32", "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": "vothalvino/fireisp5.0#178", "human_labels": ["security_auth_secret"], "issue_number": "178", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-dedc937237bb6f0e", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#178\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_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_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#178\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-d306ce7db0537ce8\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/178\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/178\\nTitle: feat(P3.4): httpOnly + SameSite=Strict cookies \u2014 eliminate XSS refresh-token theft\\nBody:\\nRefresh tokens stored in `localStorage` are readable by any XSS payload. This moves them to httpOnly SameSite=Strict cookies, making them inaccessible to JavaScript entirely.\\n\\n## Backend\\n\\n- **`cookie-parser`** added; wired in `app.js` after body parsers\\n- **`src/routes/auth.js`** \u2014 `setAuthCookies` / `clearAuthCookies` helpers; `/login`, `/refresh`, `/logout`, `/switch-organization` now manage two cookies:\\n  - `fireisp_access` \u2014 JWT, `Path=/api`, 15 m maxAge\\n  - `fireisp_refresh` \u2014 opaque token, **`Path=/api/v1/auth/refresh` only** (minimal scope), 7 d maxAge\\n  - Both: `HttpOnly; SameSite=Strict; Secure` (prod). JSON body unchanged for API-client backward compat.\\n  - `/refresh` accepts token from cookie **or** body; cookie wins\\n- **`src/middleware/auth.js`** \u2014 `authenticate` falls back to `fireisp_access` cookie when no `Authorization: Bearer` present; `optionalAuth` updated to match\\n- **`src/middleware/csrf.j\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-174a6a28b8cf6865\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_art\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-bad_chains-a165b2362d88e91c", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 445171, "scanner": "foundry_dataset", "fingerprint": "1f8e4900d5d3624e8898dbea031a127b7430010e160bd4f0a374e8da2d9fc040", "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": "vothalvino/fireisp5.0#175", "human_labels": ["security_auth_secret"], "issue_number": "175", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-78a2c2b2ade5d3ec", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#175\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_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_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#175\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-f869e2344f0699f6\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/175\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/175\\nTitle: P3.1: Frontend accessibility audit \u2014 axe-core WCAG 2.1 AA + aria-label fixes\\nBody:\\nAdds automated WCAG 2.1 AA accessibility scanning to the frontend test suite using `jest-axe`, and fixes two real violations surfaced by the scan.\\n\\n## Accessibility test infrastructure\\n- `jest-axe@10` added to frontend devDependencies; `toHaveNoViolations` registered globally in `src/test/setup.ts`\\n- `src/test/a11y.test.tsx` \u2014 8 axe tests covering Login, Dashboard, ClientList (populated + empty), InvoiceList, TicketList, UserList, PortalLogin; all scoped to `wcag2a`/`wcag2aa` tags with `color-contrast` disabled (jsdom has no CSS engine)\\n\\n## WCAG violations fixed\\n`TicketList` and `UserList` filter `<select>` elements had no accessible name \u2014 they lacked a `<label for>` association, `aria-label`, or `title`. Fixed with `aria-label`:\\n\\n```tsx\\n// Before\\n<select style={filterSelect} value={statusFilter} onChange={\u2026}>\\n\\n// After\\n<select aria-label=\\\"Filter by status\\\" style={filterSelect} value={statusFilter} onChange={\u2026}>\\n``\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-2b3c07ba681014cd\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_sour\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-bad_chains-e314666d0ae3267b", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 445170, "scanner": "foundry_dataset", "fingerprint": "e4fb18f82557f5cab99cb43fcd28beb4cb7315ee6b5df3bd678d5bdd1a69d0d4", "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": "vothalvino/fireisp5.0#171", "human_labels": ["mock_placeholder"], "issue_number": "171", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-251ff59aae6b6356", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#171\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_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_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#171\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'mock_placeholder': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-7a973ff70a391a75\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/171\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/171\\nTitle: fix: add missing quota-check db mock to POST tests returning 500\\nBody:\\nThe P2.4 `quotaCheck` middleware prepends a `SELECT * FROM organization_quotas` query to every `POST /api/clients` and `POST /api/devices` handler. Tests written before P2.4 didn't mock this query, so the first mocked value was consumed by the quota lookup instead of the INSERT \u2014 shifting the entire mock chain and producing 500s.\\n\\n## Changes\\n\\n- **`tests/coreRoutes.test.js`** \u2014 prepend quota mock to `POST /api/devices` create test\\n- **`tests/routeIntegration.test.js`** \u2014 prepend quota mock to `POST /api/clients` create test\\n- **`tests/e2ePaymentFlow.test.js`** \u2014 prepend quota mock to three affected locations: happy-path create, validation-rejection test (had zero mocks), and full pipeline\\n\\n```js\\ndb.query\\n  // quotaCheck: SELECT * FROM organization_quotas \u2192 no row \u2192 unlimited\\n  .mockResolvedValueOnce([[]])\\n  .mockResolvedValueOnce([{ insertId: 10, affectedRows: 1 }])\\n  .mockResolvedValueOnce([[mockClient]])\\n  .mockResolvedValueOnce([\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-dcbf8e3ea88ae1d8\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-bad_chains-7cfc1e099911859e", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 445169, "scanner": "foundry_dataset", "fingerprint": "5861402427ec67d07a9fac0036a126b0b9caca2f75ab399a9b4dc9259ca0a9ac", "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": "vothalvino/fireisp5.0#17", "human_labels": ["agent_instruction_gap", "data_schema_persistence"], "issue_number": "17", "thread_label": "thread_has_human_issue_and_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.6, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "weak_supervision", "confidence_tier": "weak_supervision", "source_chain_id": "evidence-chain-issue_chain-fc9d33626210acd9", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 1, "helicopter_view_count": 4, "source_artifact_count": 9, "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": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#17\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: vothalvino/fireisp5.0#17\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_and_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 2\nLinked commit count: 1\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'agent_instruction_gap': 1, 'data_schema_persistence': 1}\nPolarities: {'bad': 2}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-c33ec30f5bbc079c\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"agent_instruction_gap\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/17#issuecomment-4210116166\",\n    \"text\": \"GitHub feedback: agent_instruction_gap\\nPolarity: bad\\nKind: issue_comment\\nRepo: vothalvino/fireisp5.0\\nAuthor: vothalvino (User)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/17#issuecomment-4210116166\\nTitle: \\nBody:\\n@copilot+claude-opus-4.6 is this the best idea or should it all be put into the existing files since it is a brandnew software?\"\n  },\n  {\n    \"id\": \"github-feedback-comment-0af6dc0b3d0150ef\",\n    \"kind\": \"issue_comment\",\n    \"label\": \"data_schema_persistence\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/17#issuecomment-4210141824\",\n    \"text\": \"GitHub feedback: data_schema_persistence\\nPolarity: bad\\nKind: issue_comment\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/17#issuecomment-4210141824\\nTitle: \\nBody:\\n\\n> @copilot+claude-opus-4.6 is this the best idea or should it all be put into the existing files since it is a brandnew software?\\n\\nYou're right \u2014 since this is brand new software with no production deployments, ALTER TABLE migrations are unnecessary overhead. In commit `e6df9ac` I folded everything directly into the original CREATE TABLE files:\\n\\n- `001` users, `002` clients, `004` sites, `005` plans, `036` warehouses \u2192 `organization_id` baked in\\n- `009` devices \u2192 `contract_id` + UNIQUE serial_number baked in\\n- `010` tickets \u2192 `contract_id` baked in\\n- `014` jobs \u2192 `contract_id` + `ticket_id` baked in\\n- `034` connection_logs \u2192 standalone IP indexes baked in\\n- `040` credit_notes \u2192 `payment_id` baked in\\n\\nThe only new migration file is `042_create_payment_allocations_table.sql` (a new table, so it needs its own CREATE TABLE). All the ALTER TABLE files (043\u2013048) are deleted.\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-10f8c132185d9b6d\", \"evidence-chain-comment_to_commit-5a6a5b7081\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-bad_chains-1ed9b2f006cbca36", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "weak_supervision"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 445168, "scanner": "foundry_dataset", "fingerprint": "3f969937009000a2dacd1e1d137f3178a12162d826898d80a0f8fa0d8d6780b1", "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": "vothalvino/fireisp5.0#169", "human_labels": ["mock_placeholder"], "issue_number": "169", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-ad5e5442cc2ec192", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#169\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_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_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#169\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'mock_placeholder': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-6bddacc57d617927\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/169\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/169\\nTitle: feat(P2.5): Helm chart + GitOps for FireISP 5.0\\nBody:\\nP2.5 of the production-hardening roadmap: replace the flat `k8s/*.yaml` manifests with a fully parameterised Helm chart and add an Argo CD GitOps deployment path.\\n\\n### Helm chart (`charts/fireisp/`)\\n- `Chart.yaml` \u2014 appVersion `5.0.0`, semver-aligned with the app\\n- `values.yaml` \u2014 full surface: `replicaCount`, `image`, `ingress` (TLS + cert-manager `clusterIssuer`), `config` (ConfigMap), `secrets` (`REPLACEME` placeholders \u2014 not valid-looking strings), `hpa`, `pdb`, `persistence`, `monitoring.enabled`, `cosignPolicy.enabled`, `extraEnv/Volumes`, affinity/tolerations\\n- **13 templates**: `_helpers.tpl`, `NOTES.txt`, namespace, configmap, secret (`helm.sh/resource-policy: keep`), serviceaccount, deployment, service, ingress, hpa, pdb, pvc, prometheus-alerts (gated by `monitoring.enabled`), cosign-policy (gated by `cosignPolicy.enabled`)\\n\\n### `docs/deployment.md`\\n- **Helm Chart Deployment** section: quick-start one-liner, values override guide, migrate\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-007aa086ce8e0590\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifact\": 9,\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-bad_chains-db1311602c619905", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 445167, "scanner": "foundry_dataset", "fingerprint": "1217a40acdf41a5ed223f8af8913c1b6d1678e61583c9aee2092c4a57981146f", "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": "vothalvino/fireisp5.0#166", "human_labels": ["security_auth_secret"], "issue_number": "166", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-a18986f2caaae240", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#166\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_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_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#166\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-20076dc6b2a9c79e\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/166\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/166\\nTitle: P2.1: Per-organization SSO \u2014 SAML 2.0 + OIDC\\nBody:\\nImplements ROADMAP_PRODUCTION.md P2.1: per-tenant SSO via SAML 2.0 and OIDC, gated by `FEATURE_SSO=true` (default off). IdP group names map to FireISP roles via a config table; users are auto-provisioned on first login when enabled.\\n\\n## Database (migration 165)\\n- `organization_sso_configs` \u2014 one row per `(org, provider_type)` storing IdP endpoints, encrypted secrets (`oidc_client_secret`, `saml_sp_private_key` via existing AES-256-GCM), attribute mapping JSON, auto-provision flag, and default role\\n- `organization_sso_group_mappings` \u2014 IdP group name \u2192 FireISP role (`admin`/`manager`/`technician`/`billing`/`readonly`)\\n- `sso_auth_states` \u2014 short-lived (10 min) OIDC state+nonce store for stateless callback validation\\n\\n## Service (`src/services/ssoService.js`)\\nUses `@node-saml/node-saml@5` and `openid-client@5` (CommonJS-compatible, no Passport/session dependency):\\n- **SAML**: `generateSamlLoginUrl()` \u2192 `processSamlAssertion()` \u2192 `findOrCreateSsoUser\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-4ab5ef55a6cd051b\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artif\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-bad_chains-ef5703303ed193b9", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 445166, "scanner": "foundry_dataset", "fingerprint": "e92cefddcfd7d8ee86a547656573896a7e025f464a7328357d4982e10aec2e59", "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": "vothalvino/fireisp5.0#161", "human_labels": ["security_auth_secret"], "issue_number": "161", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-fceecd126625acae", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#161\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_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_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#161\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-0501cffe953f7b40\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/161\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/161\\nTitle: Sync README with migrations 159-164\\nBody:\\nREADME was outdated at migration 163. Repository now has 164 migrations and 111 tables.\\n\\n## Updates\\n\\n- **Migration range**: 001-163 \u2192 001-164\\n- **Table count**: 110 \u2192 111\\n- **Scheduled tasks**: 9 \u2192 15 (added `payment_retry`, `billing_cycle`, `database_backup`, `config_backup`, `webhook_retry`, `quarterly_dr_drill`)\\n\\n## New Tables Added\\n\\n| # | Table | Purpose |\\n|---|-------|---------|\\n| 31 | `snmp_traps` | Unsolicited SNMP trap receiver log (coldStart, linkDown, etc.) |\\n| 32 | `dr_drill_logs` | Automated quarterly DR drill audit trail |\\n| 49 | `portal_refresh_tokens` | Client portal long-lived authentication tokens |\\n| 89 | `payment_retries` | Failed payment retry scheduler with exponential backoff |\\n\\n## Migration Descriptions\\n\\nAdded missing migration descriptions for 159-164:\\n- **159**: Auto-create support tickets from critical/high alerts\\n- **160**: Portal authentication credentials on clients table\\n- **161**: Portal refresh token storage\\n- **162**: Webho\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-c489d3017815131c\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_ha\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-bad_chains-f39d689743533947", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 445165, "scanner": "foundry_dataset", "fingerprint": "68e3f983d967199e66336aa087f7b6fec229e63117a45a64092203588b531ad8", "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": "vothalvino/fireisp5.0#143", "human_labels": ["security_auth_secret"], "issue_number": "143", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-f64ff64d3c75acf5", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#143\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_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_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#143\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-a2541e2deca7ea00\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/143\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/143\\nTitle: M5.10: Multi-tenant active-organization switching\\nBody:\\nThe final roadmap item \u2014 multi-tenant support \u2014 was the only remaining gap: although `organizations`, `organization_users`, `orgScope`, the per-tenant rate limiter, and the JWT `orgId` claim already existed, a user with memberships in multiple orgs had no way to change their active org without logging out.\\n\\n### Backend\\n- New `authService.switchOrganization(userId, orgId, currentRefreshToken)`:\\n  - Verifies a non-deleted `organization_users` row joined against a non-deleted `organizations` row.\\n  - Requires the current refresh token (looked up scoped to `user_id`) so a stolen access token alone cannot pivot tenants.\\n  - Mints a new access token with the requested `orgId` claim and rotates the refresh token within the same `token_family`.\\n- `POST /api/v1/auth/switch-organization` route + validation schema (`organizationId \u2265 1`, `refreshToken` required); OpenAPI documented.\\n\\n### Frontend\\n- `AuthContext` gains `switchOrganization(orgId)` and an `\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-23fa7178a7b2b6c4\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_arti\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-bad_chains-65b2c5c0f09de142", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 445164, "scanner": "foundry_dataset", "fingerprint": "f1299a1244a4e14f0a99871aaa508a31b71865802526f97422aa4ff74271ab27", "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": "vothalvino/fireisp5.0#140", "human_labels": ["mock_placeholder"], "issue_number": "140", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-28ccb1ad08e2cb57", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#140\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_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_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#140\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'mock_placeholder': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-c09c1fab913dd3ba\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"mock_placeholder\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/140\",\n    \"text\": \"GitHub feedback: mock_placeholder\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/140\\nTitle: feat(M5.7): database read replica routing for reports and dashboard\\nBody:\\nAll-read SELECT queries in `reportService` and `dashboardController` previously hit the primary DB pool, wasting write-master capacity on analytical workloads.\\n\\n## Core changes\\n\\n**`src/config/database.js`**\\n- Adds `replicaPool` \u2014 second `mysql2` pool created only when `DB_REPLICA_HOST` is set; `null` otherwise (single-server deployments are unaffected)\\n- Adds `queryReplica(sql, params)` \u2014 routes to `replicaPool` when available, falls back to primary pool transparently; records a `SELECT` metric via Prometheus\\n- `close()` drains both pools when replica is configured\\n\\n**`src/services/reportService.js`**\\n- `agingReport`, `financialSummary`, `technicianReport`, `subscriberGrowthReport` \u2192 `db.queryReplica`\\n\\n**`src/controllers/dashboardController.js`**\\n- `summary`, `revenue`, `mrr`, `deviceHealth`, `overdue` \u2192 `db.queryReplica`\\n\\n**`.env.example`**\\n- Documents five new optional vars: `DB_REPLICA_HOST`, `DB_REPLICA_PORT`, `DB_REPLICA_US\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-b6f15643f7dda0cb\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_artifa\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-bad_chains-ec700dad367ceccb", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 445163, "scanner": "foundry_dataset", "fingerprint": "58afbf1fe596633e011d1b785d10ae572fc312ea45d19bbf0869bfcab44bbc85", "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": "vothalvino/fireisp5.0#136", "human_labels": ["security_auth_secret"], "issue_number": "136", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-26cb397d77dd5a89", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#136\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_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_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#136\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-5187f2987d478086\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/136\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/136\\nTitle: feat(M5.3): SMS notification integration (Twilio + generic HTTP provider)\\nBody:\\nImplements Milestone 5.3: SMS/WhatsApp delivery via Twilio or any generic HTTP SMS gateway, with queue-based dispatch mirroring the existing email transport pattern.\\n\\n## Core service \u2014 `smsTransport.js`\\n- `sendSms()` \u2014 immediate send + `sms_logs` insert\\n- `queueSms()` \u2014 inserts `status='queued'` row for async pickup\\n- `processQueue()` \u2014 drains up to 50 queued rows per invocation (called by new `sms_send` scheduled task, every minute)\\n- `retryLog(id)` \u2014 re-dispatch a specific `failed`/`undelivered` row\\n- `detectProvider()` \u2014 prefers `SMS_PROVIDER=generic` + `SMS_PROVIDER_URL` over Twilio when both are set\\n\\nGeneric provider contract: POST JSON `{ to, from, body, channel }` to `SMS_PROVIDER_URL` with optional `Authorization: ******\\n\\n## Bug fixes bundled in\\n- `SmsLog.js` `fillable` was using wrong column names (`recipient`, `message`) \u2014 corrected to `phone_number`, `message_body` to match the `sms_logs` DDL\\n- `notification\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-45c9bb16a5e97efe\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_a\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-bad_chains-fe62550054261472", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_bad_chain", "level": "error", "message": {"text": "Foundry mined bad chains: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 445162, "scanner": "foundry_dataset", "fingerprint": "c7e014db48ff35f4b5930178b5435f97521f43c112bc7cd5f14643c077ff3cb9", "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": "vothalvino/fireisp5.0#134", "human_labels": ["security_auth_secret"], "issue_number": "134", "thread_label": "thread_has_human_issue_without_fix_context", "outcome_label": "not_resolved_or_not_observed", "source_backed": true, "max_confidence": 0.0, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "negative_or_unresolved", "confidence_tier": "unresolved", "source_chain_id": "evidence-chain-issue_chain-cbd13fb669bc4647", "helicopter_views": {"graphs": 2, "schemas": 2}, "artifact_families": {"ci": 6, "docs": 1, "designs": 2}, "source_chain_kind": "issue_chain", "changed_file_count": 0, "source_graph_label": "source_backed_multi_signal_graph", "changed_file_labels": {}, "linked_commit_count": 0, "helicopter_view_count": 4, "source_artifact_count": 9, "classification_reasons": ["source_graph_has_real_artifacts", "source_graph_has_verification_artifacts", "repo_has_isolated_helicopter_views", "link_quality_unresolved", "high_risk_human_feedback_label"], "linked_ci_commit_count": 0, "verification_artifact_count": 6, "design_schema_api_artifact_count": 2}, "text": "Comment chain pattern product: bad_chains\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#134\nOutcome: not_resolved_or_not_observed\nThread label: thread_has_human_issue_without_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_unresolved, high_risk_human_feedback_label\nChain evidence:\nIssue/PR evidence chain: vothalvino/fireisp5.0#134\nRepo: vothalvino/fireisp5.0\nThread label: thread_has_human_issue_without_fix_context\nOutcome: not_resolved_or_not_observed\nComment count: 1\nLinked commit count: 0\nLinked CI commit count: 0\nLinked CI labels: {}\nChanged file count: 0\nLabels: {'security_auth_secret': 1}\nPolarities: {'bad': 1}\nChanged file labels: {}\nExamples:\n[\n  {\n    \"id\": \"github-feedback-comment-67c2abf7dd4c7a50\",\n    \"kind\": \"pull_request_body\",\n    \"label\": \"security_auth_secret\",\n    \"polarity\": \"bad\",\n    \"url\": \"https://github.com/vothalvino/fireisp5.0/pull/134\",\n    \"text\": \"GitHub feedback: security_auth_secret\\nPolarity: bad\\nKind: pull_request_body\\nRepo: vothalvino/fireisp5.0\\nAuthor: Copilot (Bot)\\nURL: https://github.com/vothalvino/fireisp5.0/pull/134\\nTitle: feat(M5.1): Client self-service portal \u2014 invoices, online payment, tickets\\nBody:\\nImplements Milestone 5 item 1: a client-facing self-service portal at `/portal/*`, fully isolated from the staff admin UI with its own auth surface.\\n\\n## Auth\\n- `portalAuthService` issues JWTs with `{ type: 'portal' }` claim \u2014 rejected by staff `authenticate` middleware; staff tokens rejected by `portalAuthenticate`\\n- bcrypt password stored on `clients.portal_password_hash`; lockout after 5 failed attempts (15 min)\\n- Refresh token rotation via new `portal_refresh_tokens` table; tokens keyed to `client_id` with cascade delete\\n- Admin endpoint `PUT /clients/:id/portal-password` to enable/reset portal access\\n\\n## Backend routes (`/api/v1/portal`)\\n| Method | Path | Description |\\n|--------|------|-------------|\\n| POST | `/auth/login` `/auth/refresh` `/auth/logout` | Portal auth |\\n| GET | `/auth/me` \u00b7 PUT `/auth/password` | Profile + password change |\\n| GET | `/invoices` | Paginated, status-filterable invoice list |\\n| GET | `\"\n  }\n]\nChanged files:\n[]\nLinked chain ids:\n[\"evidence-chain-comment_to_commit-e521661421771589\"]\nSource graph evidence:\nSource evidence repo graph summary\nRepo: vothalvino/fireisp5.0\nGraph label: source_backed_multi_signal_graph\nNodes: 17\nEdges: 26\nNode types: {\"cooccurrence_profile\": 1, \"github_repo_summary\": 1, \"helicopter_repo_view\": 4, \"repo\": 1, \"source_artifact\": 9, \"source_bundle\": 1}\nEdge types: {\"artifact_needs_claim_verification\": 1, \"artifact_supports_design_schema_api\": 2, \"artifact_supports_verification\": 6, \"repo_has_cooccurrence_profile\": 1, \"repo_has_github_evidence_summary\": 1, \"repo_has_graphs_helicopter_view\": 2, \"repo_has_schemas_helicopter_view\": 2, \"repo_has_source_\n[truncated by importer]", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "comment-chain-pattern-bad_chains-c7fdc0926c051592", "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": "vothalvino/fireisp5.0", "source_dataset": "comment_chain_patterns/bad_chains", "training_usage": "negative_or_unresolved"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 456473, "scanner": "foundry_dataset", "fingerprint": "4618fc12d701a78e777be036fefac8a4668e40ce7c9a42c7e035e545457c70e6", "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": {"source_or_other": 6, "security_auth_secret": 1, "verification_or_tests": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 30, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 6, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 6, "thread_has_comment_chain": 1, "comment_chain_links_commit": 1, "comment_chain_touches_file": 6, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 16, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 1, "pr_file": 6, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#277", "issue_number": "277", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-ce425d03de28ca09", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"source_or_other": 24}}, "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: supported_by_high_confidence_link\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#277\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#277\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#277\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 277\nGraph consistency label: supported_by_high_confidence_link\nNodes: 16\nEdges: 30\nNode types: {'pr_file': 6, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 6, 'comment_chain_touches_file': 6, 'issue_chain_touches_file': 6, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'source_or_other': 6, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'comment_has_related_commit_context': 1, 'verification_or_tests': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'high_confidence': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-f6f16034bfa7cb3f", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 456472, "scanner": "foundry_dataset", "fingerprint": "6835f5f1631684df095b414b9a7e6ee5042b023e19751ea521b26eaf7d46f49e", "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": {"security_auth_secret": 1, "verification_or_tests": 2, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 13, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 2, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 11, "node_types": {"repo": 1, "commit": 2, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#276", "issue_number": "276", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-c18d3f07ce494fbc", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {}}, "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: supported_by_high_confidence_link\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#276\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#276\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#276\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 276\nGraph consistency label: supported_by_high_confidence_link\nNodes: 11\nEdges: 13\nNode types: {'link_quality': 3, 'commit': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'comment_chain_links_commit': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'comment_has_related_commit_context': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'high_confidence': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-364e3374d4ee8a5d", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 456471, "scanner": "foundry_dataset", "fingerprint": "967ad09727a8546473feb0fa0940a48cb7c8f0fa1251634e3f43a886a9eaaabf", "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": {"security_auth_secret": 1, "verification_or_tests": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 12, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 10, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#275", "issue_number": "275", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-fd85d28eecb49cea", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {}}, "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: supported_by_high_confidence_link\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#275\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#275\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#275\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 275\nGraph consistency label: supported_by_high_confidence_link\nNodes: 10\nEdges: 12\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'comment_has_related_commit_context': 1, 'verification_or_tests': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'high_confidence': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-a39215d071319458", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 456470, "scanner": "foundry_dataset", "fingerprint": "4dc67a85b22d3910a81fe59e5a81c15cb69d9dd147ff014dc1930130a6a42169", "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": {"security_auth_secret": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#229", "issue_number": "229", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-d291c10e8eb9632a", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {}}, "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#229\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#229\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#229\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 229\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-1a31400a097351b0", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 456469, "scanner": "foundry_dataset", "fingerprint": "631a4aed64285d0610c0d1866b295fc7f54633d021a41aa693bd7d45b753a20f", "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": {"test_ci_gap": 17, "runtime_failure": 2, "api_integration_gap": 1, "security_auth_secret": 2, "agent_instruction_gap": 2, "verification_or_tests": 14, "human_feedback_general": 7, "data_schema_persistence": 1, "unlinked_human_feedback": 6, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 10, "ambiguous_needs_more_evidence": 24, "comment_has_related_commit_context": 16, "human_reported_issue_no_linked_fix": 10, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"not_resolved_or_not_observed": 20, "ambiguous_needs_more_evidence": 48}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 241, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 32, "thread_has_comment": 32, "chain_has_link_quality": 34, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 32, "comment_chain_links_commit": 75, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 32}, "node_count": 116, "node_types": {"repo": 1, "commit": 14, "thread": 1, "comment": 32, "fix_outcome": 1, "issue_chain": 1, "link_quality": 34, "comment_chain": 32}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#208", "issue_number": "208", "quality_tiers": {"unresolved": 16, "weak_supervision": 18}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-da74742cce9c4026", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#208\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#208\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#208\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 208\nGraph consistency label: weak_supervision_needs_review\nNodes: 116\nEdges: 241\nNode types: {'link_quality': 34, 'comment': 32, 'comment_chain': 32, 'commit': 14, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 75, 'chain_has_link_quality': 34, 'thread_has_comment': 32, 'thread_has_comment_chain': 32, 'comment_has_chain': 32, 'issue_chain_has_comment_chain': 32, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 24, 'test_ci_gap': 17, 'comment_has_related_commit_context': 16, 'verification_or_tests': 14, 'human_reported_issue_no_linked_fix': 10, 'not_resolved_or_not_observed': 10, 'human_feedback_general': 7, 'unlinked_human_feedback': 6, 'agent_instruction_gap': 2, 'security_auth_secret': 2, 'runtime_failure': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'api_integration_gap': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 48, 'not_resolved_or_not_observed': 20}\nQuality tiers: {'weak_supervision': 18, 'unresolved': 16}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-ffe56f02c7880bab", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 456468, "scanner": "foundry_dataset", "fingerprint": "8e081898dd2f8aa39d0467aa83ea9b5a0243dd4a0427217355f980ca14911077", "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": {"security_auth_secret": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#203", "issue_number": "203", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-7969573cb4f1c4bf", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {}}, "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#203\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#203\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#203\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 203\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-1285df581e3ce34f", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 456467, "scanner": "foundry_dataset", "fingerprint": "96af069bf7a4f4ad2362e28f632bc8cdfe47a82412e714283683335203b9bfb4", "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": {"security_auth_secret": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#190", "issue_number": "190", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-8709fb5d3df7ad0b", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {}}, "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#190\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#190\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#190\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 190\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-d0f89c3ea34886de", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 456466, "scanner": "foundry_dataset", "fingerprint": "7f49e0bdfa1ca0ccfde4289373055fc328ef3fbac8c758524b6aab261d99f00e", "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": {"test_ci_gap": 1, "security_auth_secret": 1, "agent_instruction_gap": 1, "verification_or_tests": 5, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 4, "ambiguous_needs_more_evidence": 1, "comment_has_related_commit_context": 1, "human_reported_issue_no_linked_fix": 2, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"not_resolved_or_not_observed": 8, "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": 3, "thread_has_comment": 3, "chain_has_link_quality": 5, "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": 20, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 5, "comment_chain": 3}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#184", "issue_number": "184", "quality_tiers": {"unresolved": 2, "weak_supervision": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-0271c7d30540b9be", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#184\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#184\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#184\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 184\nGraph consistency label: weak_supervision_needs_review\nNodes: 20\nEdges: 26\nNode types: {'commit': 5, 'link_quality': 5, 'comment': 3, 'comment_chain': 3, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 5, 'thread_has_comment': 3, 'thread_has_comment_chain': 3, 'comment_has_chain': 3, 'issue_chain_has_comment_chain': 3, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 5, 'not_resolved_or_not_observed': 4, 'human_reported_issue_no_linked_fix': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'test_ci_gap': 1, 'agent_instruction_gap': 1, 'security_auth_secret': 1, 'comment_has_related_commit_context': 1, 'ambiguous_needs_more_evidence': 1}\nOutcomes: {'not_resolved_or_not_observed': 8, 'ambiguous_needs_more_evidence': 2}\nQuality tiers: {'weak_supervision': 3, 'unresolved': 2}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-51e36860b1821700", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 456465, "scanner": "foundry_dataset", "fingerprint": "83f7353c12496465f6c9512449c4980fbb9b1fbb1d06237c41cd5eecf6929ee9", "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": {"security_auth_secret": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#181", "issue_number": "181", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-5998a1288e6bdead", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {}}, "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#181\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#181\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#181\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 181\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-3bb427d2fb9f2c71", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 456464, "scanner": "foundry_dataset", "fingerprint": "8f3fd10fd4d736304eee215b8f74dd1e5f2420abf0770f00f709265e06c97094", "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": {"security_auth_secret": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#178", "issue_number": "178", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-44bd954a88b92bc6", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {}}, "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#178\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#178\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#178\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 178\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-f31ad819c24ade53", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 456463, "scanner": "foundry_dataset", "fingerprint": "a1b8a79aecbc6588f7e7131fe9fecafd0245bbd44705ce4e51965532f095314c", "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": {"security_auth_secret": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#175", "issue_number": "175", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-ecd3a2f1bed716a5", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {}}, "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#175\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#175\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#175\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 175\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-e0d107b15d578f1f", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 456462, "scanner": "foundry_dataset", "fingerprint": "60ca4e33b0a79458113c07f0d4d0beec0a535b0a7d8ab91812fc20070171b92f", "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": {"test_ci_gap": 5, "security_auth_secret": 1, "verification_or_tests": 10, "data_schema_persistence": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "ambiguous_needs_more_evidence": 6, "comment_has_related_commit_context": 4, "human_reported_issue_no_linked_fix": 3, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"not_resolved_or_not_observed": 6, "ambiguous_needs_more_evidence": 12}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 56, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 7, "thread_has_comment": 7, "chain_has_link_quality": 9, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 7, "comment_chain_links_commit": 15, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 7}, "node_count": 37, "node_types": {"repo": 1, "commit": 10, "thread": 1, "comment": 7, "fix_outcome": 1, "issue_chain": 1, "link_quality": 9, "comment_chain": 7}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#174", "issue_number": "174", "quality_tiers": {"unresolved": 3, "weak_supervision": 6}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-9009fb82dc5bb391", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "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: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#174\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#174\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#174\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 174\nGraph consistency label: weak_supervision_needs_review\nNodes: 37\nEdges: 56\nNode types: {'commit': 10, 'link_quality': 9, 'comment': 7, 'comment_chain': 7, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 15, 'chain_has_link_quality': 9, 'thread_has_comment': 7, 'thread_has_comment_chain': 7, 'comment_has_chain': 7, 'issue_chain_has_comment_chain': 7, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 10, 'ambiguous_needs_more_evidence': 6, 'test_ci_gap': 5, 'comment_has_related_commit_context': 4, 'human_reported_issue_no_linked_fix': 3, 'not_resolved_or_not_observed': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'data_schema_persistence': 1, 'security_auth_secret': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 12, 'not_resolved_or_not_observed': 6}\nQuality tiers: {'weak_supervision': 6, 'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-0be152dd5aef29e8", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 456461, "scanner": "foundry_dataset", "fingerprint": "0dfefbb10fde003fcc4279589253300bc99b87934cf57304d8d59aa290c9b7bd", "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": {"security_auth_secret": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#166", "issue_number": "166", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-3320271b0bd5cc62", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {}}, "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#166\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#166\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#166\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 166\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-f2286e0f8da53ec0", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 456460, "scanner": "foundry_dataset", "fingerprint": "47a71e9e406a4595afd1b56806c180072ac6738c9541361a6a6b22b52031eeda", "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": {"security_auth_secret": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#161", "issue_number": "161", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-8510f53637c39556", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {}}, "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#161\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#161\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#161\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 161\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-b1b879752cd82c50", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 456459, "scanner": "foundry_dataset", "fingerprint": "455ea9ad0cfd0a34d731111c0c9a15931eb561d3abcbf37bfba5ca192e0ee95e", "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": {"security_auth_secret": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#143", "issue_number": "143", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-1a56e8c4fe239e77", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {}}, "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#143\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#143\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#143\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 143\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-cf361e4b5742a98a", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 456458, "scanner": "foundry_dataset", "fingerprint": "7d31d7dd58e7ddb7f270ceec7cfc17d80c3e33fbb0ec711c5707af730c08650d", "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": {"security_auth_secret": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#136", "issue_number": "136", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-4fc95ef94e002f39", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {}}, "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#136\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#136\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#136\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 136\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-e16bf81161479b1c", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_auth_guardrail_gap", "level": "error", "message": {"text": "Foundry mined security auth guardrail gaps: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 456457, "scanner": "foundry_dataset", "fingerprint": "1fcc7d0071e6167a053a00fc9aecdca5eee29f95cc7dc5fcf14f1d7263b5ae82", "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": {"security_auth_secret": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "security_auth_without_guardrails", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "security_auth_guardrail_gaps", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#134", "issue_number": "134", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "assumption_check", "source_motif_id": "graph-pattern-motif-thread-15af0078cdbe4905", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {}}, "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: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#134\nEvidence:\nGraph motif: Security/auth change without enough guardrails\nMotif id: security_auth_without_guardrails\nPolarity: bad\nTraining usage: assumption_check\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#134\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#134\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 134\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\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/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-c820f8d212c72ed7", "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": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/security_auth_guardrail_gaps", "training_usage": "assumption_check"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 452146, "scanner": "foundry_dataset", "fingerprint": "3e664e5c4e050da5f65bc257a37b251a47b9b09550c3ee4de4576dba5905fd63", "category": "practices", "severity": "critical", "confidence": 0.82, "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": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"test_or_ci": 1, "ui_or_frontend": 2, "mock_placeholder": 1, "verification_or_tests": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 21, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 3, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 3, "thread_has_comment_chain": 1, "comment_chain_links_commit": 1, "comment_chain_touches_file": 3, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 13, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 1, "pr_file": 3, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#279", "issue_number": "279", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-80b58e9e1bff74d4", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"test_or_ci": 4, "ui_or_frontend": 8}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: supported_by_high_confidence_link\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#279\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#279\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#279\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 279\nGraph consistency label: supported_by_high_confidence_link\nNodes: 13\nEdges: 21\nNode types: {'pr_file': 3, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 3, 'comment_chain_touches_file': 3, 'chain_has_link_quality': 3, 'issue_chain_touches_file': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'ui_or_frontend': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'test_or_ci': 1, 'comment_has_related_commit_context': 1, 'verification_or_tests': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'high_confidence': 3}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-77b76c8a529aa6df", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/mock_as_real_or_placeholder/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 452145, "scanner": "foundry_dataset", "fingerprint": "704061a62ba693deccc60cf6742a14a57fd95fe0daf58f1f5bdda17258a89137", "category": "practices", "severity": "critical", "confidence": 0.82, "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": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"test_or_ci": 1, "api_or_backend": 1, "ui_or_frontend": 2, "mock_placeholder": 1, "verification_or_tests": 2, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 25, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 4, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 4, "thread_has_comment_chain": 1, "comment_chain_links_commit": 2, "comment_chain_touches_file": 4, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 15, "node_types": {"repo": 1, "commit": 2, "thread": 1, "comment": 1, "pr_file": 4, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#278", "issue_number": "278", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-2e111789ffefa86d", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"test_or_ci": 4, "api_or_backend": 4, "ui_or_frontend": 8}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: supported_by_high_confidence_link\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#278\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#278\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#278\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 278\nGraph consistency label: supported_by_high_confidence_link\nNodes: 15\nEdges: 25\nNode types: {'pr_file': 4, 'link_quality': 3, 'commit': 2, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 4, 'comment_chain_touches_file': 4, 'issue_chain_touches_file': 4, 'chain_has_link_quality': 3, 'comment_chain_links_commit': 2, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'ui_or_frontend': 2, 'verification_or_tests': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'api_or_backend': 1, 'test_or_ci': 1, 'comment_has_related_commit_context': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'high_confidence': 3}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-1198782fe0264608", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/mock_as_real_or_placeholder/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 452144, "scanner": "foundry_dataset", "fingerprint": "1f460c25e8797a7c54949238d95bc0a7a3d62cc1b3e8cb7cd919351827b78e8d", "category": "practices", "severity": "critical", "confidence": 0.82, "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": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"mock_placeholder": 1, "verification_or_tests": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 12, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 10, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#271", "issue_number": "271", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-e56a503d42e8db96", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: supported_by_high_confidence_link\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#271\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#271\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#271\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 271\nGraph consistency label: supported_by_high_confidence_link\nNodes: 10\nEdges: 12\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'comment_has_related_commit_context': 1, 'verification_or_tests': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'high_confidence': 3}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-5ec1cab2623a2ff6", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/mock_as_real_or_placeholder/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 452143, "scanner": "foundry_dataset", "fingerprint": "f78bcff0b916c62ffc09f8f46ea9fce5b313781fc4efcd96aba430c623d6f9b9", "category": "practices", "severity": "critical", "confidence": 0.82, "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": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"test_or_ci": 9, "api_or_backend": 15, "docs_or_claims": 1, "schema_or_data": 2, "ui_or_frontend": 22, "mock_placeholder": 1, "verification_or_tests": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 85, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 49, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_links_commit": 1, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 59, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 1, "pr_file": 49, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#270", "issue_number": "270", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-a78672ab485fb82f", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"test_or_ci": 36, "api_or_backend": 60, "docs_or_claims": 4, "schema_or_data": 8, "ui_or_frontend": 88}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: supported_by_high_confidence_link\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#270\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#270\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#270\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 270\nGraph consistency label: supported_by_high_confidence_link\nNodes: 59\nEdges: 85\nNode types: {'pr_file': 49, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 49, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'ui_or_frontend': 22, 'api_or_backend': 15, 'test_or_ci': 9, 'ambiguous_needs_more_evidence': 3, 'schema_or_data': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'docs_or_claims': 1, 'comment_has_related_commit_context': 1, 'verification_or_tests': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'high_confidence': 3}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-6796789ee338e215", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/mock_as_real_or_placeholder/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 452142, "scanner": "foundry_dataset", "fingerprint": "11bce09507eaabc0d1ab6f91bf7bc63060add2366a86691b2961db459cccdd93", "category": "practices", "severity": "critical", "confidence": 0.82, "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": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"test_or_ci": 2, "api_or_backend": 4, "docs_or_claims": 4, "schema_or_data": 19, "ui_or_frontend": 17, "mock_placeholder": 1, "verification_or_tests": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 82, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 46, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 12, "thread_has_comment_chain": 1, "comment_chain_links_commit": 1, "comment_chain_touches_file": 12, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 56, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 1, "pr_file": 46, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#268", "issue_number": "268", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-52f592018daae437", "graph_gold_label": "supported_by_high_confidence_link", "changed_file_labels": {"test_or_ci": 8, "api_or_backend": 16, "docs_or_claims": 16, "schema_or_data": 76, "ui_or_frontend": 68}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: supported_by_high_confidence_link\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#268\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#268\nGraph gold label: supported_by_high_confidence_link\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#268\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 268\nGraph consistency label: supported_by_high_confidence_link\nNodes: 56\nEdges: 82\nNode types: {'pr_file': 46, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 46, 'comment_chain_touches_file': 12, 'issue_chain_touches_file': 12, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'schema_or_data': 19, 'ui_or_frontend': 17, 'docs_or_claims': 4, 'api_or_backend': 4, 'ambiguous_needs_more_evidence': 3, 'test_or_ci': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'comment_has_related_commit_context': 1, 'verification_or_tests': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'high_confidence': 3}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-a27727334c2a609f", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/mock_as_real_or_placeholder/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 452141, "scanner": "foundry_dataset", "fingerprint": "9ab9cabfd1b360b2e2aad1235d067d4b9427f9ef8db2d3b9760043891851a2d4", "category": "practices", "severity": "critical", "confidence": 0.82, "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": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"bug_fix": 2, "data_schema": 2, "mock_placeholder": 1, "verification_or_tests": 1, "issue_or_pull_request_thread": 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": "mock_as_real_or_placeholder", "outcomes": {"claimed_resolved_with_verification_signal": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 16, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 5, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 14, "node_types": {"repo": 1, "commit": 5, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#256", "issue_number": "256", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-3d5b1b11b6c7fe04", "graph_gold_label": "supported_by_verification_signal", "changed_file_labels": {}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: supported_by_verification_signal\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#256\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#256\nGraph gold label: supported_by_verification_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#256\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 256\nGraph consistency label: supported_by_verification_signal\nNodes: 14\nEdges: 16\nNode types: {'commit': 5, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 5, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'claimed_resolved_with_verification_signal': 3, 'bug_fix': 2, 'data_schema': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'human_reported_issue_then_verified_fix_attempt': 1, 'verification_or_tests': 1}\nOutcomes: {'claimed_resolved_with_verification_signal': 6}\nQuality tiers: {'high_confidence': 3}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-cba676b77c10b2cf", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/mock_as_real_or_placeholder/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 452140, "scanner": "foundry_dataset", "fingerprint": "d47a806d85f05cf287b1087574b57f7e945edeeca6230b06854bfe899b7b7923", "category": "practices", "severity": "critical", "confidence": 0.82, "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": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"mock_placeholder": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#216", "issue_number": "216", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-2f178adde7b6ffb0", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#216\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#216\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#216\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 216\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-d656b4879d28a999", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/mock_as_real_or_placeholder/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 452139, "scanner": "foundry_dataset", "fingerprint": "291ceb5b025a797679f911f4cc13c71c34edcc5ea2677ea20758afcf3beec57b", "category": "practices", "severity": "critical", "confidence": 0.82, "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": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"mock_placeholder": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#202", "issue_number": "202", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-59ca5edfea5230f1", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#202\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#202\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#202\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 202\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-8231d9372b0d4c45", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/mock_as_real_or_placeholder/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 452138, "scanner": "foundry_dataset", "fingerprint": "0cf78228b08d793c342fc0916c47db26d846bd1f616918d7a2f382567d4efb39", "category": "practices", "severity": "critical", "confidence": 0.82, "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": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"mock_placeholder": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#197", "issue_number": "197", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-18be183ac3e49b31", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#197\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#197\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#197\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 197\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-412e818c3ed9059c", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/mock_as_real_or_placeholder/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 452137, "scanner": "foundry_dataset", "fingerprint": "b0d3f72d5788bcb3e8d87cbc851a4ceeec7bd28397d3c98f53b9f3b42dfc35ab", "category": "practices", "severity": "critical", "confidence": 0.82, "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": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"data_schema": 5, "test_ci_gap": 3, "mock_placeholder": 2, "build_install_failure": 2, "verification_or_tests": 7, "claimed_resolved_unverified": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 2, "ambiguous_needs_more_evidence": 6, "comment_has_related_commit_context": 4, "human_reported_issue_no_linked_fix": 2, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"claimed_resolved_unverified": 2, "not_resolved_or_not_observed": 4, "ambiguous_needs_more_evidence": 12}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 58, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 7, "thread_has_comment": 7, "chain_has_link_quality": 9, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 7, "comment_chain_links_commit": 17, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 7}, "node_count": 39, "node_types": {"repo": 1, "commit": 12, "thread": 1, "comment": 7, "fix_outcome": 1, "issue_chain": 1, "link_quality": 9, "comment_chain": 7}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#192", "issue_number": "192", "quality_tiers": {"unresolved": 2, "weak_supervision": 7}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-22f8a116552ac3fb", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#192\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#192\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#192\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 192\nGraph consistency label: weak_supervision_needs_review\nNodes: 39\nEdges: 58\nNode types: {'commit': 12, 'link_quality': 9, 'comment': 7, 'comment_chain': 7, 'thread': 1, 'repo': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'comment_chain_links_commit': 17, 'chain_has_link_quality': 9, 'thread_has_comment': 7, 'thread_has_comment_chain': 7, 'comment_has_chain': 7, 'issue_chain_has_comment_chain': 7, 'repo_has_thread': 1, 'thread_has_issue_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'verification_or_tests': 7, 'ambiguous_needs_more_evidence': 6, 'data_schema': 5, 'comment_has_related_commit_context': 4, 'test_ci_gap': 3, 'mock_placeholder': 2, 'build_install_failure': 2, 'human_reported_issue_no_linked_fix': 2, 'not_resolved_or_not_observed': 2, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'human_reported_issue_then_fix_attempt': 1, 'claimed_resolved_unverified': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 12, 'not_resolved_or_not_observed': 4, 'claimed_resolved_unverified': 2}\nQuality tiers: {'weak_supervision': 7, 'unresolved': 2}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-c5c0e983565dc582", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/mock_as_real_or_placeholder/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 452136, "scanner": "foundry_dataset", "fingerprint": "c7be9f0e0d302bcabf077553a1fa581a87e0dee4867dd0bb0b41f3072805837a", "category": "practices", "severity": "critical", "confidence": 0.82, "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": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"mock_placeholder": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#191", "issue_number": "191", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-c5d12c9c8ca07395", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#191\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#191\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#191\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 191\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-e9fd7b7ff0d670dc", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/mock_as_real_or_placeholder/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 452135, "scanner": "foundry_dataset", "fingerprint": "806ccc86228fe585d4175a1ac308bd1f6cbd7291f05d279ab1584158e373771d", "category": "practices", "severity": "critical", "confidence": 0.82, "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": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"data_schema": 1, "mock_placeholder": 1, "claimed_resolved_unverified": 3, "issue_or_pull_request_thread": 1, "human_reported_issue_then_fix_attempt": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"claimed_resolved_unverified": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 12, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "comment_chain_links_commit": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 10, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#179", "issue_number": "179", "quality_tiers": {"weak_supervision": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-7a10e45b763e545e", "graph_gold_label": "weak_supervision_needs_review", "changed_file_labels": {}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: weak_supervision_needs_review\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#179\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#179\nGraph gold label: weak_supervision_needs_review\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#179\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 179\nGraph consistency label: weak_supervision_needs_review\nNodes: 10\nEdges: 12\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'commit': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_links_commit': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'claimed_resolved_unverified': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'human_reported_issue_then_fix_attempt': 1, 'data_schema': 1}\nOutcomes: {'claimed_resolved_unverified': 6}\nQuality tiers: {'weak_supervision': 3}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-3314edf990dffdaf", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/mock_as_real_or_placeholder/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 452134, "scanner": "foundry_dataset", "fingerprint": "1e2a0cbea46c58253cec61a4714f353bbd618e1e932435042d89153eafd9ba70", "category": "practices", "severity": "critical", "confidence": 0.82, "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": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"mock_placeholder": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#171", "issue_number": "171", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-e417aa50b26a6222", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#171\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#171\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#171\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 171\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-15d01a01cce9224c", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/mock_as_real_or_placeholder/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 452133, "scanner": "foundry_dataset", "fingerprint": "a65ac0d90beb9adc0d27d287082eb3f561669f51778c6b1d2c7ed94b3983a9c9", "category": "practices", "severity": "critical", "confidence": 0.82, "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": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"mock_placeholder": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#169", "issue_number": "169", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-ba995afc81d47812", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#169\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#169\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#169\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 169\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-9b6a708d38a45a29", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/mock_as_real_or_placeholder/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_fake_real_gap", "level": "error", "message": {"text": "Foundry mined mock as real or placeholder: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 452132, "scanner": "foundry_dataset", "fingerprint": "1d3925b5ad26550d5f7ae080f227a6e2bad3f8456cb804b3e8a51be9a76643d0", "category": "practices", "severity": "critical", "confidence": 0.82, "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": "Mock, sample, placeholder, or self-attested behavior treated as real", "intent": "Hard negatives for fake completeness and missing real data paths.", "labels": {"mock_placeholder": 1, "issue_or_pull_request_thread": 1, "not_resolved_or_not_observed": 3, "human_reported_issue_no_linked_fix": 1, "thread_has_human_issue_without_fix_context": 2}, "source": "graph_query_export", "motif_id": "mock_as_real_or_placeholder", "outcomes": {"not_resolved_or_not_observed": 6}, "polarity": "bad", "query_id": "mock_as_real_or_placeholder", "severity": "critical", "ci_labels": {}, "synthetic": false, "edge_count": 11, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "thread_has_comment_chain": 1, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 9, "node_types": {"repo": 1, "thread": 1, "comment": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#140", "issue_number": "140", "quality_tiers": {"unresolved": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-2d4b741fb1ef06df", "graph_gold_label": "needs_more_evidence", "changed_file_labels": {}}, "text": "Graph query export: Mock, sample, placeholder, or self-attested behavior treated as real\nQuery id: mock_as_real_or_placeholder\nQuery type: motif_query\nIntent: Hard negatives for fake completeness and missing real data paths.\nMotif: mock_as_real_or_placeholder\nTraining usage: hard_negative\nGraph gold label: needs_more_evidence\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#140\nEvidence:\nGraph motif: Mock, sample, placeholder, or self-attested behavior treated as real\nMotif id: mock_as_real_or_placeholder\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#140\nGraph gold label: needs_more_evidence\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#140\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 140\nGraph consistency label: needs_more_evidence\nNodes: 9\nEdges: 11\nNode types: {'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'not_resolved_or_not_observed': 3, 'thread_has_human_issue_without_fix_context': 2, 'issue_or_pull_request_thread': 1, 'mock_placeholder': 1, 'human_reported_issue_no_linked_fix': 1}\nOutcomes: {'not_resolved_or_not_observed': 6}\nQuality tiers: {'unresolved': 3}\nCI labels: {}\nCurriculum targets:\n- Train real-data plumbing and mock-removal tasks from source to UI.\n- Use as hard negatives for dashboards or apps claiming real runs without provenance.\nAssumption checks:\n- Is user-visible behavior backed by real storage/API/CI artifacts?\n- Are placeholders, sample data, or generated claims still in a production path?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-4c58ee7ba29c90da", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/mock_as_real_or_placeholder/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/mock_as_real_or_placeholder", "training_usage": "hard_negative"}}}, {"ruleId": "foundry_failing_ci_claim", "level": "error", "message": {"text": "Foundry mined claimed resolved with failing ci: vothalvino/fireisp5.0"}, "properties": {"repobilityId": 450526, "scanner": "foundry_dataset", "fingerprint": "7fae686b4c9e36e0503074a93533a630bb00e177190dc2ff942616148c63dc37", "category": "ci", "severity": "critical", "confidence": 0.86, "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": "Claimed resolved with failing CI", "intent": "Hard negatives where CI/failure evidence contradicts a resolution claim.", "labels": {"test_or_ci": 3, "api_or_backend": 6, "schema_or_data": 1, "ui_or_frontend": 1, "ci_failure_signal": 1, "security_auth_secret": 1, "verification_or_tests": 1, "issue_or_pull_request_thread": 1, "ambiguous_needs_more_evidence": 3, "comment_has_related_commit_context": 1, "thread_has_human_issue_and_fix_context": 2}, "source": "graph_query_export", "motif_id": "claimed_resolved_with_failing_ci", "outcomes": {"ambiguous_needs_more_evidence": 6}, "polarity": "bad", "query_id": "claimed_resolved_with_failing_ci", "severity": "critical", "ci_labels": {"ci_failure_signal": 2}, "synthetic": false, "edge_count": 46, "edge_types": {"repo_has_thread": 1, "comment_has_chain": 1, "thread_has_comment": 1, "thread_touches_file": 11, "comment_chain_has_ci": 1, "chain_has_link_quality": 3, "thread_has_fix_outcome": 1, "thread_has_issue_chain": 1, "issue_chain_touches_file": 11, "thread_has_comment_chain": 1, "comment_chain_links_commit": 1, "comment_chain_touches_file": 11, "issue_chain_has_fix_outcome": 1, "issue_chain_has_comment_chain": 1}, "node_count": 22, "node_types": {"repo": 1, "commit": 1, "thread": 1, "comment": 1, "pr_file": 11, "ci_summary": 1, "fix_outcome": 1, "issue_chain": 1, "link_quality": 3, "comment_chain": 1}, "query_type": "motif_query", "thread_key": "vothalvino/fireisp5.0#282", "issue_number": "282", "quality_tiers": {"high_confidence": 3}, "repo_full_name": "vothalvino/fireisp5.0", "training_usage": "hard_negative", "source_motif_id": "graph-pattern-motif-thread-0d92683837be324c", "graph_gold_label": "contradicted_by_ci_or_failure_signal", "changed_file_labels": {"test_or_ci": 12, "api_or_backend": 24, "schema_or_data": 4, "ui_or_frontend": 4}}, "text": "Graph query export: Claimed resolved with failing CI\nQuery id: claimed_resolved_with_failing_ci\nQuery type: motif_query\nIntent: Hard negatives where CI/failure evidence contradicts a resolution claim.\nMotif: claimed_resolved_with_failing_ci\nTraining usage: hard_negative\nGraph gold label: contradicted_by_ci_or_failure_signal\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#282\nEvidence:\nGraph motif: Claimed resolved while CI or failure evidence contradicts it\nMotif id: claimed_resolved_with_failing_ci\nPolarity: bad\nTraining usage: hard_negative\nSeverity: critical\nRepo: vothalvino/fireisp5.0\nThread: vothalvino/fireisp5.0#282\nGraph gold label: contradicted_by_ci_or_failure_signal\nThread graph evidence:\nGitHub issue/PR evidence subgraph\nThread: vothalvino/fireisp5.0#282\nRepo: vothalvino/fireisp5.0\nIssue/PR number: 282\nGraph consistency label: contradicted_by_ci_or_failure_signal\nNodes: 22\nEdges: 46\nNode types: {'pr_file': 11, 'link_quality': 3, 'thread': 1, 'repo': 1, 'comment': 1, 'comment_chain': 1, 'commit': 1, 'ci_summary': 1, 'issue_chain': 1, 'fix_outcome': 1}\nEdge types: {'thread_touches_file': 11, 'comment_chain_touches_file': 11, 'issue_chain_touches_file': 11, 'chain_has_link_quality': 3, 'repo_has_thread': 1, 'thread_has_comment': 1, 'thread_has_comment_chain': 1, 'comment_has_chain': 1, 'comment_chain_links_commit': 1, 'comment_chain_has_ci': 1, 'thread_has_issue_chain': 1, 'issue_chain_has_comment_chain': 1, 'thread_has_fix_outcome': 1, 'issue_chain_has_fix_outcome': 1}\nLabels: {'api_or_backend': 6, 'test_or_ci': 3, 'ambiguous_needs_more_evidence': 3, 'thread_has_human_issue_and_fix_context': 2, 'issue_or_pull_request_thread': 1, 'security_auth_secret': 1, 'ui_or_frontend': 1, 'schema_or_data': 1, 'comment_has_related_commit_context': 1, 'verification_or_tests': 1, 'ci_failure_signal': 1}\nOutcomes: {'ambiguous_needs_more_evidence': 6}\nQuality tiers: {'high_confidence': 3}\nCI labels: {'ci_failure_signal': 2}\nCurriculum targets:\n- Reject confident fix summaries when CI or checks fail.\n- Teach judge models to prefer external verification over generated narrative.\nAssumption checks:\n- Did checks fail on the linked commit?\n- Does the thread claim resolution despite failing or incomplete verification?", "source": "foundry_mined_dataset", "repo_url": "https://github.com/vothalvino/fireisp5.0", "source_id": "graph-query-motif_query-0024b4a7cc2d565a", "synthetic": false, "gold_label": "", "graph_label": "", "source_path": "/data/distillate/foundry_data/graph_queries/claimed_resolved_with_failing_ci/shard-0.jsonl", "bundle_label": "", "priority_band": "", "priority_score": 0, "repo_full_name": "vothalvino/fireisp5.0", "source_dataset": "graph_queries/claimed_resolved_with_failing_ci", "training_usage": "hard_negative"}}}, {"ruleId": "scanner-c0dc355fb593b974", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 frontend/src/pages/CommunicationCampaignList.tsx:416"}, "properties": {"repobilityId": "3c6a93d50f79fe44", "scanner": "scanner-primary", "fingerprint": "c0dc355fb593b974", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-90812c6501004fef", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 frontend/src/pages/Settings.tsx:550"}, "properties": {"repobilityId": "7d9574d17b410897", "scanner": "scanner-primary", "fingerprint": "90812c6501004fef", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-d1b683e5bf5ec964", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 frontend/src/pages/Reports.tsx:810"}, "properties": {"repobilityId": "280488d82d4a38b2", "scanner": "scanner-primary", "fingerprint": "d1b683e5bf5ec964", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-5165f85d31b90330", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 frontend/src/pages/portal/PortalKb.tsx:94"}, "properties": {"repobilityId": "c0dda529bb6215ff", "scanner": "scanner-primary", "fingerprint": "5165f85d31b90330", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-b45def0287453999", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/scripts/loadtest.js:209"}, "properties": {"repobilityId": "e113811ebcec50dd", "scanner": "scanner-primary", "fingerprint": "b45def0287453999", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a39e751b68d85146", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/scripts/loadtest-soak.js:277"}, "properties": {"repobilityId": "f25edef6588db51a", "scanner": "scanner-primary", "fingerprint": "a39e751b68d85146", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-2ee7af07c84cc7b5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/scripts/spec-drift.js:220"}, "properties": {"repobilityId": "587e2ab430340259", "scanner": "scanner-primary", "fingerprint": "2ee7af07c84cc7b5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4fb6b31208bbc164", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/scripts/gen-route.js:110"}, "properties": {"repobilityId": "cb4fde22dcef48ce", "scanner": "scanner-primary", "fingerprint": "4fb6b31208bbc164", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-45810dfc9cb02741", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/scripts/gen-route.js:260"}, "properties": {"repobilityId": "362856eb245c3221", "scanner": "scanner-primary", "fingerprint": "45810dfc9cb02741", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-698ab78acd68862a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/scripts/schema-parity-check.js:51"}, "properties": {"repobilityId": "6b5bd91ed636924f", "scanner": "scanner-primary", "fingerprint": "698ab78acd68862a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e2221d9be3fd4ede", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/utils/encryption.js:8"}, "properties": {"repobilityId": "f57f7808948929e0", "scanner": "scanner-primary", "fingerprint": "e2221d9be3fd4ede", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bd06f685bbb8331f", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/services/suspensionService.js:268"}, "properties": {"repobilityId": "9cabb6bd19539914", "scanner": "scanner-primary", "fingerprint": "bd06f685bbb8331f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-7027c951f8365b38", "level": "warning", "message": {"text": "Privileged port 162 in use"}, "properties": {"repobilityId": "6909704ebfc2c9a8", "scanner": "scanner-primary", "fingerprint": "7027c951f8365b38", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/snmpTrapReceiver.test.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2716e6cd8dd26c96", "level": "warning", "message": {"text": "Privileged port 161 in use"}, "properties": {"repobilityId": "fef0e3b0b4a09943", "scanner": "scanner-primary", "fingerprint": "2716e6cd8dd26c96", "layer": "network", "severity": "medium", "confidence": 1.0, "tags": ["security", "ports"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tests/snmpPoller.test.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-20f1d133ab646703", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:24-bookworm-slim"}, "properties": {"repobilityId": "9c74501e9be0029a", "scanner": "scanner-primary", "fingerprint": "20f1d133ab646703", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-20f1d133ab646703", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:24-bookworm-slim"}, "properties": {"repobilityId": "88c2d92006eb34eb", "scanner": "scanner-primary", "fingerprint": "20f1d133ab646703", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "Dockerfile"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-d81ad2987a921217", "level": "error", "message": {"text": "Possible secret in charts/fireisp/values.yaml"}, "properties": {"repobilityId": "ca858f9b7685063c", "scanner": "scanner-primary", "fingerprint": "d81ad2987a921217", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "charts/fireisp/values.yaml"}, "region": {"startLine": 169}}}]}, {"ruleId": "scanner-3d32d3a914b590b8", "level": "note", "message": {"text": "Insecure pattern 'document_write' in frontend/src/components/ThermalReceiptModal.tsx:118"}, "properties": {"repobilityId": "f66c75876c368506", "scanner": "scanner-primary", "fingerprint": "3d32d3a914b590b8", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/src/components/ThermalReceiptModal.tsx"}, "region": {"startLine": 118}}}]}, {"ruleId": "scanner-7460d193b8b300a6", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in frontend/src/pages/__tests__/AiSupportPage.test.tsx:149"}, "properties": {"repobilityId": "8691e2a5964cd18e", "scanner": "scanner-primary", "fingerprint": "7460d193b8b300a6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/src/pages/__tests__/AiSupportPage.test.tsx"}, "region": {"startLine": 149}}}]}, {"ruleId": "scanner-cc4bdf1bac35fb37", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in frontend/src/pages/portal/PortalKb.tsx:94"}, "properties": {"repobilityId": "e85ef502e9450814", "scanner": "scanner-primary", "fingerprint": "cc4bdf1bac35fb37", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/src/pages/portal/PortalKb.tsx"}, "region": {"startLine": 94}}}]}, {"ruleId": "scanner-732ec6ff8009b321", "level": "error", "message": {"text": "Possible secret in database/freeradius/README.md"}, "properties": {"repobilityId": "384bc9bc8f69eb78", "scanner": "scanner-primary", "fingerprint": "732ec6ff8009b321", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "database/freeradius/README.md"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-cf863339b88decf1", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/scripts/verify-volumes.js:25"}, "properties": {"repobilityId": "1b78dd74b645fbab", "scanner": "scanner-primary", "fingerprint": "cf863339b88decf1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/scripts/verify-volumes.js"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-e2affb49f65aa24b", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/scripts/backup.js:17"}, "properties": {"repobilityId": "dad41d4bf03055d2", "scanner": "scanner-primary", "fingerprint": "e2affb49f65aa24b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/scripts/backup.js"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-a84debc5cc596530", "level": "warning", "message": {"text": "Insecure pattern 'weak_hash' in src/routes/dataSecurity.js:226"}, "properties": {"repobilityId": "b39da27ed1e8f2d9", "scanner": "scanner-primary", "fingerprint": "a84debc5cc596530", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "weak_hash"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/routes/dataSecurity.js"}, "region": {"startLine": 226}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d62f34b8372582a2", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e768aa78741098d0", "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": 31}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "8fb57e9e0362cf03", "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": 59}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d62f34b8372582a2", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 226}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e768aa78741098d0", "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": 229}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d62f34b8372582a2", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 296}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e768aa78741098d0", "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": 299}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d62f34b8372582a2", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 322}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e768aa78741098d0", "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": 325}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "8fb57e9e0362cf03", "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": 411}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d1b973fc5722bf04", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 430}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ae63b315ae3ef32f", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 433}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "fa8b8e865287ae8f", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 443}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "8fb57e9e0362cf03", "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": 451}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "9b9c1bf0dcb21fd6", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 459}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "9b9c1bf0dcb21fd6", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 473}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "8fb57e9e0362cf03", "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": 486}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "68482cd902440b3b", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 494}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d62f34b8372582a2", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 537}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e768aa78741098d0", "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": 540}}}]}, {"ruleId": "scanner-64192a3c67110d01", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "87338a8bfcb6f435", "scanner": "scanner-primary", "fingerprint": "64192a3c67110d01", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cb639d9a10a47b23", "level": "note", "message": {"text": "package.json defines install-time lifecycle scripts"}, "properties": {"repobilityId": "b86179956da3a4a8", "scanner": "scanner-primary", "fingerprint": "cb639d9a10a47b23", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ea247a040bfddf94", "level": "note", "message": {"text": "Very large file: frontend/src/pages/QosBandwidthPage.tsx (2459 lines)"}, "properties": {"repobilityId": "72e1ff71071ea247", "scanner": "scanner-primary", "fingerprint": "ea247a040bfddf94", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0b155d8fdd46e5ff", "level": "note", "message": {"text": "Very large file: frontend/src/pages/TransitionMechanismsPage.tsx (986 lines)"}, "properties": {"repobilityId": "3caaf64c22a32715", "scanner": "scanner-primary", "fingerprint": "0b155d8fdd46e5ff", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c62860901992e550", "level": "note", "message": {"text": "Very large file: frontend/src/pages/AIAssistantSettings.tsx (1216 lines)"}, "properties": {"repobilityId": "7fa2d9203b311ea7", "scanner": "scanner-primary", "fingerprint": "c62860901992e550", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-61e7af9b2cbd9f29", "level": "note", "message": {"text": "Very large file: frontend/src/pages/FiberPlantManagementPage.tsx (1197 lines)"}, "properties": {"repobilityId": "2e5d4529cd095e5b", "scanner": "scanner-primary", "fingerprint": "61e7af9b2cbd9f29", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d862dc8fbd15fd51", "level": "note", "message": {"text": "Very large file: frontend/src/pages/TicketDetail.tsx (1656 lines)"}, "properties": {"repobilityId": "9e116c55fb586640", "scanner": "scanner-primary", "fingerprint": "d862dc8fbd15fd51", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0d0bf06aa4d42a18", "level": "note", "message": {"text": "Very large file: frontend/src/pages/Reports.tsx (1929 lines)"}, "properties": {"repobilityId": "ba5cc9c50e82c92b", "scanner": "scanner-primary", "fingerprint": "0d0bf06aa4d42a18", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d004c1972616c179", "level": "note", "message": {"text": "Very large file: frontend/src/pages/WirelessManagementPage.tsx (1289 lines)"}, "properties": {"repobilityId": "0d5d3dfa60fa62d2", "scanner": "scanner-primary", "fingerprint": "d004c1972616c179", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b5b5b946533d592b", "level": "note", "message": {"text": "Very large file: tests/section18Extended.test.js (1348 lines)"}, "properties": {"repobilityId": "8093e85049750208", "scanner": "scanner-primary", "fingerprint": "b5b5b946533d592b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-68303f8bc5b24f75", "level": "note", "message": {"text": "Very large file: tests/newValidationSchemas.test.js (1523 lines)"}, "properties": {"repobilityId": "c1d9ffc7edd1bd97", "scanner": "scanner-primary", "fingerprint": "68303f8bc5b24f75", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-54667cbef0396a8a", "level": "note", "message": {"text": "Very large file: tests/section16.test.js (2146 lines)"}, "properties": {"repobilityId": "534d16a86ab9e357", "scanner": "scanner-primary", "fingerprint": "54667cbef0396a8a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5d1bd7405c85ec78", "level": "note", "message": {"text": "Very large file: tests/section21.test.js (1286 lines)"}, "properties": {"repobilityId": "3d28868242ce37a3", "scanner": "scanner-primary", "fingerprint": "5d1bd7405c85ec78", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-13ca3b6e10f6512e", "level": "note", "message": {"text": "Very large file: tests/coreRoutes.test.js (1829 lines)"}, "properties": {"repobilityId": "8bdee0cebd4aca58", "scanner": "scanner-primary", "fingerprint": "13ca3b6e10f6512e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-16065fb3557cc242", "level": "note", "message": {"text": "Very large file: tests/section17.test.js (2014 lines)"}, "properties": {"repobilityId": "a1321f634b03fe9d", "scanner": "scanner-primary", "fingerprint": "16065fb3557cc242", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4651f43033d35cc5", "level": "note", "message": {"text": "Very large file: tests/routesCoverage.test.js (1549 lines)"}, "properties": {"repobilityId": "be1ed7c26b9b2f47", "scanner": "scanner-primary", "fingerprint": "4651f43033d35cc5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4cae35ced86f865d", "level": "note", "message": {"text": "Very large file: src/utils/openapi.js (2731 lines)"}, "properties": {"repobilityId": "5ab1060f8a4bb931", "scanner": "scanner-primary", "fingerprint": "4cae35ced86f865d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0e8a76eb13fd3249", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: frontend/package.json"}, "properties": {"repobilityId": "d8c65da5b68ee95b", "scanner": "scanner-primary", "fingerprint": "0e8a76eb13fd3249", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-eb850abe5d3c8bc3", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: e2e/package.json"}, "properties": {"repobilityId": "4c9201e2b263799e", "scanner": "scanner-primary", "fingerprint": "eb850abe5d3c8bc3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "e2e/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "93872c272fe781b6", "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": "316bd37178ca8341", "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": "1729c529a651266b", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "65f37b40bb88febb", "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": "aeb807bd7bd0be20", "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": "96592d97b80fa9c0", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-3d897f1f4c93e87e", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agent-memory/fullstack-autonomous-engineer/openapi-pattern.md"}, "properties": {"repobilityId": "28a3b8f2118cc86c", "scanner": "scanner-primary", "fingerprint": "3d897f1f4c93e87e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agent-memory/fullstack-autonomous-engineer/openapi-pattern.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1541d95cc9e4dce7", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agent-memory/fullstack-autonomous-engineer/section6-snmp-nms.md"}, "properties": {"repobilityId": "17d57041421b77b0", "scanner": "scanner-primary", "fingerprint": "1541d95cc9e4dce7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agent-memory/fullstack-autonomous-engineer/section6-snmp-nms.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0b21f44ebb2743f6", "level": "none", "message": {"text": "Commented-code block (7 lines) in .lintstagedrc.cjs:8"}, "properties": {"repobilityId": "dec763b71fd4f4f9", "scanner": "scanner-primary", "fingerprint": "0b21f44ebb2743f6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf335caf1e6ae4ae", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/scripts/i18n-coverage.mjs:2"}, "properties": {"repobilityId": "7d9a6f938183610c", "scanner": "scanner-primary", "fingerprint": "cf335caf1e6ae4ae", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d0a2ee50f60305f3", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/public/sw.js:1"}, "properties": {"repobilityId": "97fdc677871a2d3e", "scanner": "scanner-primary", "fingerprint": "d0a2ee50f60305f3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-683adcc1c1eacafa", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/App.tsx:1"}, "properties": {"repobilityId": "5d958db78f5968a7", "scanner": "scanner-primary", "fingerprint": "683adcc1c1eacafa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-50dacd1ac74c9cac", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/i18n/index.ts:1"}, "properties": {"repobilityId": "de0978ffa22382a4", "scanner": "scanner-primary", "fingerprint": "50dacd1ac74c9cac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-27a34d79c5d4cfea", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/auth/permissions.ts:1"}, "properties": {"repobilityId": "25ce7669d1ad4445", "scanner": "scanner-primary", "fingerprint": "27a34d79c5d4cfea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b96006821e1b2bbd", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/auth/AuthContext.tsx:1"}, "properties": {"repobilityId": "36b964d971bbd8e3", "scanner": "scanner-primary", "fingerprint": "b96006821e1b2bbd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc268bd3d32a3a4d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/auth/AuthContext.tsx:186"}, "properties": {"repobilityId": "5a7a04ce5ad58763", "scanner": "scanner-primary", "fingerprint": "bc268bd3d32a3a4d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-58f5e592cd729d12", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/auth/PrivateRoute.tsx:1"}, "properties": {"repobilityId": "38d2149127f76a6a", "scanner": "scanner-primary", "fingerprint": "58f5e592cd729d12", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7abdd9244dfa448b", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/auth/PortalAuthContext.tsx:1"}, "properties": {"repobilityId": "fe8e281e2b079c62", "scanner": "scanner-primary", "fingerprint": "7abdd9244dfa448b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-88b2e9c364038ad7", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/auth/PortalRoute.tsx:1"}, "properties": {"repobilityId": "7e51e73afa2f8326", "scanner": "scanner-primary", "fingerprint": "88b2e9c364038ad7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7837719569b163a6", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/api/graphql.ts:1"}, "properties": {"repobilityId": "1cb0bcfbc65dab98", "scanner": "scanner-primary", "fingerprint": "7837719569b163a6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b4d23c9e6af635f2", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/api/useWebSocket.ts:1"}, "properties": {"repobilityId": "c6845a4d66de8aa7", "scanner": "scanner-primary", "fingerprint": "b4d23c9e6af635f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fb395a9e9fe7a29c", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/api/useGraphQLSubscription.ts:1"}, "properties": {"repobilityId": "da9ca96cee50c806", "scanner": "scanner-primary", "fingerprint": "fb395a9e9fe7a29c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a393c2c7eb597b1", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/api/client.ts:1"}, "properties": {"repobilityId": "9d32c606ef0cd95c", "scanner": "scanner-primary", "fingerprint": "1a393c2c7eb597b1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d58f40881b5f287e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/api/client.ts:44"}, "properties": {"repobilityId": "7d8da6260ec5fade", "scanner": "scanner-primary", "fingerprint": "d58f40881b5f287e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2a441df5b5790c00", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/test/a11y.test.tsx:1"}, "properties": {"repobilityId": "3e3210252d77b793", "scanner": "scanner-primary", "fingerprint": "2a441df5b5790c00", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1df0ce50f6c60619", "level": "none", "message": {"text": "Commented-code block (10 lines) in frontend/src/test/i18n.test.ts:1"}, "properties": {"repobilityId": "28ce33ff71c32977", "scanner": "scanner-primary", "fingerprint": "1df0ce50f6c60619", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-61efcfe8ba09558d", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/components/PortalLayout.tsx:1"}, "properties": {"repobilityId": "f444360f9401af4e", "scanner": "scanner-primary", "fingerprint": "61efcfe8ba09558d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-87ae4fb7b1b2adaf", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/components/ClientFormModal.tsx:1"}, "properties": {"repobilityId": "0f299f9c56e5aaed", "scanner": "scanner-primary", "fingerprint": "87ae4fb7b1b2adaf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-571cef7d33a07b17", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/DrDrillBanner.tsx:1"}, "properties": {"repobilityId": "2bce88ca9ac833eb", "scanner": "scanner-primary", "fingerprint": "571cef7d33a07b17", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-73272b27b0050672", "level": "none", "message": {"text": "Commented-code block (13 lines) in frontend/src/components/ThermalReceiptModal.tsx:1"}, "properties": {"repobilityId": "0175acce418497b7", "scanner": "scanner-primary", "fingerprint": "73272b27b0050672", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d30e5925805d29c6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/components/ThermalReceiptModal.tsx:41"}, "properties": {"repobilityId": "0bd29d3dc7951804", "scanner": "scanner-primary", "fingerprint": "d30e5925805d29c6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b8a94769a29a0418", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/components/ChangelogPanel.tsx:1"}, "properties": {"repobilityId": "384ca9b1b449e751", "scanner": "scanner-primary", "fingerprint": "b8a94769a29a0418", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-59e6654d0196bf68", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/components/__tests__/Layout.test.tsx:1"}, "properties": {"repobilityId": "69a2bd83a946f3c1", "scanner": "scanner-primary", "fingerprint": "59e6654d0196bf68", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-589d2f90dfc419e0", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/QueueStats.tsx:1"}, "properties": {"repobilityId": "de554cc02271d7b7", "scanner": "scanner-primary", "fingerprint": "589d2f90dfc419e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1b159c9b03ca6114", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/QosBandwidthPage.tsx:1"}, "properties": {"repobilityId": "7de38d169c3896a0", "scanner": "scanner-primary", "fingerprint": "1b159c9b03ca6114", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ee42c8f884da88c9", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/ConcessionTitleList.tsx:1"}, "properties": {"repobilityId": "1e3e901746ffdd03", "scanner": "scanner-primary", "fingerprint": "ee42c8f884da88c9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0272254b4c3f1aca", "level": "none", "message": {"text": "Commented-code block (11 lines) in frontend/src/pages/TopologyMapPage.tsx:1"}, "properties": {"repobilityId": "665fe17535278160", "scanner": "scanner-primary", "fingerprint": "0272254b4c3f1aca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-60647c0f7458220f", "level": "none", "message": {"text": "Commented-code block (11 lines) in frontend/src/pages/InventoryList.tsx:1"}, "properties": {"repobilityId": "26508bbc194e3c32", "scanner": "scanner-primary", "fingerprint": "60647c0f7458220f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e8bb24d3e4e0a1bf", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/InventoryList.tsx:104"}, "properties": {"repobilityId": "c291aec86a59be9a", "scanner": "scanner-primary", "fingerprint": "e8bb24d3e4e0a1bf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4bc7aacec3217e31", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/pages/PollerPerformanceDashboard.tsx:1"}, "properties": {"repobilityId": "60c8e6e7bca86015", "scanner": "scanner-primary", "fingerprint": "4bc7aacec3217e31", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a8654f8b8d883dba", "level": "none", "message": {"text": "Commented-code block (10 lines) in frontend/src/pages/QuoteList.tsx:1"}, "properties": {"repobilityId": "5b9e58b4be395dd1", "scanner": "scanner-primary", "fingerprint": "a8654f8b8d883dba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-107a8247c89c04f8", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/pages/LateFeeRuleList.tsx:1"}, "properties": {"repobilityId": "ac7be6b7ae615ce3", "scanner": "scanner-primary", "fingerprint": "107a8247c89c04f8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ee39f9b79ec25160", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/pages/WirelessMetricsPage.tsx:1"}, "properties": {"repobilityId": "cff8bc3e31323098", "scanner": "scanner-primary", "fingerprint": "ee39f9b79ec25160", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b93ef3a57778f78e", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/pages/crudStyles.tsx:1"}, "properties": {"repobilityId": "7aea17f314571f20", "scanner": "scanner-primary", "fingerprint": "b93ef3a57778f78e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0e99d45e69d90412", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/pages/OltManagementPage.tsx:1"}, "properties": {"repobilityId": "66f915c14d22f826", "scanner": "scanner-primary", "fingerprint": "0e99d45e69d90412", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b042d2cc3684425a", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/pages/RadiusSessions.tsx:1"}, "properties": {"repobilityId": "d0334991588f4d1e", "scanner": "scanner-primary", "fingerprint": "b042d2cc3684425a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b4de087253a92a84", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/pages/InvoiceSettings.tsx:1"}, "properties": {"repobilityId": "80f821e4f8638aa7", "scanner": "scanner-primary", "fingerprint": "b4de087253a92a84", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0bb835ad961eacd3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/InvoiceSettings.tsx:37"}, "properties": {"repobilityId": "5ea6bb9135a4bfc6", "scanner": "scanner-primary", "fingerprint": "0bb835ad961eacd3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5d46ad456417d1cd", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/InvoiceDetail.tsx:1"}, "properties": {"repobilityId": "782be69eb86eeccc", "scanner": "scanner-primary", "fingerprint": "5d46ad456417d1cd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67ffd6cd0d705b2f", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/ExpenseList.tsx:1"}, "properties": {"repobilityId": "3315affd3708e3a4", "scanner": "scanner-primary", "fingerprint": "67ffd6cd0d705b2f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6c61a8e11f56fe3", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/pages/DevicePollingConfigList.tsx:1"}, "properties": {"repobilityId": "7e82a46a40ba2d4c", "scanner": "scanner-primary", "fingerprint": "d6c61a8e11f56fe3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a9b1c05dd54ea58a", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/pages/IpPoolList.tsx:1"}, "properties": {"repobilityId": "8fc2d6b58ff705e2", "scanner": "scanner-primary", "fingerprint": "a9b1c05dd54ea58a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a6dd72d968ccbe47", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/pages/ConnectionLogList.tsx:1"}, "properties": {"repobilityId": "c71e40683b8b9c97", "scanner": "scanner-primary", "fingerprint": "a6dd72d968ccbe47", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-129c68a5e691981e", "level": "none", "message": {"text": "Commented-code block (11 lines) in frontend/src/pages/SecurityAccessControlPage.tsx:1"}, "properties": {"repobilityId": "9c18302945496b6b", "scanner": "scanner-primary", "fingerprint": "129c68a5e691981e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fc7a7befd7668919", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/SecurityAccessControlPage.tsx:144"}, "properties": {"repobilityId": "93c94788405f5c92", "scanner": "scanner-primary", "fingerprint": "fc7a7befd7668919", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-957c6753b75a73bf", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/SpeedTestList.tsx:1"}, "properties": {"repobilityId": "e5a16a84466ca316", "scanner": "scanner-primary", "fingerprint": "957c6753b75a73bf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0aaccb9d57010a81", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/MessageTemplateList.tsx:1"}, "properties": {"repobilityId": "cc92bc5a70f42537", "scanner": "scanner-primary", "fingerprint": "0aaccb9d57010a81", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1710637ed19f160", "level": "none", "message": {"text": "Commented-code block (11 lines) in frontend/src/pages/ChargebackList.tsx:1"}, "properties": {"repobilityId": "f73fb558a5660b2e", "scanner": "scanner-primary", "fingerprint": "e1710637ed19f160", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fb20f42aba77524b", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/PppoeDiagnostics.tsx:1"}, "properties": {"repobilityId": "abf8e83bc0a9b17a", "scanner": "scanner-primary", "fingerprint": "fb20f42aba77524b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8060dd2cc375a939", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/IpAssignmentList.tsx:1"}, "properties": {"repobilityId": "63ab2a207b58c7b5", "scanner": "scanner-primary", "fingerprint": "8060dd2cc375a939", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b8654f81a193c4a9", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/pages/ClientGroupList.tsx:1"}, "properties": {"repobilityId": "5eb407cf07526cc4", "scanner": "scanner-primary", "fingerprint": "b8654f81a193c4a9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e48bc7b1de4e01ad", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/pages/CoverageZoneMap.tsx:1"}, "properties": {"repobilityId": "5452058864e8cdbb", "scanner": "scanner-primary", "fingerprint": "e48bc7b1de4e01ad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c824e1a43d20565", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/ContractList.tsx:1"}, "properties": {"repobilityId": "ce2b82ec7bc8e2d1", "scanner": "scanner-primary", "fingerprint": "7c824e1a43d20565", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-901c04aa068da970", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/ContractList.tsx:109"}, "properties": {"repobilityId": "e96417c09c0e18ba", "scanner": "scanner-primary", "fingerprint": "901c04aa068da970", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-99a97053c0988632", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/CpeInventoryPage.tsx:1"}, "properties": {"repobilityId": "732c8b4b9a6fc335", "scanner": "scanner-primary", "fingerprint": "99a97053c0988632", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b29cb6608df2b150", "level": "none", "message": {"text": "Commented-code block (12 lines) in frontend/src/pages/WinbackCampaignList.tsx:1"}, "properties": {"repobilityId": "b6c68367110426a9", "scanner": "scanner-primary", "fingerprint": "b29cb6608df2b150", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fc47203da7c6ce2d", "level": "none", "message": {"text": "Commented-code block (11 lines) in frontend/src/pages/ClientList.tsx:1"}, "properties": {"repobilityId": "3ae0b2b66df46ab7", "scanner": "scanner-primary", "fingerprint": "fc47203da7c6ce2d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a6c2c82163fa72fc", "level": "none", "message": {"text": "Commented-code block (12 lines) in frontend/src/pages/RegulatoryCompliancePage.tsx:1"}, "properties": {"repobilityId": "26abba8a9a6f9c7e", "scanner": "scanner-primary", "fingerprint": "a6c2c82163fa72fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-68b5997c1dfc9d71", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/RegulatoryCompliancePage.tsx:99"}, "properties": {"repobilityId": "26f647f6cf6da1df", "scanner": "scanner-primary", "fingerprint": "68b5997c1dfc9d71", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5fdc9c2b25952290", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/pages/OutageList.tsx:1"}, "properties": {"repobilityId": "85f333584a6e3441", "scanner": "scanner-primary", "fingerprint": "5fdc9c2b25952290", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c422af2771d716d9", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/pages/CpeDiagnosticsPage.tsx:1"}, "properties": {"repobilityId": "63646c53396378b8", "scanner": "scanner-primary", "fingerprint": "c422af2771d716d9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c456631ea486e6b2", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/pages/PaymentTransactionList.tsx:1"}, "properties": {"repobilityId": "2edade81fb8de279", "scanner": "scanner-primary", "fingerprint": "c456631ea486e6b2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fd4e6a14fc7a32b3", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/pages/CommunicationCampaignList.tsx:1"}, "properties": {"repobilityId": "b27f041077d397f3", "scanner": "scanner-primary", "fingerprint": "fd4e6a14fc7a32b3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba30d926fd929771", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/FacturaPublicaList.tsx:1"}, "properties": {"repobilityId": "68c15be7f9a86d6f", "scanner": "scanner-primary", "fingerprint": "ba30d926fd929771", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9c880cc092224083", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/pages/DeviceGroupList.tsx:1"}, "properties": {"repobilityId": "a367874db225c889", "scanner": "scanner-primary", "fingerprint": "9c880cc092224083", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f25f226246ab5739", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/pages/WorkOrders.tsx:1"}, "properties": {"repobilityId": "028a4bd68237ac0f", "scanner": "scanner-primary", "fingerprint": "f25f226246ab5739", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-55c285d1d6a32e0d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/WorkOrders.tsx:104"}, "properties": {"repobilityId": "1791de407dd8fb41", "scanner": "scanner-primary", "fingerprint": "55c285d1d6a32e0d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a572dbfa848190db", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/pages/Dashboard.tsx:1"}, "properties": {"repobilityId": "57b12f0daf4c3586", "scanner": "scanner-primary", "fingerprint": "a572dbfa848190db", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-225202bf1fdf9679", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/CfdiList.tsx:1"}, "properties": {"repobilityId": "63bdfb47e168ebe3", "scanner": "scanner-primary", "fingerprint": "225202bf1fdf9679", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5b5ce974c486059b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/CfdiList.tsx:59"}, "properties": {"repobilityId": "a2512594c714210c", "scanner": "scanner-primary", "fingerprint": "5b5ce974c486059b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-633ebdee74f243b3", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/pages/SessionAccounting.tsx:1"}, "properties": {"repobilityId": "abc3ce121525ec94", "scanner": "scanner-primary", "fingerprint": "633ebdee74f243b3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-53d71747d5547d43", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/pages/BillingAdjustmentList.tsx:1"}, "properties": {"repobilityId": "775884a3c7eda3ea", "scanner": "scanner-primary", "fingerprint": "53d71747d5547d43", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1611c08a15162fc1", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/pages/SlaDefinitionList.tsx:1"}, "properties": {"repobilityId": "4b08005f76bcb59e", "scanner": "scanner-primary", "fingerprint": "1611c08a15162fc1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb146362b57ddf8f", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/pages/EscalationList.tsx:1"}, "properties": {"repobilityId": "02bc9995d9b8fbad", "scanner": "scanner-primary", "fingerprint": "cb146362b57ddf8f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fc918eb38fcf593d", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/pages/ChurnAnalytics.tsx:1"}, "properties": {"repobilityId": "25932a681172c676", "scanner": "scanner-primary", "fingerprint": "fc918eb38fcf593d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2e37fb7eaa07dc4b", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/pages/TransitionMechanismsPage.tsx:1"}, "properties": {"repobilityId": "87b417783fa16035", "scanner": "scanner-primary", "fingerprint": "2e37fb7eaa07dc4b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6767c18d977ffe26", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/pages/VlanList.tsx:1"}, "properties": {"repobilityId": "a45e05e6291927e2", "scanner": "scanner-primary", "fingerprint": "6767c18d977ffe26", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-634eceb105172ddf", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/pages/ClientDetail.tsx:1"}, "properties": {"repobilityId": "03268b80cc98bcdc", "scanner": "scanner-primary", "fingerprint": "634eceb105172ddf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6905c1471071bbf0", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/SuspensionRuleList.tsx:1"}, "properties": {"repobilityId": "2ca108769d84c930", "scanner": "scanner-primary", "fingerprint": "6905c1471071bbf0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de4edf901993f327", "level": "none", "message": {"text": "Commented-code block (14 lines) in frontend/src/pages/OrganizationList.tsx:1"}, "properties": {"repobilityId": "488244bc0f171cfd", "scanner": "scanner-primary", "fingerprint": "de4edf901993f327", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d8bcb8435451243b", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/SiteList.tsx:1"}, "properties": {"repobilityId": "36d8fd67339e1433", "scanner": "scanner-primary", "fingerprint": "d8bcb8435451243b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-674622f13f93c1e5", "level": "none", "message": {"text": "Commented-code block (12 lines) in frontend/src/pages/AutomationPage.tsx:1"}, "properties": {"repobilityId": "7ab4a9f1d2ba62cc", "scanner": "scanner-primary", "fingerprint": "674622f13f93c1e5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-20e41a17416caa25", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/AutomationPage.tsx:122"}, "properties": {"repobilityId": "ace0ed77b091ecb4", "scanner": "scanner-primary", "fingerprint": "20e41a17416caa25", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0092a109d76f11e2", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/pages/DhcpServerList.tsx:1"}, "properties": {"repobilityId": "b849e71cadf30564", "scanner": "scanner-primary", "fingerprint": "0092a109d76f11e2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f970a07fbdac95e7", "level": "none", "message": {"text": "Commented-code block (10 lines) in frontend/src/pages/BillingDisputeList.tsx:1"}, "properties": {"repobilityId": "7f23b673447212d0", "scanner": "scanner-primary", "fingerprint": "f970a07fbdac95e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6c73be9e7a3c8bf5", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/pages/ApiTokenList.tsx:1"}, "properties": {"repobilityId": "23f0f35fe6bf12b4", "scanner": "scanner-primary", "fingerprint": "6c73be9e7a3c8bf5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-35f26cc9e028b895", "level": "none", "message": {"text": "Commented-code block (10 lines) in frontend/src/pages/PaymentPlanList.tsx:1"}, "properties": {"repobilityId": "b4cd97bea8922478", "scanner": "scanner-primary", "fingerprint": "35f26cc9e028b895", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-37e04d8ebbba2f4b", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/pages/ClientCommunicationPrefs.tsx:1"}, "properties": {"repobilityId": "50a3c62729c942bf", "scanner": "scanner-primary", "fingerprint": "37e04d8ebbba2f4b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5e44508bcd4b451e", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/NetworkHealthList.tsx:1"}, "properties": {"repobilityId": "e553f167b35ce8aa", "scanner": "scanner-primary", "fingerprint": "5e44508bcd4b451e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-49c7c78ee62b6d62", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/pages/ProfecoComplaints.tsx:1"}, "properties": {"repobilityId": "c5e11bc5037cdcec", "scanner": "scanner-primary", "fingerprint": "49c7c78ee62b6d62", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-836ec3eb7516813b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/ProfecoComplaints.tsx:91"}, "properties": {"repobilityId": "37cd7ca0e1cb1978", "scanner": "scanner-primary", "fingerprint": "836ec3eb7516813b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b16885321ba6dfb4", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/NasList.tsx:1"}, "properties": {"repobilityId": "180118741478db0a", "scanner": "scanner-primary", "fingerprint": "b16885321ba6dfb4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c087b9451adb3a96", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/pages/TaxRuleList.tsx:1"}, "properties": {"repobilityId": "49534b24409b5782", "scanner": "scanner-primary", "fingerprint": "c087b9451adb3a96", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f62bbbc0d8d1a9fa", "level": "none", "message": {"text": "Commented-code block (10 lines) in frontend/src/pages/CsdCertificateList.tsx:1"}, "properties": {"repobilityId": "3b21a030c03c7e89", "scanner": "scanner-primary", "fingerprint": "f62bbbc0d8d1a9fa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5a8b745d2cc67bdd", "level": "none", "message": {"text": "Commented-code block (11 lines) in frontend/src/pages/AIAssistantSettings.tsx:1"}, "properties": {"repobilityId": "d8c094780237ceb2", "scanner": "scanner-primary", "fingerprint": "5a8b745d2cc67bdd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-68be89b924c8312b", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/pages/AuditLogList.tsx:1"}, "properties": {"repobilityId": "0d2b2c22c61031b6", "scanner": "scanner-primary", "fingerprint": "68be89b924c8312b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-17adcb18d1b3fe67", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/pages/MacMoveEvents.tsx:1"}, "properties": {"repobilityId": "b0f48cb0aa53ea09", "scanner": "scanner-primary", "fingerprint": "17adcb18d1b3fe67", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-34a183a32a67865f", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/FiberPlantManagementPage.tsx:1"}, "properties": {"repobilityId": "236fa283429978ad", "scanner": "scanner-primary", "fingerprint": "34a183a32a67865f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3afeec87fd73efc4", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/PacProviderList.tsx:1"}, "properties": {"repobilityId": "1986ff0873d066eb", "scanner": "scanner-primary", "fingerprint": "3afeec87fd73efc4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-83803d1c05c2647a", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/JobList.tsx:1"}, "properties": {"repobilityId": "ebf98dcd0d3d57c5", "scanner": "scanner-primary", "fingerprint": "83803d1c05c2647a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a42873b6ee0445c6", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/pages/PollerNodeList.tsx:1"}, "properties": {"repobilityId": "d6ba61cb6dcdd5ec", "scanner": "scanner-primary", "fingerprint": "a42873b6ee0445c6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6ddd62db8b51df8f", "level": "none", "message": {"text": "Commented-code block (10 lines) in frontend/src/pages/PlanList.tsx:1"}, "properties": {"repobilityId": "d98946a75e2e8b16", "scanner": "scanner-primary", "fingerprint": "6ddd62db8b51df8f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-12609721d95048bf", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/pages/PppoeServiceProfileList.tsx:1"}, "properties": {"repobilityId": "c7b36ffd3f25f512", "scanner": "scanner-primary", "fingerprint": "12609721d95048bf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db2acd1eb651fee5", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/RecurringPaymentProfileList.tsx:1"}, "properties": {"repobilityId": "160951945c67d912", "scanner": "scanner-primary", "fingerprint": "db2acd1eb651fee5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2a56d2d21470b32c", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/pages/DeviceImport.tsx:1"}, "properties": {"repobilityId": "97042a830a248857", "scanner": "scanner-primary", "fingerprint": "2a56d2d21470b32c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e4081f45e39ec053", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/pages/TaxReports.tsx:1"}, "properties": {"repobilityId": "37cd1892825e7742", "scanner": "scanner-primary", "fingerprint": "e4081f45e39ec053", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dc6344b425f8b525", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/TaxReports.tsx:34"}, "properties": {"repobilityId": "faeb426328588396", "scanner": "scanner-primary", "fingerprint": "dc6344b425f8b525", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-35c3df30f8fc1aab", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/pages/WebhookList.tsx:1"}, "properties": {"repobilityId": "e4ff977f32e66c3c", "scanner": "scanner-primary", "fingerprint": "35c3df30f8fc1aab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d7cca2079df7c8b1", "level": "none", "message": {"text": "Commented-code block (11 lines) in frontend/src/pages/RefundRequestList.tsx:1"}, "properties": {"repobilityId": "eec1ec558b73aec4", "scanner": "scanner-primary", "fingerprint": "d7cca2079df7c8b1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6d4f8a2a489bbff0", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/RoleList.tsx:1"}, "properties": {"repobilityId": "869863d0ffe62a6a", "scanner": "scanner-primary", "fingerprint": "6d4f8a2a489bbff0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-61526cb1232594a1", "level": "none", "message": {"text": "Commented-code block (10 lines) in frontend/src/pages/ClientProfileTabs.tsx:1"}, "properties": {"repobilityId": "c953b53a9714ecdb", "scanner": "scanner-primary", "fingerprint": "61526cb1232594a1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5b678e4359705e08", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/pages/AnalyticsDashboard.tsx:1"}, "properties": {"repobilityId": "f86d82bc7b06ca2c", "scanner": "scanner-primary", "fingerprint": "5b678e4359705e08", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7efdc940f1632588", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/pages/SnmpTraps.tsx:1"}, "properties": {"repobilityId": "d096ba5a9ba2a7e1", "scanner": "scanner-primary", "fingerprint": "7efdc940f1632588", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4208b080ddc4cc7a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/SnmpTraps.tsx:95"}, "properties": {"repobilityId": "ef9329b25b3b050a", "scanner": "scanner-primary", "fingerprint": "4208b080ddc4cc7a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e8e8ff94f87cfc13", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/pages/LeadList.tsx:1"}, "properties": {"repobilityId": "067f39804cde8843", "scanner": "scanner-primary", "fingerprint": "e8e8ff94f87cfc13", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a204119a7f286c3f", "level": "none", "message": {"text": "Commented-code block (10 lines) in frontend/src/pages/WarehouseList.tsx:1"}, "properties": {"repobilityId": "fa90e364fe4337ed", "scanner": "scanner-primary", "fingerprint": "a204119a7f286c3f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-08e6d4f939fd10ea", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/WarehouseList.tsx:71"}, "properties": {"repobilityId": "6909090aab78987e", "scanner": "scanner-primary", "fingerprint": "08e6d4f939fd10ea", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-994e02b95f82fb6c", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/pages/TaxRateList.tsx:1"}, "properties": {"repobilityId": "dc4208e0099df162", "scanner": "scanner-primary", "fingerprint": "994e02b95f82fb6c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8b7008494d929fe4", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/pages/CpeProfilesPage.tsx:1"}, "properties": {"repobilityId": "d4de89ed657506be", "scanner": "scanner-primary", "fingerprint": "8b7008494d929fe4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1b5961e8c95f9a54", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/pages/ClientActivityTab.tsx:1"}, "properties": {"repobilityId": "b6ef5c89a1cbc1e8", "scanner": "scanner-primary", "fingerprint": "1b5961e8c95f9a54", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-838959300b4c9a25", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/pages/SatisfactionSurveyList.tsx:1"}, "properties": {"repobilityId": "8dccabeaf72a56e3", "scanner": "scanner-primary", "fingerprint": "838959300b4c9a25", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d617cdb3db67f4be", "level": "none", "message": {"text": "Commented-code block (11 lines) in frontend/src/pages/PaymentList.tsx:1"}, "properties": {"repobilityId": "a1d5390a690765dd", "scanner": "scanner-primary", "fingerprint": "d617cdb3db67f4be", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1bae5251e644efea", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/PaymentList.tsx:117"}, "properties": {"repobilityId": "59609947cf099216", "scanner": "scanner-primary", "fingerprint": "1bae5251e644efea", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f996088eced63a01", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/pages/ServiceOrderList.tsx:1"}, "properties": {"repobilityId": "e3c72ba10691e2ac", "scanner": "scanner-primary", "fingerprint": "f996088eced63a01", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-19e6b52da5a528e6", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/PaymentReminderSettings.tsx:1"}, "properties": {"repobilityId": "f3072b1d1b4f55f0", "scanner": "scanner-primary", "fingerprint": "19e6b52da5a528e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1748f30a2fd595b2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/PaymentReminderSettings.tsx:38"}, "properties": {"repobilityId": "dd898223b314e632", "scanner": "scanner-primary", "fingerprint": "1748f30a2fd595b2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0e8655da51b57751", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/pages/SubscriberCertificateList.tsx:1"}, "properties": {"repobilityId": "6410c8b71b2e84ac", "scanner": "scanner-primary", "fingerprint": "0e8655da51b57751", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-14433c13e886a983", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/InvoiceList.tsx:1"}, "properties": {"repobilityId": "0cce67799f3bc2da", "scanner": "scanner-primary", "fingerprint": "14433c13e886a983", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-324f81e5dadb0a80", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/pages/CpeManagementPage.tsx:1"}, "properties": {"repobilityId": "5f9ac49867ed8cba", "scanner": "scanner-primary", "fingerprint": "324f81e5dadb0a80", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8735d1bab828ab02", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/pages/PonPortManagementPage.tsx:1"}, "properties": {"repobilityId": "3415c31569fa2c8b", "scanner": "scanner-primary", "fingerprint": "8735d1bab828ab02", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bab663865fc4a8a4", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/SnmpProfileList.tsx:1"}, "properties": {"repobilityId": "2369fbb73fbd79da", "scanner": "scanner-primary", "fingerprint": "bab663865fc4a8a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3172590f8c4bb722", "level": "none", "message": {"text": "Commented-code block (11 lines) in frontend/src/pages/ResellerPage.tsx:1"}, "properties": {"repobilityId": "09d8fe5ae71adc18", "scanner": "scanner-primary", "fingerprint": "3172590f8c4bb722", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-54854ff5c8fa48ba", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/ResellerPage.tsx:109"}, "properties": {"repobilityId": "2f7caea59acf7805", "scanner": "scanner-primary", "fingerprint": "54854ff5c8fa48ba", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-56df8eefc57e7ecf", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/IftStatisticalReportList.tsx:1"}, "properties": {"repobilityId": "6945cca4dc8ebada", "scanner": "scanner-primary", "fingerprint": "56df8eefc57e7ecf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6830fcff15ad27d5", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/DeviceConfigBackupList.tsx:1"}, "properties": {"repobilityId": "29000989b671a87c", "scanner": "scanner-primary", "fingerprint": "6830fcff15ad27d5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-abb143927b5c191d", "level": "none", "message": {"text": "Commented-code block (10 lines) in frontend/src/pages/UserList.tsx:1"}, "properties": {"repobilityId": "33db54459a31820e", "scanner": "scanner-primary", "fingerprint": "abb143927b5c191d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e2241f8e9739dc35", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/UserList.tsx:62"}, "properties": {"repobilityId": "17b733384117915f", "scanner": "scanner-primary", "fingerprint": "e2241f8e9739dc35", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0b8b7b06a74ba075", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/pages/SnmpMetrics.tsx:1"}, "properties": {"repobilityId": "add317f581641cfc", "scanner": "scanner-primary", "fingerprint": "0b8b7b06a74ba075", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8847a73922198340", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/TicketList.tsx:1"}, "properties": {"repobilityId": "378c083bac21ec76", "scanner": "scanner-primary", "fingerprint": "8847a73922198340", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc84aefd1b042714", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/AiSupportPage.tsx:1"}, "properties": {"repobilityId": "5494f26ce266747b", "scanner": "scanner-primary", "fingerprint": "cc84aefd1b042714", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-45a6eaa7af82f982", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/pages/TrapForwardingRuleList.tsx:1"}, "properties": {"repobilityId": "088260dfa31c0caf", "scanner": "scanner-primary", "fingerprint": "45a6eaa7af82f982", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-683738ece4683e10", "level": "none", "message": {"text": "Commented-code block (12 lines) in frontend/src/pages/CashReconciliationList.tsx:1"}, "properties": {"repobilityId": "24fae09af7fb765c", "scanner": "scanner-primary", "fingerprint": "683738ece4683e10", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c126b0806c42ff31", "level": "none", "message": {"text": "Commented-code block (13 lines) in frontend/src/pages/DeviceMap.tsx:1"}, "properties": {"repobilityId": "d2053a3d06462144", "scanner": "scanner-primary", "fingerprint": "c126b0806c42ff31", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-72baa357f5df087a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/DeviceMap.tsx:88"}, "properties": {"repobilityId": "d1e6f7c52c6634c8", "scanner": "scanner-primary", "fingerprint": "72baa357f5df087a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f6fe92fb3eda3ee3", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/pages/Ipv6ManagementPage.tsx:1"}, "properties": {"repobilityId": "9f25b574d9ea0d80", "scanner": "scanner-primary", "fingerprint": "f6fe92fb3eda3ee3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2ed60f25d0004a5d", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/ServiceAreaList.tsx:1"}, "properties": {"repobilityId": "0911d18ee8096f17", "scanner": "scanner-primary", "fingerprint": "2ed60f25d0004a5d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-18ef69fd1e811eaa", "level": "none", "message": {"text": "Commented-code block (10 lines) in frontend/src/pages/TicketDetail.tsx:1"}, "properties": {"repobilityId": "6a17df41b4662663", "scanner": "scanner-primary", "fingerprint": "18ef69fd1e811eaa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-365f3d4118326492", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/TicketDetail.tsx:79"}, "properties": {"repobilityId": "d569f7a842b29f6c", "scanner": "scanner-primary", "fingerprint": "365f3d4118326492", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e4346f58181fb857", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/DsarTool.tsx:1"}, "properties": {"repobilityId": "6a8f4af628506c40", "scanner": "scanner-primary", "fingerprint": "e4346f58181fb857", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-57c4e18fc969b6a4", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/pages/NatManagementList.tsx:1"}, "properties": {"repobilityId": "2a1c3095080b40c0", "scanner": "scanner-primary", "fingerprint": "57c4e18fc969b6a4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e658b7cea8a5a852", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/pages/FollowUpReminderList.tsx:1"}, "properties": {"repobilityId": "8a51ed3ee5f67fd4", "scanner": "scanner-primary", "fingerprint": "e658b7cea8a5a852", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-865333f2057446d5", "level": "none", "message": {"text": "Commented-code block (10 lines) in frontend/src/pages/SatCatalogList.tsx:1"}, "properties": {"repobilityId": "6f8cd93edc523518", "scanner": "scanner-primary", "fingerprint": "865333f2057446d5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-39849f541b9f059f", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/pages/NocDashboard.tsx:1"}, "properties": {"repobilityId": "ee3733507a479fab", "scanner": "scanner-primary", "fingerprint": "39849f541b9f059f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-37534450750ef334", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/pages/IntegrationsPage.tsx:1"}, "properties": {"repobilityId": "60ed54261d0f5470", "scanner": "scanner-primary", "fingerprint": "37534450750ef334", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c13740a6cf314d8", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/pages/DiscoveryScanList.tsx:1"}, "properties": {"repobilityId": "580d9fa1c8aaee4c", "scanner": "scanner-primary", "fingerprint": "3c13740a6cf314d8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5b0365ae1b11fdfe", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/RegulatoryFilingList.tsx:1"}, "properties": {"repobilityId": "efa855b0b088cb80", "scanner": "scanner-primary", "fingerprint": "5b0365ae1b11fdfe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aae509438c70601a", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/PaymentGatewayList.tsx:1"}, "properties": {"repobilityId": "610429f6fa1a60a2", "scanner": "scanner-primary", "fingerprint": "aae509438c70601a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d2352bd26ad48167", "level": "none", "message": {"text": "Commented-code block (10 lines) in frontend/src/pages/OnuManagementPage.tsx:1"}, "properties": {"repobilityId": "2bb9aa5c14f40500", "scanner": "scanner-primary", "fingerprint": "d2352bd26ad48167", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b3d9e0057dc3b2a3", "level": "none", "message": {"text": "Commented-code block (10 lines) in frontend/src/pages/Reports.tsx:6"}, "properties": {"repobilityId": "16d246790d4d29cb", "scanner": "scanner-primary", "fingerprint": "b3d9e0057dc3b2a3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a42ad2e2c67a0ac2", "level": "none", "message": {"text": "Commented-code block (10 lines) in frontend/src/pages/InventoryManagement.tsx:1"}, "properties": {"repobilityId": "ed99f45a13332ac1", "scanner": "scanner-primary", "fingerprint": "a42ad2e2c67a0ac2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7f1b28414ae99c1", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/WirelessManagementPage.tsx:1"}, "properties": {"repobilityId": "33aa3089a060cd5f", "scanner": "scanner-primary", "fingerprint": "a7f1b28414ae99c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b2e30b845dae0650", "level": "none", "message": {"text": "Commented-code block (10 lines) in frontend/src/pages/DrDrillStatus.tsx:1"}, "properties": {"repobilityId": "80faed1e7508621b", "scanner": "scanner-primary", "fingerprint": "b2e30b845dae0650", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9034d988335a5b40", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/pages/PromotionList.tsx:1"}, "properties": {"repobilityId": "3cfabc6486ae687d", "scanner": "scanner-primary", "fingerprint": "9034d988335a5b40", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a0019260f3cdec51", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/pages/PtrRecordList.tsx:1"}, "properties": {"repobilityId": "6d3f277bac65a9d3", "scanner": "scanner-primary", "fingerprint": "a0019260f3cdec51", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d7efec0f1c5a14ca", "level": "none", "message": {"text": "Commented-code block (9 lines) in frontend/src/pages/CreditNoteList.tsx:1"}, "properties": {"repobilityId": "9c7536b07c6a0307", "scanner": "scanner-primary", "fingerprint": "d7efec0f1c5a14ca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-50e34dfe16936941", "level": "none", "message": {"text": "Commented-code block (8 lines) in frontend/src/pages/ScheduledTaskList.tsx:1"}, "properties": {"repobilityId": "3bbecfd71c91178a", "scanner": "scanner-primary", "fingerprint": "50e34dfe16936941", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f759273ed43f0e4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/__tests__/UserList.test.tsx:13"}, "properties": {"repobilityId": "0bc7b478f32b49d5", "scanner": "scanner-primary", "fingerprint": "0f759273ed43f0e4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1e8cacad52862353", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/pages/portal/PortalTickets.tsx:1"}, "properties": {"repobilityId": "b40bd523454663f9", "scanner": "scanner-primary", "fingerprint": "1e8cacad52862353", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a17ded2abfff2252", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/portal/PortalTickets.tsx:32"}, "properties": {"repobilityId": "5af87dc1db0d4275", "scanner": "scanner-primary", "fingerprint": "a17ded2abfff2252", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f99690cbb222e8f3", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/pages/portal/PortalSpeedTest.tsx:1"}, "properties": {"repobilityId": "10f093dfd63c0162", "scanner": "scanner-primary", "fingerprint": "f99690cbb222e8f3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-90eb992a1085655b", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/pages/portal/PortalAccount.tsx:1"}, "properties": {"repobilityId": "dda5eed0c644264c", "scanner": "scanner-primary", "fingerprint": "90eb992a1085655b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-53fc295cc77f8a33", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/pages/portal/PortalDashboard.tsx:1"}, "properties": {"repobilityId": "1c5ab8922a87ede2", "scanner": "scanner-primary", "fingerprint": "53fc295cc77f8a33", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-91d3bc1321abb5a2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/portal/PortalDashboard.tsx:57"}, "properties": {"repobilityId": "ce44634fc4ee8433", "scanner": "scanner-primary", "fingerprint": "91d3bc1321abb5a2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-777da5444a4f5990", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/pages/portal/PortalKb.tsx:1"}, "properties": {"repobilityId": "a651ee0f1b855564", "scanner": "scanner-primary", "fingerprint": "777da5444a4f5990", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96b6aa7c12b0a263", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/portal/PortalKb.tsx:27"}, "properties": {"repobilityId": "3628d3c1c6bc5db2", "scanner": "scanner-primary", "fingerprint": "96b6aa7c12b0a263", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6025ab09bafbcfa3", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/pages/portal/PortalTicketDetail.tsx:1"}, "properties": {"repobilityId": "48044a2f51c783f9", "scanner": "scanner-primary", "fingerprint": "6025ab09bafbcfa3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2cb91140e200ea77", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/portal/PortalTicketDetail.tsx:35"}, "properties": {"repobilityId": "74d6caf9f3e39db5", "scanner": "scanner-primary", "fingerprint": "2cb91140e200ea77", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3877b605b7d1848b", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/pages/portal/PortalChat.tsx:1"}, "properties": {"repobilityId": "ab58e1551e49aad5", "scanner": "scanner-primary", "fingerprint": "3877b605b7d1848b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-868f065da4cdfd42", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/pages/portal/PortalInvoiceDetail.tsx:1"}, "properties": {"repobilityId": "027a7fb55615c64e", "scanner": "scanner-primary", "fingerprint": "868f065da4cdfd42", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-97de10e57e8409e1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/portal/PortalInvoiceDetail.tsx:51"}, "properties": {"repobilityId": "e2a090388dda667a", "scanner": "scanner-primary", "fingerprint": "97de10e57e8409e1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a42adad534e5d0f5", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/pages/portal/PortalInvoices.tsx:1"}, "properties": {"repobilityId": "fc7501f65e287495", "scanner": "scanner-primary", "fingerprint": "a42adad534e5d0f5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dd8b8329761dc343", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/pages/portal/PortalInvoices.tsx:36"}, "properties": {"repobilityId": "5e280ec6ab8781aa", "scanner": "scanner-primary", "fingerprint": "dd8b8329761dc343", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a1d63463e8cdaad0", "level": "none", "message": {"text": "Commented-code block (12 lines) in tests/aiProvider.test.js:1"}, "properties": {"repobilityId": "842eaef9963a8644", "scanner": "scanner-primary", "fingerprint": "a1d63463e8cdaad0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b7317f79d17e2c5b", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/e2eAlertWorkflow.test.js:1"}, "properties": {"repobilityId": "2bb470ba9ff74290", "scanner": "scanner-primary", "fingerprint": "b7317f79d17e2c5b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-11adff42b00b653e", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/section15.test.js:1"}, "properties": {"repobilityId": "db97a8f23d77a6fe", "scanner": "scanner-primary", "fingerprint": "11adff42b00b653e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5236ff2f5e7e53d8", "level": "none", "message": {"text": "Commented-code block (10 lines) in tests/cookieAuth.test.js:1"}, "properties": {"repobilityId": "972cc1790d14de67", "scanner": "scanner-primary", "fingerprint": "5236ff2f5e7e53d8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-403bc35adcaf16f4", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/routeValidation.test.js:1"}, "properties": {"repobilityId": "ee3d538fdcd3e35a", "scanner": "scanner-primary", "fingerprint": "403bc35adcaf16f4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-152e0dd334136db5", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/integrationWorkflow.test.js:1"}, "properties": {"repobilityId": "5cf8a914a452d85d", "scanner": "scanner-primary", "fingerprint": "152e0dd334136db5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9ec21a7ef60c9e1b", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/section18Extended.test.js:1"}, "properties": {"repobilityId": "c51b9a676043d8e5", "scanner": "scanner-primary", "fingerprint": "9ec21a7ef60c9e1b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e2cab1228efaa692", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/patchRoutes.test.js:1"}, "properties": {"repobilityId": "d7ee75ff22302cca", "scanner": "scanner-primary", "fingerprint": "e2cab1228efaa692", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3f8c740f052cdac3", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/169_ai_assistant.test.js:1"}, "properties": {"repobilityId": "dee69fd1c19ac12f", "scanner": "scanner-primary", "fingerprint": "3f8c740f052cdac3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41f98ddf1346b746", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/section17DataSecurity.test.js:1"}, "properties": {"repobilityId": "fb510dda75a4d1ff", "scanner": "scanner-primary", "fingerprint": "41f98ddf1346b746", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-226662dd5cd4508b", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/m7BillingRoutes.test.js:1"}, "properties": {"repobilityId": "709f96a5c771be86", "scanner": "scanner-primary", "fingerprint": "226662dd5cd4508b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-af3f7eabf7f65a15", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/routerosService.test.js:829"}, "properties": {"repobilityId": "4eca6c99725191c5", "scanner": "scanner-primary", "fingerprint": "af3f7eabf7f65a15", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-47c173bd2d7db7b0", "level": "none", "message": {"text": "Commented-code block (9 lines) in tests/autoBillingCycle.test.js:1"}, "properties": {"repobilityId": "0b8cb0f5a3766521", "scanner": "scanner-primary", "fingerprint": "47c173bd2d7db7b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4edc4d60f07b455f", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/ponPortManagement.test.js:1"}, "properties": {"repobilityId": "accb5d457c91c533", "scanner": "scanner-primary", "fingerprint": "4edc4d60f07b455f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c564ffbe91be8e5a", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/contractSuspend.test.js:1"}, "properties": {"repobilityId": "02539df5deca0b1c", "scanner": "scanner-primary", "fingerprint": "c564ffbe91be8e5a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-18fe97fbf5c38c34", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/app.test.js:1"}, "properties": {"repobilityId": "86bcafb1c066401f", "scanner": "scanner-primary", "fingerprint": "18fe97fbf5c38c34", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0e26079238247662", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/criticalModels.test.js:1"}, "properties": {"repobilityId": "2634db975fd2b363", "scanner": "scanner-primary", "fingerprint": "0e26079238247662", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5fde87daec0ab8b4", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/pppoeServiceProfileSync.test.js:1"}, "properties": {"repobilityId": "132be9db66edffab", "scanner": "scanner-primary", "fingerprint": "5fde87daec0ab8b4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8df2d4d390be3662", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/multitenantIsolation.test.js:1"}, "properties": {"repobilityId": "1900f3b1f4498067", "scanner": "scanner-primary", "fingerprint": "8df2d4d390be3662", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8c784ea8062e937f", "level": "none", "message": {"text": "Commented-code block (9 lines) in tests/aiHooks.test.js:1"}, "properties": {"repobilityId": "21fd50bea338987a", "scanner": "scanner-primary", "fingerprint": "8c784ea8062e937f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-25211afc5a8eed38", "level": "none", "message": {"text": "Commented-code block (10 lines) in tests/aiPolicy.test.js:1"}, "properties": {"repobilityId": "f4ed69c651a6fc45", "scanner": "scanner-primary", "fingerprint": "25211afc5a8eed38", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7d58f75967edcde", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/pppoeDiagnosticsService.test.js:206"}, "properties": {"repobilityId": "56e1c8612909a942", "scanner": "scanner-primary", "fingerprint": "a7d58f75967edcde", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-575e8680d9d2cbf9", "level": "note", "message": {"text": "Legacy-named symbol `config_backup` in tests/newValidationSchemas.test.js:853"}, "properties": {"repobilityId": "46ff845da3789a68", "scanner": "scanner-primary", "fingerprint": "575e8680d9d2cbf9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bc84aae4c3322c9c", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/newValidationSchemas.test.js:1"}, "properties": {"repobilityId": "be71632554fd2791", "scanner": "scanner-primary", "fingerprint": "bc84aae4c3322c9c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-afc8e163ae199f55", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/clientProfileRoutes.test.js:1"}, "properties": {"repobilityId": "0f546dbade474446", "scanner": "scanner-primary", "fingerprint": "afc8e163ae199f55", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dfb34f12cc052f24", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/migrate.test.js:1"}, "properties": {"repobilityId": "db512d832d1c7828", "scanner": "scanner-primary", "fingerprint": "dfb34f12cc052f24", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7f066ddff3f0ba1a", "level": "none", "message": {"text": "Commented-code block (9 lines) in tests/graphqlAi.test.js:1"}, "properties": {"repobilityId": "f07f3fed2c7463b8", "scanner": "scanner-primary", "fingerprint": "7f066ddff3f0ba1a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d0eb082d633ea583", "level": "none", "message": {"text": "Commented-code block (10 lines) in tests/dbReadReplica.test.js:1"}, "properties": {"repobilityId": "1434e81bef174d19", "scanner": "scanner-primary", "fingerprint": "d0eb082d633ea583", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5cf5431e7f580bdd", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/domainControllersDeep.test.js:1"}, "properties": {"repobilityId": "30e74dceca366da9", "scanner": "scanner-primary", "fingerprint": "5cf5431e7f580bdd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2e6c10523ce102c9", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/aiReplyService.test.js:1"}, "properties": {"repobilityId": "b8822440dc00899f", "scanner": "scanner-primary", "fingerprint": "2e6c10523ce102c9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-779f86cedc5dc288", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/e2ePaymentFlow.test.js:1"}, "properties": {"repobilityId": "78be1eedf231dfbe", "scanner": "scanner-primary", "fingerprint": "779f86cedc5dc288", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-90478845949c4d92", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/e2eBillingWorkflow.test.js:1"}, "properties": {"repobilityId": "4acc8361c37eed1d", "scanner": "scanner-primary", "fingerprint": "90478845949c4d92", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a0ecb65f46e1b3bc", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/dsar.test.js:7"}, "properties": {"repobilityId": "4c814b2c0028a1bb", "scanner": "scanner-primary", "fingerprint": "a0ecb65f46e1b3bc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-29c85d4028ab0971", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/section16.test.js:1"}, "properties": {"repobilityId": "ae2250fb45591a9c", "scanner": "scanner-primary", "fingerprint": "29c85d4028ab0971", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e7bae499d2537406", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/coverageZoneMap.test.js:1"}, "properties": {"repobilityId": "ba88da62a0e3d4f9", "scanner": "scanner-primary", "fingerprint": "e7bae499d2537406", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b49f98d209c7836", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/remainingModels.test.js:1"}, "properties": {"repobilityId": "56821625ecb8a784", "scanner": "scanner-primary", "fingerprint": "7b49f98d209c7836", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-74ef74112f9def96", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/validationSchemas.test.js:1"}, "properties": {"repobilityId": "37edf4f0f61af7f6", "scanner": "scanner-primary", "fingerprint": "74ef74112f9def96", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-874c786f6ca98b0e", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/webhookRetry.test.js:1"}, "properties": {"repobilityId": "4e8c7f128d9b29a8", "scanner": "scanner-primary", "fingerprint": "874c786f6ca98b0e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f4e874e8cee627d3", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/missingSchemas.test.js:1"}, "properties": {"repobilityId": "ed1a60980bb7a515", "scanner": "scanner-primary", "fingerprint": "f4e874e8cee627d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca12b876334c8865", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/paginationConsistency.test.js:1"}, "properties": {"repobilityId": "cf1e9c61dfddd4be", "scanner": "scanner-primary", "fingerprint": "ca12b876334c8865", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3342fa45e352bb67", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/productionHardening.test.js:1"}, "properties": {"repobilityId": "cd33ffaf853add98", "scanner": "scanner-primary", "fingerprint": "3342fa45e352bb67", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8127842ff7c1887b", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/secretsAudit.test.js:1"}, "properties": {"repobilityId": "ce77b66d62ffd887", "scanner": "scanner-primary", "fingerprint": "8127842ff7c1887b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-21052bf2948de6c7", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/pppoeAuthFlow.test.js:1"}, "properties": {"repobilityId": "e7920d59e2e31f91", "scanner": "scanner-primary", "fingerprint": "21052bf2948de6c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9f25a69b5095d4d0", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/firerelay.test.js:1"}, "properties": {"repobilityId": "a343054fd1bd74cb", "scanner": "scanner-primary", "fingerprint": "9f25a69b5095d4d0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3dc1aee335275d5d", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/authServiceExtended.test.js:1"}, "properties": {"repobilityId": "97861704c2219cd0", "scanner": "scanner-primary", "fingerprint": "3dc1aee335275d5d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f890dfc108280d48", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/radiusFreeradiusSync.test.js:1"}, "properties": {"repobilityId": "7cc263dc0ac4861b", "scanner": "scanner-primary", "fingerprint": "f890dfc108280d48", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-afd404e0f0a70a25", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/radiusCoaEncoder.test.js:1"}, "properties": {"repobilityId": "b89e18ec5ac08baa", "scanner": "scanner-primary", "fingerprint": "afd404e0f0a70a25", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-572a3c32eb745318", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/subscriberProvisioningService.test.js:1"}, "properties": {"repobilityId": "4f496bad633de4d7", "scanner": "scanner-primary", "fingerprint": "572a3c32eb745318", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-224da1556450066f", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/coreRoutes.test.js:1"}, "properties": {"repobilityId": "332a6c3fbaacffde", "scanner": "scanner-primary", "fingerprint": "224da1556450066f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f47de2b8aaddf30", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/httpCache.test.js:1"}, "properties": {"repobilityId": "4576eec149117d87", "scanner": "scanner-primary", "fingerprint": "0f47de2b8aaddf30", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eefd19949fed9275", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/section18Services.test.js:1"}, "properties": {"repobilityId": "4dd0347ef06fb0c9", "scanner": "scanner-primary", "fingerprint": "eefd19949fed9275", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca84db74d592ab2f", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/domainControllers.test.js:1"}, "properties": {"repobilityId": "1b29bca35fbe5ea9", "scanner": "scanner-primary", "fingerprint": "ca84db74d592ab2f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0424de066ad82bd4", "level": "none", "message": {"text": "Commented-code block (9 lines) in tests/portalAdminServiceRequests.test.js:1"}, "properties": {"repobilityId": "b76bf713645b2464", "scanner": "scanner-primary", "fingerprint": "0424de066ad82bd4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4414ac78a7b10707", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/routeIntegration.test.js:1"}, "properties": {"repobilityId": "a28d1fa78c17d0d4", "scanner": "scanner-primary", "fingerprint": "4414ac78a7b10707", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9bc1a59b99e412c4", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/nasHealthService.test.js:1"}, "properties": {"repobilityId": "7d49c3a5ae374c09", "scanner": "scanner-primary", "fingerprint": "9bc1a59b99e412c4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0fc2f1df46d2a261", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/section17.test.js:1499"}, "properties": {"repobilityId": "9a664d103c9d8d47", "scanner": "scanner-primary", "fingerprint": "0fc2f1df46d2a261", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0a4336e89a0d8de6", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/e2eSuspensionWorkflow.test.js:1"}, "properties": {"repobilityId": "a1180a6cc59409e3", "scanner": "scanner-primary", "fingerprint": "0a4336e89a0d8de6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-38fca513e16d1bb6", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/routesCoverage.test.js:1"}, "properties": {"repobilityId": "2f678aa9bd4c7cf7", "scanner": "scanner-primary", "fingerprint": "38fca513e16d1bb6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-89407239761d1845", "level": "none", "message": {"text": "Commented-code block (11 lines) in tests/radiusAuthzSync.test.js:1"}, "properties": {"repobilityId": "5da25c0871ac1773", "scanner": "scanner-primary", "fingerprint": "89407239761d1845", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aede2bd81c45e4e6", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/llmProviderService.test.js:1"}, "properties": {"repobilityId": "5a7d4756f588d641", "scanner": "scanner-primary", "fingerprint": "aede2bd81c45e4e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-92507bf0c6a4ad4f", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/portalSection11.test.js:1"}, "properties": {"repobilityId": "06d2df53eb6be69c", "scanner": "scanner-primary", "fingerprint": "92507bf0c6a4ad4f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a981460323c6fea7", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/graphql.test.js:1"}, "properties": {"repobilityId": "35c8a9b5424ff9a1", "scanner": "scanner-primary", "fingerprint": "a981460323c6fea7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba669ed22885b946", "level": "note", "message": {"text": "Legacy-named symbol `test_backup` in tests/backup.test.js:134"}, "properties": {"repobilityId": "bac946007417f419", "scanner": "scanner-primary", "fingerprint": "ba669ed22885b946", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-447e75df8ea4d5d9", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/loadtestSoak.test.js:1"}, "properties": {"repobilityId": "d4e3aa8a4cd44cbd", "scanner": "scanner-primary", "fingerprint": "447e75df8ea4d5d9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-10a03ce803ebdbc3", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/stubHonesty.test.js:276"}, "properties": {"repobilityId": "67176362ad0ae022", "scanner": "scanner-primary", "fingerprint": "10a03ce803ebdbc3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-56cb38df91c6a1aa", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/radiusAccountingService.test.js:163"}, "properties": {"repobilityId": "a9bded8de8e1bbf6", "scanner": "scanner-primary", "fingerprint": "56cb38df91c6a1aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-92aa2b0a64569184", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/networkRoutes.test.js:1"}, "properties": {"repobilityId": "7630864b8ca0b725", "scanner": "scanner-primary", "fingerprint": "92aa2b0a64569184", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a0d392eb3ce77d44", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/radiusLoginTimeService.test.js:1"}, "properties": {"repobilityId": "376e8a9fa2e4719b", "scanner": "scanner-primary", "fingerprint": "a0d392eb3ce77d44", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a3a573d16c6c7f5", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/workers/aiWorkers.test.js:1"}, "properties": {"repobilityId": "175f61bb86743b86", "scanner": "scanner-primary", "fingerprint": "1a3a573d16c6c7f5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c99b7f9137f97dc4", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/app.js:718"}, "properties": {"repobilityId": "ff83fccc04c13356", "scanner": "scanner-primary", "fingerprint": "c99b7f9137f97dc4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c3ac2973b7c0dcc7", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/models/AiProvider.js:1"}, "properties": {"repobilityId": "4f88749d5949877d", "scanner": "scanner-primary", "fingerprint": "c3ac2973b7c0dcc7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7b003eb3dc7933ac", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/models/ServiceOrder.js:1"}, "properties": {"repobilityId": "9838fe69b8b9e204", "scanner": "scanner-primary", "fingerprint": "7b003eb3dc7933ac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b7f9b04634573c5f", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/models/AiReplyLog.js:1"}, "properties": {"repobilityId": "abf0f4558bbd7255", "scanner": "scanner-primary", "fingerprint": "b7f9b04634573c5f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-94d487ac50c016c9", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/models/ContractTopologyPath.js:1"}, "properties": {"repobilityId": "573d3f8f508c432b", "scanner": "scanner-primary", "fingerprint": "94d487ac50c016c9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-05f59846acf7d345", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/models/SatisfactionSurvey.js:1"}, "properties": {"repobilityId": "6cccbbfd0ae8b1bb", "scanner": "scanner-primary", "fingerprint": "05f59846acf7d345", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-91efee3be93d5e8e", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/models/AiPolicy.js:1"}, "properties": {"repobilityId": "253b5f1473b208dc", "scanner": "scanner-primary", "fingerprint": "91efee3be93d5e8e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc4d5fb1e232add7", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/models/AiPhrase.js:1"}, "properties": {"repobilityId": "9c4200d912f79b62", "scanner": "scanner-primary", "fingerprint": "bc4d5fb1e232add7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0fa9ca370457bb69", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/models/AiForbiddenTerm.js:1"}, "properties": {"repobilityId": "f390ecc7c862055b", "scanner": "scanner-primary", "fingerprint": "0fa9ca370457bb69", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-21e6ed36de1ada44", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/models/Lead.js:1"}, "properties": {"repobilityId": "9690daf92cbd4339", "scanner": "scanner-primary", "fingerprint": "21e6ed36de1ada44", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d38f0288968e0bfc", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/models/FollowUpReminder.js:1"}, "properties": {"repobilityId": "b68276a898bbed2b", "scanner": "scanner-primary", "fingerprint": "d38f0288968e0bfc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a50f215b3f439163", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/models/TicketEscalation.js:1"}, "properties": {"repobilityId": "31db1be354b553f9", "scanner": "scanner-primary", "fingerprint": "a50f215b3f439163", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6a985ebb4dc740a6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/models/ClientGroup.js:1"}, "properties": {"repobilityId": "1cacce46b8282683", "scanner": "scanner-primary", "fingerprint": "6a985ebb4dc740a6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a17190c0db6b6d32", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/models/BaseModel.js:1"}, "properties": {"repobilityId": "a0914b46e0972513", "scanner": "scanner-primary", "fingerprint": "a17190c0db6b6d32", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e297f5682f98e251", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/models/WinbackCampaign.js:1"}, "properties": {"repobilityId": "db4c5d8eaae3e8a9", "scanner": "scanner-primary", "fingerprint": "e297f5682f98e251", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-28190aee0555ba0d", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/models/ClientInteraction.js:1"}, "properties": {"repobilityId": "49753b3f1fe507f2", "scanner": "scanner-primary", "fingerprint": "28190aee0555ba0d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8643d180da935922", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/config/firerelay.js:1"}, "properties": {"repobilityId": "02cb825641494d25", "scanner": "scanner-primary", "fingerprint": "8643d180da935922", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a83e7a63eb986a71", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/config/database.js:1"}, "properties": {"repobilityId": "d3fb7138181cb697", "scanner": "scanner-primary", "fingerprint": "a83e7a63eb986a71", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-922dd429caeb7062", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/middleware/ipAllowlist.js:1"}, "properties": {"repobilityId": "07ad1816afc29c4e", "scanner": "scanner-primary", "fingerprint": "922dd429caeb7062", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c899afcecf74c4e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/middleware/portalAuth.js:1"}, "properties": {"repobilityId": "9c5482cbea0ce0c0", "scanner": "scanner-primary", "fingerprint": "2c899afcecf74c4e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2bada8864107ac39", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/middleware/firerelay.js:6"}, "properties": {"repobilityId": "795e5bc2936242d8", "scanner": "scanner-primary", "fingerprint": "2bada8864107ac39", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b6ac25a7f77868d0", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/middleware/rateLimit.js:1"}, "properties": {"repobilityId": "180ddf098c247383", "scanner": "scanner-primary", "fingerprint": "b6ac25a7f77868d0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fa2ecdd35c3ab975", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/middleware/orgScope.js:1"}, "properties": {"repobilityId": "574741f0fa95b7a1", "scanner": "scanner-primary", "fingerprint": "fa2ecdd35c3ab975", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-55667a736d43748f", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/middleware/auth.js:1"}, "properties": {"repobilityId": "2e6e46409fab4b5b", "scanner": "scanner-primary", "fingerprint": "55667a736d43748f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1f3900f29a0ff706", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/middleware/requestId.js:1"}, "properties": {"repobilityId": "c790ee2e4c93ae51", "scanner": "scanner-primary", "fingerprint": "1f3900f29a0ff706", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2a740a43878391d4", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/middleware/requestLogger.js:1"}, "properties": {"repobilityId": "9c411f391302d54e", "scanner": "scanner-primary", "fingerprint": "2a740a43878391d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-088ea173d71ed15e", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/middleware/featureFlag.js:1"}, "properties": {"repobilityId": "6a18833914cd661e", "scanner": "scanner-primary", "fingerprint": "088ea173d71ed15e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf4a5ded07395b6c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/middleware/httpCache.js:1"}, "properties": {"repobilityId": "a44b8b1e03e6078d", "scanner": "scanner-primary", "fingerprint": "cf4a5ded07395b6c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-709d88fdf5a5ec90", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/middleware/sanitize.js:1"}, "properties": {"repobilityId": "b34e56eb9f189d03", "scanner": "scanner-primary", "fingerprint": "709d88fdf5a5ec90", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-43a31aa591694acd", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/middleware/csrf.js:9"}, "properties": {"repobilityId": "6534a9707cc55353", "scanner": "scanner-primary", "fingerprint": "43a31aa591694acd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1c842f93a30da289", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/middleware/rbac.js:1"}, "properties": {"repobilityId": "bbb81a8b8727349c", "scanner": "scanner-primary", "fingerprint": "1c842f93a30da289", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f026e64ebd1a3c0e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/middleware/upload.js:1"}, "properties": {"repobilityId": "2aa5c2b5adc985c8", "scanner": "scanner-primary", "fingerprint": "f026e64ebd1a3c0e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5d6dca0ccef94d13", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/middleware/checkQuota.js:1"}, "properties": {"repobilityId": "682afb876be0726b", "scanner": "scanner-primary", "fingerprint": "5d6dca0ccef94d13", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b217bb45028e637d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/middleware/schemas/export.js:1"}, "properties": {"repobilityId": "11a8464f79977ce6", "scanner": "scanner-primary", "fingerprint": "b217bb45028e637d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db0b0f6cd68b7bd2", "level": "note", "message": {"text": "Legacy-named symbol `mikrotik_backup` in src/middleware/schemas/deviceConfigBackups.js:7"}, "properties": {"repobilityId": "778a661225b3d07e", "scanner": "scanner-primary", "fingerprint": "db0b0f6cd68b7bd2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f7c67c7763b1513d", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/middleware/schemas/metrics.js:1"}, "properties": {"repobilityId": "a2a2ef55ea65e0d2", "scanner": "scanner-primary", "fingerprint": "f7c67c7763b1513d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5ef96147d0c8fa5c", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/middleware/schemas/events.js:1"}, "properties": {"repobilityId": "ab36b4d42cec0f84", "scanner": "scanner-primary", "fingerprint": "5ef96147d0c8fa5c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-00e3aa4470bec72a", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/middleware/schemas/dashboard.js:1"}, "properties": {"repobilityId": "94c118fbb8670300", "scanner": "scanner-primary", "fingerprint": "00e3aa4470bec72a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4ed5c6128569e9ad", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/middleware/schemas/pdf.js:1"}, "properties": {"repobilityId": "346642e9695fee20", "scanner": "scanner-primary", "fingerprint": "4ed5c6128569e9ad", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2b4df595d2c77b63", "level": "note", "message": {"text": "Legacy-named symbol `config_backup` in src/middleware/schemas/files.js:8"}, "properties": {"repobilityId": "afeb11ed9b574f90", "scanner": "scanner-primary", "fingerprint": "2b4df595d2c77b63", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3662b3d283135db4", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/middleware/schemas/paymentTransactions.js:1"}, "properties": {"repobilityId": "d05e5b012025fc2b", "scanner": "scanner-primary", "fingerprint": "3662b3d283135db4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8863ca897f7bb6b4", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/middleware/schemas/paymentWebhooks.js:1"}, "properties": {"repobilityId": "de669218c89e9d69", "scanner": "scanner-primary", "fingerprint": "8863ca897f7bb6b4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de3c3438b0257fe2", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/middleware/schemas/satCatalogs.js:1"}, "properties": {"repobilityId": "c23f725e43eaa99a", "scanner": "scanner-primary", "fingerprint": "de3c3438b0257fe2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-13f6c42053f24621", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/middleware/schemas/interactions.js:1"}, "properties": {"repobilityId": "c6074fdc7320498a", "scanner": "scanner-primary", "fingerprint": "13f6c42053f24621", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c350e195593bcb1", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/scripts/migrate.js:1"}, "properties": {"repobilityId": "fb57b9cacedf0a26", "scanner": "scanner-primary", "fingerprint": "0c350e195593bcb1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0ed2b0d3a89030aa", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/scripts/firerelay-agent.js:1"}, "properties": {"repobilityId": "7df6391a8d01f3f2", "scanner": "scanner-primary", "fingerprint": "0ed2b0d3a89030aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-afe36b0ba1cee35a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/scripts/admin.js:2"}, "properties": {"repobilityId": "22b2295af52cc79b", "scanner": "scanner-primary", "fingerprint": "afe36b0ba1cee35a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5765d4826166d065", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/scripts/migration-smoke-test.js:1"}, "properties": {"repobilityId": "dd1f188522b463dc", "scanner": "scanner-primary", "fingerprint": "5765d4826166d065", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1b96ca312b7805c3", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/scripts/openapi.js:2"}, "properties": {"repobilityId": "dd2c896cd5657e43", "scanner": "scanner-primary", "fingerprint": "1b96ca312b7805c3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bb10a631a5ae2300", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/scripts/loadtest.js:1"}, "properties": {"repobilityId": "c237c76a29d5a2a5", "scanner": "scanner-primary", "fingerprint": "bb10a631a5ae2300", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-744f1dddf76f4662", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/scripts/postman.js:2"}, "properties": {"repobilityId": "ff923effb27fb4e4", "scanner": "scanner-primary", "fingerprint": "744f1dddf76f4662", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c2dc546c709e8e99", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/scripts/loadtest-soak.js:1"}, "properties": {"repobilityId": "5df629d812dbec2a", "scanner": "scanner-primary", "fingerprint": "c2dc546c709e8e99", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9b64bf8ff0a022a7", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/scripts/spec-drift.js:2"}, "properties": {"repobilityId": "d58d4c5ec270283c", "scanner": "scanner-primary", "fingerprint": "9b64bf8ff0a022a7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-49cd150805362e84", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/scripts/rollback.js:1"}, "properties": {"repobilityId": "8dac94c49667faf8", "scanner": "scanner-primary", "fingerprint": "49cd150805362e84", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d16adfebd2b3e85e", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/scripts/gen-route.js:2"}, "properties": {"repobilityId": "d186d448f1324d91", "scanner": "scanner-primary", "fingerprint": "d16adfebd2b3e85e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ea4043fbe62d88cc", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/scripts/seed.js:1"}, "properties": {"repobilityId": "2aa9be5ef42fae91", "scanner": "scanner-primary", "fingerprint": "ea4043fbe62d88cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7157c2b964352d18", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/scripts/verify-volumes.js:1"}, "properties": {"repobilityId": "64e9dc878d30e93a", "scanner": "scanner-primary", "fingerprint": "7157c2b964352d18", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-958920515427b3d2", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/scripts/schema-parity-check.js:1"}, "properties": {"repobilityId": "0d8618cda5cab57f", "scanner": "scanner-primary", "fingerprint": "958920515427b3d2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b17cbc91904fbdb0", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/scripts/loadtest-seed.js:1"}, "properties": {"repobilityId": "098c8ff2aba5c197", "scanner": "scanner-primary", "fingerprint": "b17cbc91904fbdb0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-afe2790187ac8c29", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/scripts/backup.js:1"}, "properties": {"repobilityId": "681a4630fe41853d", "scanner": "scanner-primary", "fingerprint": "afe2790187ac8c29", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e7466e27589e6944", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/utils/circuitBreaker.js:1"}, "properties": {"repobilityId": "73ab0766863dae13", "scanner": "scanner-primary", "fingerprint": "e7466e27589e6944", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2a637621396cc827", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/utils/encryption.js:1"}, "properties": {"repobilityId": "8b4b4fdcb5c2e41c", "scanner": "scanner-primary", "fingerprint": "2a637621396cc827", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7fb40b91a359f9a6", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/utils/logger.js:1"}, "properties": {"repobilityId": "3abace85459f706e", "scanner": "scanner-primary", "fingerprint": "7fb40b91a359f9a6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-153966ca1f06d762", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/utils/scopes.js:1"}, "properties": {"repobilityId": "6305a0c084835cc9", "scanner": "scanner-primary", "fingerprint": "153966ca1f06d762", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4fd1a3e19239cf5c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/utils/errorTracking.js:1"}, "properties": {"repobilityId": "38d12db58947842b", "scanner": "scanner-primary", "fingerprint": "4fd1a3e19239cf5c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c4233f14131b113", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/utils/openapi.js:1"}, "properties": {"repobilityId": "470897f031262614", "scanner": "scanner-primary", "fingerprint": "2c4233f14131b113", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-af21b6a3fb511f36", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/utils/dbMetrics.js:1"}, "properties": {"repobilityId": "59edff3f63c15ff3", "scanner": "scanner-primary", "fingerprint": "af21b6a3fb511f36", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f50ccb7472139b63", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/utils/i18n.js:1"}, "properties": {"repobilityId": "f42736565799b3d6", "scanner": "scanner-primary", "fingerprint": "f50ccb7472139b63", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1dbc753da1959fb4", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/utils/userSanitize.js:1"}, "properties": {"repobilityId": "3ec55f13f23e8dc1", "scanner": "scanner-primary", "fingerprint": "1dbc753da1959fb4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-58c0cbb35037a54f", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/routes/firerelay.js:6"}, "properties": {"repobilityId": "f780e43135796a5c", "scanner": "scanner-primary", "fingerprint": "58c0cbb35037a54f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f2c87a22e00cce5f", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/routes/communicationDelivery.js:1"}, "properties": {"repobilityId": "0b69e015118cd735", "scanner": "scanner-primary", "fingerprint": "f2c87a22e00cce5f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-161e0307920bcf80", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/routes/portalServiceRequests.js:1"}, "properties": {"repobilityId": "ccd9789da2ae2edf", "scanner": "scanner-primary", "fingerprint": "161e0307920bcf80", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aff0d60c1c127aa1", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/routes/queueStats.js:1"}, "properties": {"repobilityId": "ec881d464bb15b3f", "scanner": "scanner-primary", "fingerprint": "aff0d60c1c127aa1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f2ae11bbfe0ba965", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/routes/pollerNodes.js:5"}, "properties": {"repobilityId": "f120cb9c6f273c02", "scanner": "scanner-primary", "fingerprint": "f2ae11bbfe0ba965", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-75ab3faf028e6c69", "level": "none", "message": {"text": "Commented-code block (14 lines) in src/routes/fiberPlantManagement.js:8"}, "properties": {"repobilityId": "08ad74b0e7750564", "scanner": "scanner-primary", "fingerprint": "75ab3faf028e6c69", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eaf5f61ca8a3608e", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/routes/nocAi.js:6"}, "properties": {"repobilityId": "dc1f3be98453558e", "scanner": "scanner-primary", "fingerprint": "eaf5f61ca8a3608e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-57b9c42574eb8779", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/routes/profeco.js:1"}, "properties": {"repobilityId": "92a5dac79b41ec89", "scanner": "scanner-primary", "fingerprint": "57b9c42574eb8779", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ce05ffff478ca7c6", "level": "none", "message": {"text": "Commented-code block (13 lines) in src/routes/portal.js:32"}, "properties": {"repobilityId": "6d3b166498f05f1a", "scanner": "scanner-primary", "fingerprint": "ce05ffff478ca7c6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-72a38e3b2a2d8f7c", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/routes/bulk.js:1"}, "properties": {"repobilityId": "56d88326e33b3ebd", "scanner": "scanner-primary", "fingerprint": "72a38e3b2a2d8f7c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c711cb755217e0e2", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/routes/integrations.js:4"}, "properties": {"repobilityId": "4c61d62ac0d82cf5", "scanner": "scanner-primary", "fingerprint": "c711cb755217e0e2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-635f3042b41c4528", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/routes/ai.js:11"}, "properties": {"repobilityId": "fc6121325e8019fc", "scanner": "scanner-primary", "fingerprint": "635f3042b41c4528", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e804715a0efc3d56", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/routes/metrics.js:1"}, "properties": {"repobilityId": "2339e66d42b748a5", "scanner": "scanner-primary", "fingerprint": "e804715a0efc3d56", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-17f501e86355784f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/routes/lifecycle.js:1"}, "properties": {"repobilityId": "10c9f76481aa19a2", "scanner": "scanner-primary", "fingerprint": "17f501e86355784f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f761564ff6b392e4", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/routes/bandwidthTests.js:1"}, "properties": {"repobilityId": "6024eea426cafdd1", "scanner": "scanner-primary", "fingerprint": "f761564ff6b392e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-23de04bc12d33558", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/routes/events.js:1"}, "properties": {"repobilityId": "97cedf2413a6eb24", "scanner": "scanner-primary", "fingerprint": "23de04bc12d33558", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-955e02df5d90e414", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/routes/portalKb.js:1"}, "properties": {"repobilityId": "766a855d19cb82e5", "scanner": "scanner-primary", "fingerprint": "955e02df5d90e414", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-125e9f08b2ae53bf", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/routes/reportDefinitions.js:1"}, "properties": {"repobilityId": "fbc59325ed9e5e99", "scanner": "scanner-primary", "fingerprint": "125e9f08b2ae53bf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f394c0b1531df058", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/routes/pppoe.js:1"}, "properties": {"repobilityId": "a9a361d3e672e1ed", "scanner": "scanner-primary", "fingerprint": "f394c0b1531df058", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ee1c2286223cdbd9", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/routes/changelog.js:1"}, "properties": {"repobilityId": "8a25c082bff5719a", "scanner": "scanner-primary", "fingerprint": "ee1c2286223cdbd9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-80b02f3cce6e7e59", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/routes/devicePollingConfigs.js:5"}, "properties": {"repobilityId": "e74eb168dbfba351", "scanner": "scanner-primary", "fingerprint": "80b02f3cce6e7e59", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-476c6cd85c241935", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/routes/wirelessManagement.js:8"}, "properties": {"repobilityId": "c98603e43157c047", "scanner": "scanner-primary", "fingerprint": "476c6cd85c241935", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-243d4dcc6c75e044", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/routes/onuManagement.js:8"}, "properties": {"repobilityId": "466b83dc166d54f7", "scanner": "scanner-primary", "fingerprint": "243d4dcc6c75e044", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-751723c99726e767", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/routes/sso.js:1"}, "properties": {"repobilityId": "45de7e2df652a168", "scanner": "scanner-primary", "fingerprint": "751723c99726e767", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-05302b862c75ead5", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/routes/coverageZones.js:1"}, "properties": {"repobilityId": "b752ceea4ab8931d", "scanner": "scanner-primary", "fingerprint": "05302b862c75ead5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-466dd4dbcd07a846", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/routes/dataSecurity.js:1"}, "properties": {"repobilityId": "ddf09aa963cf117b", "scanner": "scanner-primary", "fingerprint": "466dd4dbcd07a846", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8e34b5f6937a9735", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/routes/pdf.js:1"}, "properties": {"repobilityId": "ba1ec5099b320de5", "scanner": "scanner-primary", "fingerprint": "8e34b5f6937a9735", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-adff7cefb9c8f819", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/routes/dsar.js:1"}, "properties": {"repobilityId": "0e4f21d35943b085", "scanner": "scanner-primary", "fingerprint": "adff7cefb9c8f819", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-368c20b24319ce62", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/routes/analyticsAI.js:1"}, "properties": {"repobilityId": "ee78110322864604", "scanner": "scanner-primary", "fingerprint": "368c20b24319ce62", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c73ec330da35318", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/routes/radius.js:30"}, "properties": {"repobilityId": "84fabcb246135e14", "scanner": "scanner-primary", "fingerprint": "0c73ec330da35318", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c4a3d174343f132a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/routes/cpeManagement.js:1"}, "properties": {"repobilityId": "a9dc78d7013b3f02", "scanner": "scanner-primary", "fingerprint": "c4a3d174343f132a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2351d0a0def5a419", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/routes/sms.js:1"}, "properties": {"repobilityId": "6109bef0635d70aa", "scanner": "scanner-primary", "fingerprint": "2351d0a0def5a419", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c19fa353125c3255", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/routes/snmpMetrics.js:6"}, "properties": {"repobilityId": "67dd6452f7e80e68", "scanner": "scanner-primary", "fingerprint": "c19fa353125c3255", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-52cc0c36bf7df54e", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/routes/resellers.js:5"}, "properties": {"repobilityId": "96b1b549c17c5120", "scanner": "scanner-primary", "fingerprint": "52cc0c36bf7df54e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3ece73c69af6ab86", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/routes/cpeProfiles.js:1"}, "properties": {"repobilityId": "d2a016e8cf987235", "scanner": "scanner-primary", "fingerprint": "3ece73c69af6ab86", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-da7e1ee6edbc53b9", "level": "none", "message": {"text": "Commented-code block (16 lines) in src/routes/oltManagement.js:8"}, "properties": {"repobilityId": "2f334aa95d158506", "scanner": "scanner-primary", "fingerprint": "da7e1ee6edbc53b9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c05b4cf62e6e0ffa", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/routes/clientDnd.js:1"}, "properties": {"repobilityId": "3a4b642897a8a7f4", "scanner": "scanner-primary", "fingerprint": "c05b4cf62e6e0ffa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-776b3cb69b9d88c1", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/routes/transitionMechanisms.js:3"}, "properties": {"repobilityId": "4a7599e0af55d5f0", "scanner": "scanner-primary", "fingerprint": "776b3cb69b9d88c1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e53e1b876d477e27", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/routes/serviceOrders.js:1"}, "properties": {"repobilityId": "fcc19463bc13577a", "scanner": "scanner-primary", "fingerprint": "e53e1b876d477e27", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a4449c928c898cb", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/routes/radiusAccounting.js:1"}, "properties": {"repobilityId": "02178fe35f48e521", "scanner": "scanner-primary", "fingerprint": "7a4449c928c898cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4794be17a598ffd0", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/routes/dataManagement.js:1"}, "properties": {"repobilityId": "1a7728972963b8c5", "scanner": "scanner-primary", "fingerprint": "4794be17a598ffd0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b6738ca90cd15eb1", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/routes/snmpTraps.js:1"}, "properties": {"repobilityId": "8f180c417ec7474f", "scanner": "scanner-primary", "fingerprint": "b6738ca90cd15eb1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c37c0e9b82747885", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/routes/billing.js:42"}, "properties": {"repobilityId": "27a8d3111677b708", "scanner": "scanner-primary", "fingerprint": "c37c0e9b82747885", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-29e3567c14f1c62c", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/routes/paymentWebhooks.js:1"}, "properties": {"repobilityId": "d319c0485c492788", "scanner": "scanner-primary", "fingerprint": "29e3567c14f1c62c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-db8aa0f8d289c7a2", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/routes/securityAdmin.js:1"}, "properties": {"repobilityId": "b3985b76f9ca457c", "scanner": "scanner-primary", "fingerprint": "db8aa0f8d289c7a2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3f3668099dfd2fa2", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/routes/resellerPortal.js:5"}, "properties": {"repobilityId": "6598248ca22bfa7a", "scanner": "scanner-primary", "fingerprint": "3f3668099dfd2fa2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-335422ca63d99ac7", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/routes/paymentReminders.js:1"}, "properties": {"repobilityId": "e1b161ef9ef5f97b", "scanner": "scanner-primary", "fingerprint": "335422ca63d99ac7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a35b85a3facf2d9e", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/routes/subscriberCertificates.js:1"}, "properties": {"repobilityId": "466b8990f99d1c7d", "scanner": "scanner-primary", "fingerprint": "a35b85a3facf2d9e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-558e5042dd7b84af", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/routes/trafficEngineering.js:1"}, "properties": {"repobilityId": "420720b8ac0ac925", "scanner": "scanner-primary", "fingerprint": "558e5042dd7b84af", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dda08e77a502ac32", "level": "none", "message": {"text": "Commented-code block (20 lines) in src/routes/supportConversations.js:6"}, "properties": {"repobilityId": "7691440573ee56cd", "scanner": "scanner-primary", "fingerprint": "dda08e77a502ac32", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e747a3159864fa74", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/routes/lateFeeRules.js:1"}, "properties": {"repobilityId": "817d85c08d99a2a9", "scanner": "scanner-primary", "fingerprint": "e747a3159864fa74", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aafc2f6cc9d20501", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/routes/topologyMap.js:6"}, "properties": {"repobilityId": "e8d549860fb79ead", "scanner": "scanner-primary", "fingerprint": "aafc2f6cc9d20501", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-89a8a791217f7b6d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/routes/regulatoryCompliance.js:1"}, "properties": {"repobilityId": "2b0106432ce5d27b", "scanner": "scanner-primary", "fingerprint": "89a8a791217f7b6d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-86e28f60fd8542f1", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/routes/invoiceSettings.js:1"}, "properties": {"repobilityId": "5c4098a21250aa35", "scanner": "scanner-primary", "fingerprint": "86e28f60fd8542f1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c1f5456b88c9e8a9", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/routes/networkSecurity.js:1"}, "properties": {"repobilityId": "4a86c10885996983", "scanner": "scanner-primary", "fingerprint": "c1f5456b88c9e8a9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aaa4de593f947ce3", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/routes/automationScripts.js:1"}, "properties": {"repobilityId": "959e9605b7433e75", "scanner": "scanner-primary", "fingerprint": "aaa4de593f947ce3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e321b43cae9cc0bf", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/routes/routerDrivers.js:1"}, "properties": {"repobilityId": "f0cbfa5d8c5eb7c1", "scanner": "scanner-primary", "fingerprint": "e321b43cae9cc0bf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-13459d2aeb23b963", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/workers/index.js:1"}, "properties": {"repobilityId": "9b737d1eb1833ca1", "scanner": "scanner-primary", "fingerprint": "13459d2aeb23b963", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4373cbbe0bc54056", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/graphql/resolvers.js:1"}, "properties": {"repobilityId": "a1ff2738696aeae8", "scanner": "scanner-primary", "fingerprint": "4373cbbe0bc54056", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fb47429d31af3bb4", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/graphql/index.js:9"}, "properties": {"repobilityId": "68db0e2fdb0c624f", "scanner": "scanner-primary", "fingerprint": "fb47429d31af3bb4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6e79a610c762423d", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/graphql/typeDefs.js:1"}, "properties": {"repobilityId": "37639f1a05720f5c", "scanner": "scanner-primary", "fingerprint": "6e79a610c762423d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3ee14c4e6e572ad9", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/controllers/cfdiController.js:1"}, "properties": {"repobilityId": "93c6236da111d157", "scanner": "scanner-primary", "fingerprint": "3ee14c4e6e572ad9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b399e5d5511d0e54", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/controllers/suspensionController.js:1"}, "properties": {"repobilityId": "a6b3dcfc6998a211", "scanner": "scanner-primary", "fingerprint": "b399e5d5511d0e54", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-20919daa9bf8902d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/controllers/dashboardController.js:1"}, "properties": {"repobilityId": "5efb0b9b4752bff1", "scanner": "scanner-primary", "fingerprint": "20919daa9bf8902d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9c1c6fa99bdf3c09", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/controllers/crudController.js:1"}, "properties": {"repobilityId": "50da48e83cb134e7", "scanner": "scanner-primary", "fingerprint": "9c1c6fa99bdf3c09", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6a7648268c4fbd80", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/controllers/importController.js:1"}, "properties": {"repobilityId": "6d2ba6b284f4c3d1", "scanner": "scanner-primary", "fingerprint": "6a7648268c4fbd80", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d956e1abfef20e2a", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/controllers/billingController.js:1"}, "properties": {"repobilityId": "309a12c7620c5026", "scanner": "scanner-primary", "fingerprint": "d956e1abfef20e2a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-849977ebc996aa87", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/controllers/exportController.js:1"}, "properties": {"repobilityId": "d764c72895bef9d2", "scanner": "scanner-primary", "fingerprint": "849977ebc996aa87", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f7813163dceb4f83", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/services/campaignService.js:1"}, "properties": {"repobilityId": "c419c0b2a0d5a34a", "scanner": "scanner-primary", "fingerprint": "f7813163dceb4f83", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f7724455fd7aa609", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/services/paymentRetryService.js:1"}, "properties": {"repobilityId": "3b447d21e36b681e", "scanner": "scanner-primary", "fingerprint": "f7724455fd7aa609", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-511f2d708c158e65", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/services/supportGeneralModule.js:1"}, "properties": {"repobilityId": "54bb458e705bd182", "scanner": "scanner-primary", "fingerprint": "511f2d708c158e65", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bfbfa4d16944db11", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/kbService.js:1"}, "properties": {"repobilityId": "a22b4363016a5b08", "scanner": "scanner-primary", "fingerprint": "bfbfa4d16944db11", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-830545f21f81bad6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/services/routerDriverService.js:6"}, "properties": {"repobilityId": "08234c6cf523f526", "scanner": "scanner-primary", "fingerprint": "830545f21f81bad6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fa97531d915da70c", "level": "none", "message": {"text": "Commented-code block (17 lines) in src/services/interactionService.js:1"}, "properties": {"repobilityId": "151e118b481c9279", "scanner": "scanner-primary", "fingerprint": "fa97531d915da70c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4d776bcec0516f55", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/refundRequestService.js:1"}, "properties": {"repobilityId": "32f36a442df0f9b1", "scanner": "scanner-primary", "fingerprint": "4d776bcec0516f55", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-59dbee4c70599e01", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/services/acsService.js:1"}, "properties": {"repobilityId": "9b82d5aef85f10d1", "scanner": "scanner-primary", "fingerprint": "59dbee4c70599e01", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fbb6322bcc772705", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/services/analyticsService.js:6"}, "properties": {"repobilityId": "60cc77c715f29bba", "scanner": "scanner-primary", "fingerprint": "fbb6322bcc772705", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-08bb40f69f0a02b7", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/services/automationService.js:1"}, "properties": {"repobilityId": "c34227282429a4d8", "scanner": "scanner-primary", "fingerprint": "08bb40f69f0a02b7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5696e70bdc42dcf7", "level": "note", "message": {"text": "Legacy-named symbol `database_backup` in src/services/taskRunner.js:105"}, "properties": {"repobilityId": "9fd55bbd86254412", "scanner": "scanner-primary", "fingerprint": "5696e70bdc42dcf7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-fd8562364c377be5", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/taskRunner.js:1"}, "properties": {"repobilityId": "4aa79fd901e19cfc", "scanner": "scanner-primary", "fingerprint": "fd8562364c377be5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b4a34edc6bceeb9a", "level": "none", "message": {"text": "Commented-code block (13 lines) in src/services/cpeDiagnosticsService.js:1"}, "properties": {"repobilityId": "0e5c5ea824a53c98", "scanner": "scanner-primary", "fingerprint": "b4a34edc6bceeb9a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-922a6fe8867b6643", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/services/poolAssignmentService.js:1"}, "properties": {"repobilityId": "079ecbfc60e751cd", "scanner": "scanner-primary", "fingerprint": "922a6fe8867b6643", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-88a69661ecebd36f", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/services/snmpPoller.js:1"}, "properties": {"repobilityId": "7fbd28c99f9bc856", "scanner": "scanner-primary", "fingerprint": "88a69661ecebd36f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-47113cc194426e77", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/services/aiSupportMetricsService.js:1"}, "properties": {"repobilityId": "d8f1aa0bf1e907ea", "scanner": "scanner-primary", "fingerprint": "47113cc194426e77", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8a5e258486e5032e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/services/drDrillService.js:1"}, "properties": {"repobilityId": "531bd7f5e4355ebd", "scanner": "scanner-primary", "fingerprint": "8a5e258486e5032e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7f14774c73b61de9", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/services/diagnosticEngineService.js:1"}, "properties": {"repobilityId": "5dc0f79e9b5b1a0e", "scanner": "scanner-primary", "fingerprint": "7f14774c73b61de9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6a2260c8453a0510", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/suspensionService.js:1"}, "properties": {"repobilityId": "dae0ee5a79977216", "scanner": "scanner-primary", "fingerprint": "6a2260c8453a0510", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7204ac1804bc18c0", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/firerelayService.js:1"}, "properties": {"repobilityId": "8cb874cfe8690961", "scanner": "scanner-primary", "fingerprint": "7204ac1804bc18c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9edfc7e91d6d8336", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/services/twoFactorService.js:1"}, "properties": {"repobilityId": "f1fc3563d04dbf21", "scanner": "scanner-primary", "fingerprint": "9edfc7e91d6d8336", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0dd31320af5ce8ed", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/services/reportService.js:1"}, "properties": {"repobilityId": "6b75a6acf87effe4", "scanner": "scanner-primary", "fingerprint": "0dd31320af5ce8ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7e7756a28ddfe3fc", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/fupNotificationService.js:3"}, "properties": {"repobilityId": "ea3b7b773d50da7a", "scanner": "scanner-primary", "fingerprint": "7e7756a28ddfe3fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-45928b381bc22141", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/services/scheduler.js:1"}, "properties": {"repobilityId": "25f271b6d50b2761", "scanner": "scanner-primary", "fingerprint": "45928b381bc22141", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-075ef8ef8b2ca5af", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/services/routerosService.js:1"}, "properties": {"repobilityId": "c8584bc54ecec421", "scanner": "scanner-primary", "fingerprint": "075ef8ef8b2ca5af", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1424510fae24bafe", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/portalAuthService.js:1"}, "properties": {"repobilityId": "510f38fa88531997", "scanner": "scanner-primary", "fingerprint": "1424510fae24bafe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-64cbf555535f2cd6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/services/wsHub.js:1"}, "properties": {"repobilityId": "0a5a9cccd62375fd", "scanner": "scanner-primary", "fingerprint": "64cbf555535f2cd6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a0071beca427513", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/services/firerelayTunnel.js:1"}, "properties": {"repobilityId": "d1b54055b35c9d79", "scanner": "scanner-primary", "fingerprint": "9a0071beca427513", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f5c9f444cb0aef6f", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/services/resellerService.js:1"}, "properties": {"repobilityId": "3f3e4fa9888b1cfc", "scanner": "scanner-primary", "fingerprint": "f5c9f444cb0aef6f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9c3e729a6ae7b616", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/quotaService.js:1"}, "properties": {"repobilityId": "474f8874a2e59d46", "scanner": "scanner-primary", "fingerprint": "9c3e729a6ae7b616", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-863c0397613ccb2c", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/qosService.js:1"}, "properties": {"repobilityId": "5122e7f2731ad0bc", "scanner": "scanner-primary", "fingerprint": "863c0397613ccb2c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-46a324c9502b0606", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/cfdiService.js:1"}, "properties": {"repobilityId": "1a7845aa71e44e2b", "scanner": "scanner-primary", "fingerprint": "46a324c9502b0606", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41a9daf01c32ee88", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/nasHealthService.js:1"}, "properties": {"repobilityId": "ab3a57fd54062ff0", "scanner": "scanner-primary", "fingerprint": "41a9daf01c32ee88", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3768423db940240b", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/services/cwmpXml.js:1"}, "properties": {"repobilityId": "94addeec76e6840f", "scanner": "scanner-primary", "fingerprint": "3768423db940240b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-84f6c62992d179c5", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/services/cloudStorageService.js:1"}, "properties": {"repobilityId": "cb93dc9fedb54e84", "scanner": "scanner-primary", "fingerprint": "84f6c62992d179c5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f633ca35e50cb646", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/services/auditLog.js:1"}, "properties": {"repobilityId": "da5a259dc517b86b", "scanner": "scanner-primary", "fingerprint": "f633ca35e50cb646", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-726ae6a8b1b59f9d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/services/topologyContextService.js:1"}, "properties": {"repobilityId": "492f7bc00adbf5bf", "scanner": "scanner-primary", "fingerprint": "726ae6a8b1b59f9d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7eea70b0742414f5", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/services/paymentReminderService.js:1"}, "properties": {"repobilityId": "a783095b13925b9b", "scanner": "scanner-primary", "fingerprint": "7eea70b0742414f5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1390a7c27a883ec", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/services/portalServiceRequestService.js:1"}, "properties": {"repobilityId": "f4b5274a3226a8fb", "scanner": "scanner-primary", "fingerprint": "e1390a7c27a883ec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a730b606d37bcce3", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/services/thermalReceiptService.js:1"}, "properties": {"repobilityId": "41da1f4241c62ab2", "scanner": "scanner-primary", "fingerprint": "a730b606d37bcce3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d5b4c297c025801", "level": "note", "message": {"text": "Legacy-named symbol `daysOld` in src/services/cpeSessionLogService.js:85"}, "properties": {"repobilityId": "180651872ae31cce", "scanner": "scanner-primary", "fingerprint": "0d5b4c297c025801", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-db1ba1ae8b79838c", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/cpeSessionLogService.js:1"}, "properties": {"repobilityId": "baa48b8deabbf1be", "scanner": "scanner-primary", "fingerprint": "db1ba1ae8b79838c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4c46ca2edd54703b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/radiusService.js:1"}, "properties": {"repobilityId": "a3bc46eb86e44266", "scanner": "scanner-primary", "fingerprint": "4c46ca2edd54703b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8d99849cf9c3eeaf", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/services/topologyMapService.js:1"}, "properties": {"repobilityId": "458d6240b2d635cf", "scanner": "scanner-primary", "fingerprint": "8d99849cf9c3eeaf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f31e646e0dc3c8d7", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/services/poolUtilizationService.js:1"}, "properties": {"repobilityId": "2a4be2d94692c7e0", "scanner": "scanner-primary", "fingerprint": "f31e646e0dc3c8d7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3ef945e2009d9190", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/usageService.js:1"}, "properties": {"repobilityId": "af0d058c745aec0a", "scanner": "scanner-primary", "fingerprint": "3ef945e2009d9190", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca940f33325b6704", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/eventBus.js:1"}, "properties": {"repobilityId": "464167de80cfa7b5", "scanner": "scanner-primary", "fingerprint": "ca940f33325b6704", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5240031be7c81491", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/jobQueueService.js:1"}, "properties": {"repobilityId": "dea31d79af1f4228", "scanner": "scanner-primary", "fingerprint": "5240031be7c81491", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-679b3db77489967c", "level": "note", "message": {"text": "Legacy-named symbol `dailyOld` in src/services/billingService.js:291"}, "properties": {"repobilityId": "f5dff5c24ca70455", "scanner": "scanner-primary", "fingerprint": "679b3db77489967c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a68f68e3bebb04f2", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/billingService.js:1"}, "properties": {"repobilityId": "d57652001ca9f4e5", "scanner": "scanner-primary", "fingerprint": "a68f68e3bebb04f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bd758986f5f8e372", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/services/radiusAttributeService.js:1"}, "properties": {"repobilityId": "a9458bcace0df10a", "scanner": "scanner-primary", "fingerprint": "bd758986f5f8e372", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6b85675d70f3d058", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/alertService.js:1"}, "properties": {"repobilityId": "fafb0220ed3c3950", "scanner": "scanner-primary", "fingerprint": "6b85675d70f3d058", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-70e8cc2c288298dd", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/services/securityService.js:1"}, "properties": {"repobilityId": "7147e683c43c6445", "scanner": "scanner-primary", "fingerprint": "70e8cc2c288298dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ae2531bafb58e4f2", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/invoiceSettingsService.js:1"}, "properties": {"repobilityId": "9b5cd20c2825474c", "scanner": "scanner-primary", "fingerprint": "ae2531bafb58e4f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc10fa0d033a3cd5", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/fupService.js:1"}, "properties": {"repobilityId": "0d6cbe507d1a813e", "scanner": "scanner-primary", "fingerprint": "bc10fa0d033a3cd5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7e17f2bb75cbb99", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/lateFeeService.js:1"}, "properties": {"repobilityId": "c9dcd6837aab7d76", "scanner": "scanner-primary", "fingerprint": "a7e17f2bb75cbb99", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-99d7a0a4ad51cde1", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/services/billingAdjustmentService.js:1"}, "properties": {"repobilityId": "9f4056a33af28946", "scanner": "scanner-primary", "fingerprint": "99d7a0a4ad51cde1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-11221218ec3c4d3a", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/radiusCoaEncoder.js:1"}, "properties": {"repobilityId": "f24040890370e6c0", "scanner": "scanner-primary", "fingerprint": "11221218ec3c4d3a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-70b46dfe26b81b5c", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/services/cpeInventoryService.js:1"}, "properties": {"repobilityId": "6e32d57359c0ba8b", "scanner": "scanner-primary", "fingerprint": "70b46dfe26b81b5c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-220ac1ae5613a7cb", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/pdfService.js:1"}, "properties": {"repobilityId": "217d23ac8ab11d02", "scanner": "scanner-primary", "fingerprint": "220ac1ae5613a7cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b46aa13b8be5177b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/pppoeDiagnosticsService.js:1"}, "properties": {"repobilityId": "3325ec64ff60633c", "scanner": "scanner-primary", "fingerprint": "b46aa13b8be5177b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c4cdf32b3d1a1aac", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/services/supportConversationService.js:6"}, "properties": {"repobilityId": "dfe99fdd59ee8890", "scanner": "scanner-primary", "fingerprint": "c4cdf32b3d1a1aac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4982461c7d8e21c3", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/services/geocodingService.js:1"}, "properties": {"repobilityId": "b545d37ac919fa24", "scanner": "scanner-primary", "fingerprint": "4982461c7d8e21c3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-be5e43088af9a220", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/rolloverService.js:3"}, "properties": {"repobilityId": "407e29628e21f19f", "scanner": "scanner-primary", "fingerprint": "be5e43088af9a220", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-95a9a9373d651562", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/configBackupService.js:1"}, "properties": {"repobilityId": "b73a00b42148e257", "scanner": "scanner-primary", "fingerprint": "95a9a9373d651562", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5cf0213c6a368a9d", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/phraseLibraryService.js:1"}, "properties": {"repobilityId": "01126858f494acfb", "scanner": "scanner-primary", "fingerprint": "5cf0213c6a368a9d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fb1bd6e62f017767", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/services/speedWindowService.js:1"}, "properties": {"repobilityId": "061c9e5cfe3047c9", "scanner": "scanner-primary", "fingerprint": "fb1bd6e62f017767", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-61a41d84cee452d3", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/services/fiberPlantService.js:1"}, "properties": {"repobilityId": "f9b45f57c47e43b1", "scanner": "scanner-primary", "fingerprint": "61a41d84cee452d3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9da43075a03e85b7", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/cacheService.js:1"}, "properties": {"repobilityId": "6a5201d65c89a55d", "scanner": "scanner-primary", "fingerprint": "9da43075a03e85b7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-323ca2875ecdd73d", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/supportBillingModule.js:1"}, "properties": {"repobilityId": "9f8fbf6832e659b3", "scanner": "scanner-primary", "fingerprint": "323ca2875ecdd73d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4a3049331e51b78d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/services/aiReplyService.js:1"}, "properties": {"repobilityId": "a8d05ef695072d41", "scanner": "scanner-primary", "fingerprint": "4a3049331e51b78d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b4e8459367a342e7", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/notificationHooks.js:1"}, "properties": {"repobilityId": "c7dd9b1faff2b9eb", "scanner": "scanner-primary", "fingerprint": "b4e8459367a342e7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-909fd104ac24cb35", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/services/ftthService.js:1"}, "properties": {"repobilityId": "04d8c31dea748fec", "scanner": "scanner-primary", "fingerprint": "909fd104ac24cb35", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-87651c7f615d7b1a", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/coverageZoneService.js:1"}, "properties": {"repobilityId": "aa0ffc3680360679", "scanner": "scanner-primary", "fingerprint": "87651c7f615d7b1a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-711087555a1f2214", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/notificationService.js:1"}, "properties": {"repobilityId": "78199d98e3f70cea", "scanner": "scanner-primary", "fingerprint": "711087555a1f2214", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f18b69b1ea96ff59", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/services/pollerEngine.js:1"}, "properties": {"repobilityId": "bfdf979ffec6dec2", "scanner": "scanner-primary", "fingerprint": "f18b69b1ea96ff59", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b9f4f972cb0a4041", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/nocAiService.js:1"}, "properties": {"repobilityId": "9aa554a69eca7134", "scanner": "scanner-primary", "fingerprint": "b9f4f972cb0a4041", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bcbc2bbbbeb39b43", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/services/scriptingService.js:6"}, "properties": {"repobilityId": "d466a69799a8077a", "scanner": "scanner-primary", "fingerprint": "bcbc2bbbbeb39b43", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ae80a445fce49d4a", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/retentionService.js:1"}, "properties": {"repobilityId": "7a96d003ea4cae53", "scanner": "scanner-primary", "fingerprint": "ae80a445fce49d4a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-322449805dc9588e", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/integrationService.js:4"}, "properties": {"repobilityId": "af1bc4f314427cad", "scanner": "scanner-primary", "fingerprint": "322449805dc9588e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a0894d88854c4bba", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/dataPackService.js:3"}, "properties": {"repobilityId": "18a35e0529d3fda9", "scanner": "scanner-primary", "fingerprint": "a0894d88854c4bba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-13b717ec3740798a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/services/emailTransport.js:1"}, "properties": {"repobilityId": "f1abfe748b354994", "scanner": "scanner-primary", "fingerprint": "13b717ec3740798a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d786756f91bbf40e", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/services/geoFenceService.js:1"}, "properties": {"repobilityId": "df71c0e4f5cd3c91", "scanner": "scanner-primary", "fingerprint": "d786756f91bbf40e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-577ffde903c47a74", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/services/smsTransport.js:1"}, "properties": {"repobilityId": "2897afe4d4b67011", "scanner": "scanner-primary", "fingerprint": "577ffde903c47a74", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5004a355032cf751", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/services/radiusLoginTimeService.js:1"}, "properties": {"repobilityId": "e27f7270fdcab24d", "scanner": "scanner-primary", "fingerprint": "5004a355032cf751", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f402dd5aa81c7017", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/services/paymentGatewayService.js:1"}, "properties": {"repobilityId": "aa66bb68a765cd1f", "scanner": "scanner-primary", "fingerprint": "f402dd5aa81c7017", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1e365d6e80c2f555", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/checkoutService.js:1"}, "properties": {"repobilityId": "6fa078c052a2892d", "scanner": "scanner-primary", "fingerprint": "1e365d6e80c2f555", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ff035be0df901046", "level": "none", "message": {"text": "Commented-code block (13 lines) in src/services/lifecycleService.js:1"}, "properties": {"repobilityId": "6c87ec7a0a33283a", "scanner": "scanner-primary", "fingerprint": "ff035be0df901046", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ca5171dbc77970cc", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/services/radiusAccountingService.js:1"}, "properties": {"repobilityId": "1c282f9b0fa1bd67", "scanner": "scanner-primary", "fingerprint": "ca5171dbc77970cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3bcd2bff960cee09", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/services/firerelayAgent.js:1"}, "properties": {"repobilityId": "e60e6dfdddd796b1", "scanner": "scanner-primary", "fingerprint": "3bcd2bff960cee09", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-26c1653652e7c2d8", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/snmpTrapReceiver.js:1"}, "properties": {"repobilityId": "b4edf58f50012bd3", "scanner": "scanner-primary", "fingerprint": "26c1653652e7c2d8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3192068ddd283107", "level": "none", "message": {"text": "Commented-code block (14 lines) in src/services/wirelessService.js:3"}, "properties": {"repobilityId": "cbc309062ad6d21a", "scanner": "scanner-primary", "fingerprint": "3192068ddd283107", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e10dfc93e9493677", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/services/llmProviderService.js:13"}, "properties": {"repobilityId": "57ee773d438cb2c7", "scanner": "scanner-primary", "fingerprint": "e10dfc93e9493677", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a0d79bb531f64f4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/services/llmProviderService.js:311"}, "properties": {"repobilityId": "e5c5ebe9fbbe1a17", "scanner": "scanner-primary", "fingerprint": "7a0d79bb531f64f4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-83a20ce76d92658f", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/supportContextService.js:1"}, "properties": {"repobilityId": "7fc54d69ce699d66", "scanner": "scanner-primary", "fingerprint": "83a20ce76d92658f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c4f828633dba4bcf", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/services/serviceHealthService.js:1"}, "properties": {"repobilityId": "b0c3d7b12f0ec9c0", "scanner": "scanner-primary", "fingerprint": "c4f828633dba4bcf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f2fa58f55bdc72b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/services/profecoService.js:1"}, "properties": {"repobilityId": "1b2e2cccac9ee1f4", "scanner": "scanner-primary", "fingerprint": "0f2fa58f55bdc72b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1420f962fc816aa3", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/services/webhookService.js:1"}, "properties": {"repobilityId": "11b137941ea15a7a", "scanner": "scanner-primary", "fingerprint": "1420f962fc816aa3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-79bbd118bcb249cc", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/services/vectorStoreService.js:1"}, "properties": {"repobilityId": "e187ee15f5a1c708", "scanner": "scanner-primary", "fingerprint": "79bbd118bcb249cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a59beb281e8ddd57", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/services/scheduledReportService.js:1"}, "properties": {"repobilityId": "9bdd043e22536f10", "scanner": "scanner-primary", "fingerprint": "a59beb281e8ddd57", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2ee0a60df3552fc6", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/services/subscriberProvisioningService.js:1"}, "properties": {"repobilityId": "d14b54873428b221", "scanner": "scanner-primary", "fingerprint": "2ee0a60df3552fc6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-221a99e65d4022e2", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/views/emailTemplates.js:1"}, "properties": {"repobilityId": "4f81eb3dced129ff", "scanner": "scanner-primary", "fingerprint": "221a99e65d4022e2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-702848574a0ffcc2", "level": "none", "message": {"text": "Commented-code block (5 lines) in e2e/playwright.config.ts:21"}, "properties": {"repobilityId": "89c5a6f0589e0ea8", "scanner": "scanner-primary", "fingerprint": "702848574a0ffcc2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c604ab46f99f65b1", "level": "none", "message": {"text": "Commented-code block (7 lines) in e2e/tests/smoke.spec.ts:88"}, "properties": {"repobilityId": "f0d8bf3e4e4e4bfd", "scanner": "scanner-primary", "fingerprint": "c604ab46f99f65b1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-500e3b7d9fe8faf0", "level": "note", "message": {"text": "76 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "12aca37ef2a6fb6e", "scanner": "scanner-primary", "fingerprint": "500e3b7d9fe8faf0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-8b73535fd10c0968", "level": "warning", "message": {"text": "Frontend route `/portal/invoices/:id` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "742ee48fb9505c71", "scanner": "scanner-primary", "fingerprint": "8b73535fd10c0968", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-4ab6f51f6ef62dce", "level": "warning", "message": {"text": "Frontend route `/portal/tickets/:id` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "9b55d3d8d3d7f558", "scanner": "scanner-primary", "fingerprint": "4ab6f51f6ef62dce", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-f81e849e739501d5", "level": "warning", "message": {"text": "Frontend route `/portal/chat` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "58c71679ee5829c9", "scanner": "scanner-primary", "fingerprint": "f81e849e739501d5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-3bf26683ecc5cba7", "level": "warning", "message": {"text": "Frontend route `clients` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "334da59720962442", "scanner": "scanner-primary", "fingerprint": "3bf26683ecc5cba7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-35180e3e2c4f4d04", "level": "warning", "message": {"text": "Frontend route `clients/:id` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "a37600f48eff3553", "scanner": "scanner-primary", "fingerprint": "35180e3e2c4f4d04", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-3154a56e1ca0217c", "level": "warning", "message": {"text": "Frontend route `client-groups` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "e139621e2e9d5d78", "scanner": "scanner-primary", "fingerprint": "3154a56e1ca0217c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-38f60a7a21d047ba", "level": "warning", "message": {"text": "Frontend route `leads` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "234a084298f28b06", "scanner": "scanner-primary", "fingerprint": "38f60a7a21d047ba", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-498291893f89d75a", "level": "warning", "message": {"text": "Frontend route `service-orders` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "13c24c57cfed1fe8", "scanner": "scanner-primary", "fingerprint": "498291893f89d75a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-e75060ec13abb8b3", "level": "warning", "message": {"text": "Frontend route `contracts` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "3ea744281fd2d422", "scanner": "scanner-primary", "fingerprint": "e75060ec13abb8b3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-776826763d82793c", "level": "warning", "message": {"text": "Frontend route `invoices` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "47a4611ad3c98842", "scanner": "scanner-primary", "fingerprint": "776826763d82793c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-f5e9ebb75de21462", "level": "warning", "message": {"text": "Frontend route `invoices/:id` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "aca7f1a14cd61245", "scanner": "scanner-primary", "fingerprint": "f5e9ebb75de21462", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-16e6312bb761d5b9", "level": "warning", "message": {"text": "Frontend route `payments` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "d5d34750e7cef40a", "scanner": "scanner-primary", "fingerprint": "16e6312bb761d5b9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-3383f9fe04863443", "level": "warning", "message": {"text": "Frontend route `tickets` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "fe7142afd4ac169e", "scanner": "scanner-primary", "fingerprint": "3383f9fe04863443", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-d3e7d2ee6aacf7d9", "level": "warning", "message": {"text": "Frontend route `tickets/:id` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "219e5e4d7dd5d6f5", "scanner": "scanner-primary", "fingerprint": "d3e7d2ee6aacf7d9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-5290def36b1013d8", "level": "warning", "message": {"text": "Frontend route `communication-campaigns` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "65c434296ae05566", "scanner": "scanner-primary", "fingerprint": "5290def36b1013d8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-a6d00a3519180116", "level": "warning", "message": {"text": "Frontend route `follow-up-reminders` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "0737f9bfa9e341f4", "scanner": "scanner-primary", "fingerprint": "a6d00a3519180116", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-e1fa29b3351e51a3", "level": "warning", "message": {"text": "Frontend route `satisfaction-surveys` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "55adef2274254d80", "scanner": "scanner-primary", "fingerprint": "e1fa29b3351e51a3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-d4a4b6603476fa7a", "level": "warning", "message": {"text": "Frontend route `escalations` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "bb9af81307eb8eaa", "scanner": "scanner-primary", "fingerprint": "d4a4b6603476fa7a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-5f5afdf2712c9f84", "level": "warning", "message": {"text": "Frontend route `devices` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "3550c7952677fca8", "scanner": "scanner-primary", "fingerprint": "5f5afdf2712c9f84", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-0978a4b4c1ddd273", "level": "warning", "message": {"text": "Frontend route `inventory` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "d477dbf87678b9cc", "scanner": "scanner-primary", "fingerprint": "0978a4b4c1ddd273", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-dc5e309e7980ad4c", "level": "warning", "message": {"text": "Frontend route `warehouses` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "6be0b2634dea5f1c", "scanner": "scanner-primary", "fingerprint": "dc5e309e7980ad4c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-d85eac3d4bffd623", "level": "warning", "message": {"text": "Frontend route `radius-sessions` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "4c398be811c3d965", "scanner": "scanner-primary", "fingerprint": "d85eac3d4bffd623", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-8e527ba4f70c4531", "level": "warning", "message": {"text": "Frontend route `subscriber-certificates` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "2d20ac8411639b1c", "scanner": "scanner-primary", "fingerprint": "8e527ba4f70c4531", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-b698252b35d5979f", "level": "warning", "message": {"text": "Frontend route `session-accounting` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "a0d81a311c4f7ba3", "scanner": "scanner-primary", "fingerprint": "b698252b35d5979f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-5642bb114c279bdb", "level": "warning", "message": {"text": "Frontend route `snmp-metrics` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "de3af9b66abe5b8f", "scanner": "scanner-primary", "fingerprint": "5642bb114c279bdb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-af4060cb09a59dab", "level": "warning", "message": {"text": "Frontend route `snmp-traps` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "fca0b461986738ce", "scanner": "scanner-primary", "fingerprint": "af4060cb09a59dab", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-f39e68c2bfbdc623", "level": "warning", "message": {"text": "Frontend route `coverage-zones` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "ab43adf81273e07c", "scanner": "scanner-primary", "fingerprint": "f39e68c2bfbdc623", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-6cb5c06a67b20405", "level": "warning", "message": {"text": "Frontend route `sites` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "1d101f1d70c1bc2c", "scanner": "scanner-primary", "fingerprint": "6cb5c06a67b20405", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-c3c3bab3d2fdced2", "level": "warning", "message": {"text": "Frontend route `nas` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "d4069e46f49fbb14", "scanner": "scanner-primary", "fingerprint": "c3c3bab3d2fdced2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-0e9cd080116bbeda", "level": "warning", "message": {"text": "Frontend route `mac-move-events` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "8793abfd96df790c", "scanner": "scanner-primary", "fingerprint": "0e9cd080116bbeda", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-d2d4c9b7d13fd7e2", "level": "warning", "message": {"text": "Frontend route `pppoe-service-profiles` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "7f1ae17afcd35c7f", "scanner": "scanner-primary", "fingerprint": "d2d4c9b7d13fd7e2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-416863caa87cea47", "level": "warning", "message": {"text": "Frontend route `pppoe-diagnostics` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "3204b37fb0cfc68c", "scanner": "scanner-primary", "fingerprint": "416863caa87cea47", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-045eaa3e0c3506d5", "level": "warning", "message": {"text": "Frontend route `ip-pools` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "eede373e0f01d98d", "scanner": "scanner-primary", "fingerprint": "045eaa3e0c3506d5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-9a4cc3745364df8b", "level": "warning", "message": {"text": "Frontend route `ip-assignments` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "a342e0a6aa99798d", "scanner": "scanner-primary", "fingerprint": "9a4cc3745364df8b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-ef9430d3dbdc3424", "level": "warning", "message": {"text": "Frontend route `vlans` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "b3f7df0635cc279b", "scanner": "scanner-primary", "fingerprint": "ef9430d3dbdc3424", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-82b16f61eadc4286", "level": "warning", "message": {"text": "Frontend route `service-areas` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "9d677261d4e89dc4", "scanner": "scanner-primary", "fingerprint": "82b16f61eadc4286", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-cadc89ee8c9ff537", "level": "warning", "message": {"text": "Frontend route `outages` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "28fac20b5b95b763", "scanner": "scanner-primary", "fingerprint": "cadc89ee8c9ff537", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-0444ae7dffbad1fa", "level": "warning", "message": {"text": "Frontend route `speed-tests` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "c71682d2919a709e", "scanner": "scanner-primary", "fingerprint": "0444ae7dffbad1fa", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-31f287e11c07e82a", "level": "warning", "message": {"text": "Frontend route `connection-logs` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "c7fc8697aa837f4b", "scanner": "scanner-primary", "fingerprint": "31f287e11c07e82a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-7954e9374bb78df9", "level": "warning", "message": {"text": "Frontend route `network-health` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "1b7d6296d277f3d8", "scanner": "scanner-primary", "fingerprint": "7954e9374bb78df9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-beb476a0a24c91e7", "level": "warning", "message": {"text": "Frontend route `snmp-profiles` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "7e614f6680de1c99", "scanner": "scanner-primary", "fingerprint": "beb476a0a24c91e7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-c9263d2c75f443bf", "level": "warning", "message": {"text": "Frontend route `device-config-backups` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "84e799938f8a1865", "scanner": "scanner-primary", "fingerprint": "c9263d2c75f443bf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-c59460e827455bb4", "level": "warning", "message": {"text": "Frontend route `config-templates` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "434af08f12073fdb", "scanner": "scanner-primary", "fingerprint": "c59460e827455bb4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-02151cff5f08af6e", "level": "warning", "message": {"text": "Frontend route `config-backup-schedules` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "e0ed2f96ab388c7e", "scanner": "scanner-primary", "fingerprint": "02151cff5f08af6e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-e3ea08f48952de68", "level": "warning", "message": {"text": "Frontend route `config-compliance-rules` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "bd40b137438d32be", "scanner": "scanner-primary", "fingerprint": "e3ea08f48952de68", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-8e5daa8912b08897", "level": "warning", "message": {"text": "Frontend route `suspension-rules` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "de3b5d664825fa8e", "scanner": "scanner-primary", "fingerprint": "8e5daa8912b08897", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-69bd92332e4e98a5", "level": "warning", "message": {"text": "Frontend route `dhcp-servers` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "1deaf00e835d1478", "scanner": "scanner-primary", "fingerprint": "69bd92332e4e98a5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-b90b4012b92be975", "level": "warning", "message": {"text": "Frontend route `nat-management` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "96b7746135270352", "scanner": "scanner-primary", "fingerprint": "b90b4012b92be975", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-96863d31a40ab58b", "level": "warning", "message": {"text": "Frontend route `ptr-records` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "23bf4d2f721728a0", "scanner": "scanner-primary", "fingerprint": "96863d31a40ab58b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-d9b62312697ea436", "level": "warning", "message": {"text": "Frontend route `ipv6-management` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "1e963997ac53baf6", "scanner": "scanner-primary", "fingerprint": "d9b62312697ea436", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-e154068ab42d52c3", "level": "warning", "message": {"text": "Frontend route `transition-mechanisms` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "40540b1ccd086d11", "scanner": "scanner-primary", "fingerprint": "e154068ab42d52c3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-87212884d940f866", "level": "warning", "message": {"text": "Frontend route `device-groups` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "b4691a04564edc33", "scanner": "scanner-primary", "fingerprint": "87212884d940f866", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-734dd0c62d8e88d4", "level": "warning", "message": {"text": "Frontend route `discovery-scans` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "e56d5e9ef45adb7c", "scanner": "scanner-primary", "fingerprint": "734dd0c62d8e88d4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-00c13a8d15425204", "level": "warning", "message": {"text": "Frontend route `device-import` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "9fbc845dd33bf5ac", "scanner": "scanner-primary", "fingerprint": "00c13a8d15425204", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-5570f1f096a24735", "level": "warning", "message": {"text": "Frontend route `trap-forwarding-rules` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "2e9cf3a6793af409", "scanner": "scanner-primary", "fingerprint": "5570f1f096a24735", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-742d62c9a8a16136", "level": "warning", "message": {"text": "Frontend route `poller-nodes` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "644a9665d54efc37", "scanner": "scanner-primary", "fingerprint": "742d62c9a8a16136", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-ff50524aa7aec0f3", "level": "warning", "message": {"text": "Frontend route `device-polling-configs` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "6942c9d07656d098", "scanner": "scanner-primary", "fingerprint": "ff50524aa7aec0f3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-33630a96740a4756", "level": "warning", "message": {"text": "Frontend route `poller-performance` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "6176788ef7f48416", "scanner": "scanner-primary", "fingerprint": "33630a96740a4756", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-8de047250438ffdf", "level": "warning", "message": {"text": "Frontend route `alert-escalation-chains` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "018b89894a93baac", "scanner": "scanner-primary", "fingerprint": "8de047250438ffdf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-3f3cd094c9d908a6", "level": "warning", "message": {"text": "Frontend route `maintenance-windows` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "f8b7d1810a233d01", "scanner": "scanner-primary", "fingerprint": "3f3cd094c9d908a6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-e3cc03616d57a170", "level": "warning", "message": {"text": "Frontend route `alert-channels` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "23a5ec2ebb10bb77", "scanner": "scanner-primary", "fingerprint": "e3cc03616d57a170", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-d8bb32d48f14f528", "level": "warning", "message": {"text": "Frontend route `alert-suppression-rules` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "3db34f5686c463c3", "scanner": "scanner-primary", "fingerprint": "d8bb32d48f14f528", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-fe32bc2069e2b1e2", "level": "warning", "message": {"text": "Frontend route `olt-management` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "63bf4f212f46170e", "scanner": "scanner-primary", "fingerprint": "fe32bc2069e2b1e2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-d601c15d5db8b7c5", "level": "warning", "message": {"text": "Frontend route `onu-management` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "9b19f7cc8a5e69ce", "scanner": "scanner-primary", "fingerprint": "d601c15d5db8b7c5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-28d2b8081c4d571b", "level": "warning", "message": {"text": "Frontend route `pon-port-management` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "847845a9168836a1", "scanner": "scanner-primary", "fingerprint": "28d2b8081c4d571b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-2bbc6856b57e184a", "level": "warning", "message": {"text": "Frontend route `fiber-plant-management` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "4b1fca4cfa1f0d5e", "scanner": "scanner-primary", "fingerprint": "2bbc6856b57e184a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-6d1ee2d8a179d868", "level": "warning", "message": {"text": "Frontend route `cpe-management` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "d480ac5ad1d0d9c4", "scanner": "scanner-primary", "fingerprint": "6d1ee2d8a179d868", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-0944ae2deafa5535", "level": "warning", "message": {"text": "Frontend route `cpe-profiles` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "998d91b541e35763", "scanner": "scanner-primary", "fingerprint": "0944ae2deafa5535", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-99f1de24454dac23", "level": "warning", "message": {"text": "Frontend route `cpe-diagnostics` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "a4a0d2d3e8d36858", "scanner": "scanner-primary", "fingerprint": "99f1de24454dac23", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-b1fe3386ecefc084", "level": "warning", "message": {"text": "Frontend route `cpe-inventory` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "962a2bd690839c72", "scanner": "scanner-primary", "fingerprint": "b1fe3386ecefc084", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-8d33e590bcf7d8d9", "level": "warning", "message": {"text": "Frontend route `wireless` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "ab119911177b2133", "scanner": "scanner-primary", "fingerprint": "8d33e590bcf7d8d9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-1b438195e24743bd", "level": "warning", "message": {"text": "Frontend route `wireless-metrics` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "f55e9619235cb5c2", "scanner": "scanner-primary", "fingerprint": "1b438195e24743bd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-1a9b3d63be447c34", "level": "warning", "message": {"text": "Frontend route `qos-bandwidth` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "873770b71d7839b0", "scanner": "scanner-primary", "fingerprint": "1a9b3d63be447c34", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-a858a4a1d330e1dd", "level": "warning", "message": {"text": "Frontend route `noc-dashboard` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "9736626fcfd0a239", "scanner": "scanner-primary", "fingerprint": "a858a4a1d330e1dd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-51f4a660eb5bf577", "level": "warning", "message": {"text": "Frontend route `work-orders` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "d83026bf342f4e39", "scanner": "scanner-primary", "fingerprint": "51f4a660eb5bf577", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-ead800356df14931", "level": "warning", "message": {"text": "Frontend route `topology-map` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "c47cb8051fbef016", "scanner": "scanner-primary", "fingerprint": "ead800356df14931", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-74edf17d727203f7", "level": "warning", "message": {"text": "Frontend route `inventory-management` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "cf2a9f15d3839466", "scanner": "scanner-primary", "fingerprint": "74edf17d727203f7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-f83663bc4ee784c1", "level": "warning", "message": {"text": "Frontend route `cfdi` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "18b7e4e17e6e0f11", "scanner": "scanner-primary", "fingerprint": "f83663bc4ee784c1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-7571d57feab36262", "level": "warning", "message": {"text": "Frontend route `plans` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "263eac00eb474f5b", "scanner": "scanner-primary", "fingerprint": "7571d57feab36262", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-9182a3f2537c27f1", "level": "warning", "message": {"text": "Frontend route `quotes` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "a383433a346dac2a", "scanner": "scanner-primary", "fingerprint": "9182a3f2537c27f1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-6c119043e9ce7ba8", "level": "warning", "message": {"text": "Frontend route `credit-notes` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "54f56a7ac4c79078", "scanner": "scanner-primary", "fingerprint": "6c119043e9ce7ba8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-cd8290e1122ff48d", "level": "warning", "message": {"text": "Frontend route `expenses` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "44d0d3eaf2a731c3", "scanner": "scanner-primary", "fingerprint": "cd8290e1122ff48d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-3ea7375a596c54cd", "level": "warning", "message": {"text": "Frontend route `promotions` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "561fd9c8bb70da47", "scanner": "scanner-primary", "fingerprint": "3ea7375a596c54cd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-3aea542b1a5ce4b4", "level": "warning", "message": {"text": "Frontend route `tax-rules` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "c73fdc16f953571e", "scanner": "scanner-primary", "fingerprint": "3aea542b1a5ce4b4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-3f5494a66ab336df", "level": "warning", "message": {"text": "Frontend route `tax-rates` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "c5839a71a1c6256a", "scanner": "scanner-primary", "fingerprint": "3f5494a66ab336df", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-01f1605689f364ba", "level": "warning", "message": {"text": "Frontend route `payment-gateways` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "ea295402eb9c11c7", "scanner": "scanner-primary", "fingerprint": "01f1605689f364ba", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-c6c3170afb7cb189", "level": "warning", "message": {"text": "Frontend route `payment-transactions` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "0815ec07a208c4e3", "scanner": "scanner-primary", "fingerprint": "c6c3170afb7cb189", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-7c1e4b36415b8985", "level": "warning", "message": {"text": "Frontend route `recurring-payment-profiles` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "eff8e0faa5cef2d3", "scanner": "scanner-primary", "fingerprint": "7c1e4b36415b8985", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-0f8816657509afdd", "level": "warning", "message": {"text": "Frontend route `payment-plans` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "54a59548bf5a4579", "scanner": "scanner-primary", "fingerprint": "0f8816657509afdd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-234269a9201124c4", "level": "warning", "message": {"text": "Frontend route `cash-reconciliation` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "04b01442003b9962", "scanner": "scanner-primary", "fingerprint": "234269a9201124c4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-7a2a6406e921b565", "level": "warning", "message": {"text": "Frontend route `refund-requests` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "77e9a8bba5b07329", "scanner": "scanner-primary", "fingerprint": "7a2a6406e921b565", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-31b79ad236c16e68", "level": "warning", "message": {"text": "Frontend route `billing-disputes` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "19c44c76798e6a67", "scanner": "scanner-primary", "fingerprint": "31b79ad236c16e68", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-f9e6417efa21a26a", "level": "warning", "message": {"text": "Frontend route `chargebacks` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "22412e02555d7fe1", "scanner": "scanner-primary", "fingerprint": "f9e6417efa21a26a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-7358f592e46a130c", "level": "warning", "message": {"text": "Frontend route `billing-adjustments` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "84956ce5f69800a5", "scanner": "scanner-primary", "fingerprint": "7358f592e46a130c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-c31e7565e2b200a8", "level": "warning", "message": {"text": "Frontend route `winback-campaigns` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "882cc9fcea990d80", "scanner": "scanner-primary", "fingerprint": "c31e7565e2b200a8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-72014cbe5ef366ac", "level": "warning", "message": {"text": "Frontend route `churn-analytics` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "84e5ea67d39b07af", "scanner": "scanner-primary", "fingerprint": "72014cbe5ef366ac", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-f3ca0629bd3ddf0c", "level": "warning", "message": {"text": "Frontend route `csd-certificates` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "bd38865a55a0ea07", "scanner": "scanner-primary", "fingerprint": "f3ca0629bd3ddf0c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-00118cb2b569d37b", "level": "warning", "message": {"text": "Frontend route `pac-providers` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "9f79c032e575a966", "scanner": "scanner-primary", "fingerprint": "00118cb2b569d37b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-cc3e1ce19b23d745", "level": "warning", "message": {"text": "Frontend route `sat-catalogs` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "233f5cfcff2b324a", "scanner": "scanner-primary", "fingerprint": "cc3e1ce19b23d745", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-e1767252936589ae", "level": "warning", "message": {"text": "Frontend route `regulatory-filings` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "95dacc8d9d3c4d14", "scanner": "scanner-primary", "fingerprint": "e1767252936589ae", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-c9ee6d44b91a81f0", "level": "warning", "message": {"text": "Frontend route `concession-titles` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "002824c44b06377c", "scanner": "scanner-primary", "fingerprint": "c9ee6d44b91a81f0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-60295f305a646056", "level": "warning", "message": {"text": "Frontend route `ift-statistical-reports` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "cad2e70968110324", "scanner": "scanner-primary", "fingerprint": "60295f305a646056", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-0e05ee1f5b5ef54d", "level": "warning", "message": {"text": "Frontend route `facturas-publicas` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "aa3247bc303e7419", "scanner": "scanner-primary", "fingerprint": "0e05ee1f5b5ef54d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-93203824d5f95cc8", "level": "warning", "message": {"text": "Frontend route `reports` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "6932f03f64986674", "scanner": "scanner-primary", "fingerprint": "93203824d5f95cc8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-2a3c81ca47eb60bb", "level": "warning", "message": {"text": "Frontend route `analytics-dashboard` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "f3d377ae1911fda4", "scanner": "scanner-primary", "fingerprint": "2a3c81ca47eb60bb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-5dc39904c41112f4", "level": "warning", "message": {"text": "Frontend route `tax-reports` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "67e961d7859a349c", "scanner": "scanner-primary", "fingerprint": "5dc39904c41112f4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-a508661a1914a5b4", "level": "warning", "message": {"text": "Frontend route `invoice-settings` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "0d2035b07e3ecb48", "scanner": "scanner-primary", "fingerprint": "a508661a1914a5b4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-30162bd8e53c063f", "level": "warning", "message": {"text": "Frontend route `late-fee-rules` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "6c21fe715bf39a95", "scanner": "scanner-primary", "fingerprint": "30162bd8e53c063f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-dc192d149a4dca18", "level": "warning", "message": {"text": "Frontend route `payment-reminder-settings` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "487c21cc0c945d1f", "scanner": "scanner-primary", "fingerprint": "dc192d149a4dca18", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-afa282e0be44cdb7", "level": "warning", "message": {"text": "Frontend route `profeco-complaints` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "5e447b7070c686ff", "scanner": "scanner-primary", "fingerprint": "afa282e0be44cdb7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-d0830c6a1b2623d8", "level": "warning", "message": {"text": "Frontend route `regulatory-compliance` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "2fccd5bb6e6d26ba", "scanner": "scanner-primary", "fingerprint": "d0830c6a1b2623d8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-ad96af978bb7b1be", "level": "warning", "message": {"text": "Frontend route `users` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "98134b48586e30c9", "scanner": "scanner-primary", "fingerprint": "ad96af978bb7b1be", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-06999788457527a0", "level": "warning", "message": {"text": "Frontend route `organizations` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "3c8e960bd93db085", "scanner": "scanner-primary", "fingerprint": "06999788457527a0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-948805398b02ce68", "level": "warning", "message": {"text": "Frontend route `dsar` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "c1e3fc94fdc787d2", "scanner": "scanner-primary", "fingerprint": "948805398b02ce68", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-c16415592327eaae", "level": "warning", "message": {"text": "Frontend route `dr-drill` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "e146ed70450d4377", "scanner": "scanner-primary", "fingerprint": "c16415592327eaae", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-39e473afd6c2704f", "level": "warning", "message": {"text": "Frontend route `sla-definitions` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "55c25491c6722fe8", "scanner": "scanner-primary", "fingerprint": "39e473afd6c2704f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-862ca3874c5e2d76", "level": "warning", "message": {"text": "Frontend route `roles` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "fa83494c17f82e0d", "scanner": "scanner-primary", "fingerprint": "862ca3874c5e2d76", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-94f274006eb4149f", "level": "warning", "message": {"text": "Frontend route `api-tokens` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "9cb3ebb4ee6b54fe", "scanner": "scanner-primary", "fingerprint": "94f274006eb4149f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-d5734bfae5d7eb1c", "level": "warning", "message": {"text": "Frontend route `webhooks` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "f65f02d85f050b51", "scanner": "scanner-primary", "fingerprint": "d5734bfae5d7eb1c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-abe154911f047e0b", "level": "warning", "message": {"text": "Frontend route `audit-logs` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "b3bb4aaf23efcee3", "scanner": "scanner-primary", "fingerprint": "abe154911f047e0b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-cc2196a6b93ec2ba", "level": "warning", "message": {"text": "Frontend route `scheduled-tasks` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "16f94dfbea995aca", "scanner": "scanner-primary", "fingerprint": "cc2196a6b93ec2ba", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-f666933b76ae5671", "level": "warning", "message": {"text": "Frontend route `jobs` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "9885c156a40d0e60", "scanner": "scanner-primary", "fingerprint": "f666933b76ae5671", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-ad29b2f33f108eb7", "level": "warning", "message": {"text": "Frontend route `queue-stats` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "0f9746b360936ddf", "scanner": "scanner-primary", "fingerprint": "ad29b2f33f108eb7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-17bacb17f6efb788", "level": "warning", "message": {"text": "Frontend route `settings` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "7a6f6cf42324831f", "scanner": "scanner-primary", "fingerprint": "17bacb17f6efb788", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-f68a73772913b669", "level": "warning", "message": {"text": "Frontend route `message-templates` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "79df5ccc3f16b1f0", "scanner": "scanner-primary", "fingerprint": "f68a73772913b669", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-f741c84e7cd68739", "level": "warning", "message": {"text": "Frontend route `ai-assistant` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "33980458677e0867", "scanner": "scanner-primary", "fingerprint": "f741c84e7cd68739", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-0ee1868071ca4a3b", "level": "warning", "message": {"text": "Frontend route `security-access-control` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "b62d6d8039ffbc97", "scanner": "scanner-primary", "fingerprint": "0ee1868071ca4a3b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-1202f959848b1fde", "level": "warning", "message": {"text": "Frontend route `automation` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "41a4d220232a03b0", "scanner": "scanner-primary", "fingerprint": "1202f959848b1fde", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-70e3fd8c06c9e0d9", "level": "warning", "message": {"text": "Frontend route `resellers` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "d3c9b86c0a8bea06", "scanner": "scanner-primary", "fingerprint": "70e3fd8c06c9e0d9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-8ecd9ea0c6f61d92", "level": "warning", "message": {"text": "Frontend route `integrations` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "3852c090c2c5d4a3", "scanner": "scanner-primary", "fingerprint": "8ecd9ea0c6f61d92", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-2b13b4902f29e7e2", "level": "warning", "message": {"text": "Frontend route `ai-support` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "2995e7a309f390a4", "scanner": "scanner-primary", "fingerprint": "2b13b4902f29e7e2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-58771ad73dc92527", "level": "warning", "message": {"text": "Frontend route `404` has no Link/navigate to it \u2014 frontend/src/App.tsx"}, "properties": {"repobilityId": "afe7b026dcc38356", "scanner": "scanner-primary", "fingerprint": "58771ad73dc92527", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-86468e3b1694b932", "level": "warning", "message": {"text": "Frontend route `/protected` has no Link/navigate to it \u2014 frontend/src/auth/__tests__/PrivateRoute.test.tsx"}, "properties": {"repobilityId": "fe1fa645fe8bc90c", "scanner": "scanner-primary", "fingerprint": "86468e3b1694b932", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-29bb490f102ccf55", "level": "warning", "message": {"text": "Frontend route `/clients/:id` has no Link/navigate to it \u2014 frontend/src/pages/__tests__/ClientDetail.test.tsx"}, "properties": {"repobilityId": "91733c2597727a15", "scanner": "scanner-primary", "fingerprint": "29bb490f102ccf55", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-1de71fc3a3f9627e", "level": "warning", "message": {"text": "Frontend route `/tickets/:id` has no Link/navigate to it \u2014 frontend/src/pages/__tests__/aiSuggestedReply.test.tsx"}, "properties": {"repobilityId": "0555d267f50b735b", "scanner": "scanner-primary", "fingerprint": "1de71fc3a3f9627e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-c778fd256e3eab06", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/auth/me (frontend/src/auth/AuthContext.tsx:92)"}, "properties": {"repobilityId": "944e9e884a89f1b2", "scanner": "scanner-primary", "fingerprint": "c778fd256e3eab06", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-879629d82a568d7c", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/auth/refresh (frontend/src/auth/AuthContext.tsx:127)"}, "properties": {"repobilityId": "6c6a6acdfb9a4056", "scanner": "scanner-primary", "fingerprint": "879629d82a568d7c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-178bbb560983ed0b", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/auth/login (frontend/src/auth/AuthContext.tsx:157)"}, "properties": {"repobilityId": "58ab8fad23c66039", "scanner": "scanner-primary", "fingerprint": "178bbb560983ed0b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-888bfb1e37055079", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/auth/logout (frontend/src/auth/AuthContext.tsx:186)"}, "properties": {"repobilityId": "38f10d9c1d3d6b39", "scanner": "scanner-primary", "fingerprint": "888bfb1e37055079", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-01510fe8cd7cbfe1", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/auth/switch-organization (frontend/src/auth/AuthContext.tsx:210)"}, "properties": {"repobilityId": "dc53a6c6a3f76113", "scanner": "scanner-primary", "fingerprint": "01510fe8cd7cbfe1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-67a8899157f1e46f", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/portal/auth/me (frontend/src/auth/PortalAuthContext.tsx:87)"}, "properties": {"repobilityId": "3ea73078c23be67c", "scanner": "scanner-primary", "fingerprint": "67a8899157f1e46f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-fdd85c5cb442b840", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/portal/auth/refresh (frontend/src/auth/PortalAuthContext.tsx:118)"}, "properties": {"repobilityId": "84d0b5a8c3a757d0", "scanner": "scanner-primary", "fingerprint": "fdd85c5cb442b840", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f10a61ebe05a018c", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/portal/auth/login (frontend/src/auth/PortalAuthContext.tsx:142)"}, "properties": {"repobilityId": "3613065a2659bb23", "scanner": "scanner-primary", "fingerprint": "f10a61ebe05a018c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2b1eb1fb4839a9c7", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/portal/auth/logout (frontend/src/auth/PortalAuthContext.tsx:163)"}, "properties": {"repobilityId": "51125ae6ce8d16cd", "scanner": "scanner-primary", "fingerprint": "2b1eb1fb4839a9c7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-e619e5998f76eda6", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/auth/refresh (frontend/src/api/client.ts:44)"}, "properties": {"repobilityId": "6495a6dbe3c7ee3f", "scanner": "scanner-primary", "fingerprint": "e619e5998f76eda6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-94ecc4156c158c70", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1${path} (frontend/src/pages/SecurityAccessControlPage.tsx:144)"}, "properties": {"repobilityId": "05f4e0d8741ff763", "scanner": "scanner-primary", "fingerprint": "94ecc4156c158c70", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-594411eee7dba392", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1${path} (frontend/src/pages/RegulatoryCompliancePage.tsx:99)"}, "properties": {"repobilityId": "3a9864b5d28d40ea", "scanner": "scanner-primary", "fingerprint": "594411eee7dba392", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-eb7f3895cb2ad802", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/work-orders (frontend/src/pages/WorkOrders.tsx:104)"}, "properties": {"repobilityId": "fbe33f6cc4b32480", "scanner": "scanner-primary", "fingerprint": "eb7f3895cb2ad802", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-038084f6f6fa22bb", "level": "error", "message": {"text": "Dangling fetch: PATCH /api/v1/work-orders/${id} (frontend/src/pages/WorkOrders.tsx:115)"}, "properties": {"repobilityId": "965465606d2b7579", "scanner": "scanner-primary", "fingerprint": "038084f6f6fa22bb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-10f72b35986a1ca8", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/work-orders/${workOrderId}/materials (frontend/src/pages/WorkOrders.tsx:132)"}, "properties": {"repobilityId": "01412d477115c96c", "scanner": "scanner-primary", "fingerprint": "10f72b35986a1ca8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4eaf165fa591d5d2", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/v1/work-orders/${workOrderId}/materials/${materialId} (frontend/src/pages/WorkOrders.tsx:141)"}, "properties": {"repobilityId": "df62337912e6dfcb", "scanner": "scanner-primary", "fingerprint": "4eaf165fa591d5d2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-16ef47de38b4d21a", "level": "error", "message": {"text": "Dangling fetch: GET /api${path} (frontend/src/pages/AutomationPage.tsx:122)"}, "properties": {"repobilityId": "680daf4948c1b311", "scanner": "scanner-primary", "fingerprint": "16ef47de38b4d21a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-6af2580018106d8c", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/billing-disputes/${disputeId}/evidence (frontend/src/pages/BillingDisputeList.tsx:280)"}, "properties": {"repobilityId": "071c857fe7fdc825", "scanner": "scanner-primary", "fingerprint": "6af2580018106d8c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bfeca4cfcf0317cd", "level": "error", "message": {"text": "Dangling fetch: POST /api/import/devices/upload (frontend/src/pages/DeviceImport.tsx:54)"}, "properties": {"repobilityId": "93c42a6ba40e090d", "scanner": "scanner-primary", "fingerprint": "bfeca4cfcf0317cd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-4ddc9aab0144a588", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/clients/${clientId}/documents (frontend/src/pages/ClientProfileTabs.tsx:372)"}, "properties": {"repobilityId": "6f50e3d2107b3bc3", "scanner": "scanner-primary", "fingerprint": "4ddc9aab0144a588", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-439434ab2e0defc7", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/clients/${clientId}/documents/${doc.id}/download (frontend/src/pages/ClientProfileTabs.tsx:396)"}, "properties": {"repobilityId": "ef91903103a565aa", "scanner": "scanner-primary", "fingerprint": "439434ab2e0defc7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2e9b95641f535dea", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1${path} (frontend/src/pages/AnalyticsDashboard.tsx:65)"}, "properties": {"repobilityId": "2accc01d26d43116", "scanner": "scanner-primary", "fingerprint": "2e9b95641f535dea", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-0d6877d7f72cb104", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1/snmp-traps?${params} (frontend/src/pages/SnmpTraps.tsx:95)"}, "properties": {"repobilityId": "ec225d1aed42bf40", "scanner": "scanner-primary", "fingerprint": "0d6877d7f72cb104", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-585bb45e19aac2d0", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/snmp-traps/${id}/acknowledge (frontend/src/pages/SnmpTraps.tsx:101)"}, "properties": {"repobilityId": "f23d1faef5cc6201", "scanner": "scanner-primary", "fingerprint": "585bb45e19aac2d0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-37577d65b02e405e", "level": "error", "message": {"text": "Dangling fetch: POST /api/v1/snmp-traps/${id}/clear (frontend/src/pages/SnmpTraps.tsx:109)"}, "properties": {"repobilityId": "46dc6f11c7f415ad", "scanner": "scanner-primary", "fingerprint": "37577d65b02e405e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-711b2dc17f359c7c", "level": "error", "message": {"text": "Dangling fetch: GET /api${path} (frontend/src/pages/ResellerPage.tsx:109)"}, "properties": {"repobilityId": "21a0584a982638c3", "scanner": "scanner-primary", "fingerprint": "711b2dc17f359c7c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-d06eb29d05a5c2bf", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1${path} (frontend/src/pages/AiSupportPage.tsx:84)"}, "properties": {"repobilityId": "c3ec2f62f111da6f", "scanner": "scanner-primary", "fingerprint": "d06eb29d05a5c2bf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2f2775f0d898542b", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1${path} (frontend/src/pages/IntegrationsPage.tsx:71)"}, "properties": {"repobilityId": "53e277bebbf30a83", "scanner": "scanner-primary", "fingerprint": "2f2775f0d898542b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-adc2b939714daa7a", "level": "error", "message": {"text": "Dangling fetch: GET /api/v1${path} (frontend/src/pages/Reports.tsx:137)"}, "properties": {"repobilityId": "95e698bec65226bb", "scanner": "scanner-primary", "fingerprint": "adc2b939714daa7a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-76889df7c8e240c5", "level": "note", "message": {"text": "Unused endpoint: USE /api/"}, "properties": {"repobilityId": "856564c7c25b65bf", "scanner": "scanner-primary", "fingerprint": "76889df7c8e240c5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6eb452fbfb454d20", "level": "note", "message": {"text": "Unused endpoint: USE /api/auth"}, "properties": {"repobilityId": "0aa2258a9e8b6e24", "scanner": "scanner-primary", "fingerprint": "6eb452fbfb454d20", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3bec7ccd0b909bea", "level": "note", "message": {"text": "Unused endpoint: USE /api/v1/auth"}, "properties": {"repobilityId": "e97745b3566f0e35", "scanner": "scanner-primary", "fingerprint": "3bec7ccd0b909bea", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ca9648b51fbb13b7", "level": "note", "message": {"text": "Unused endpoint: USE /api/export"}, "properties": {"repobilityId": "920643d5247f9404", "scanner": "scanner-primary", "fingerprint": "ca9648b51fbb13b7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4f85960e834767d1", "level": "note", "message": {"text": "Unused endpoint: USE /api/v1/export"}, "properties": {"repobilityId": "2687a37e5eed92a5", "scanner": "scanner-primary", "fingerprint": "4f85960e834767d1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-265cf3d9ef4ca37c", "level": "note", "message": {"text": "Unused endpoint: USE /api/pdf"}, "properties": {"repobilityId": "749ccabff30e3d05", "scanner": "scanner-primary", "fingerprint": "265cf3d9ef4ca37c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7f1c26d0c3c6106f", "level": "note", "message": {"text": "Unused endpoint: USE /api/v1/pdf"}, "properties": {"repobilityId": "a8e1e271f9c99cac", "scanner": "scanner-primary", "fingerprint": "7f1c26d0c3c6106f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ec00984b27c88c15", "level": "note", "message": {"text": "Unused endpoint: USE /api/events"}, "properties": {"repobilityId": "f1e3a968fd711842", "scanner": "scanner-primary", "fingerprint": "ec00984b27c88c15", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-65c415595e09f9a1", "level": "note", "message": {"text": "Unused endpoint: USE /api/v1/events"}, "properties": {"repobilityId": "fe98c638819efcf3", "scanner": "scanner-primary", "fingerprint": "65c415595e09f9a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b232e1cd5aecc5c1", "level": "note", "message": {"text": "Unused endpoint: USE /api/payment-webhooks"}, "properties": {"repobilityId": "8bacaa0db669354c", "scanner": "scanner-primary", "fingerprint": "b232e1cd5aecc5c1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5ea8274662741a20", "level": "note", "message": {"text": "Unused endpoint: USE /api/v1/payment-webhooks"}, "properties": {"repobilityId": "a08fde0706bb8a18", "scanner": "scanner-primary", "fingerprint": "5ea8274662741a20", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-768b1ba55e920b1e", "level": "note", "message": {"text": "Unused endpoint: USE /acs"}, "properties": {"repobilityId": "436f3fcfcc41ed07", "scanner": "scanner-primary", "fingerprint": "768b1ba55e920b1e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2f9271c3bf894235", "level": "note", "message": {"text": "Unused endpoint: POST /acs/cwmp"}, "properties": {"repobilityId": "f56f86ed66f88b30", "scanner": "scanner-primary", "fingerprint": "2f9271c3bf894235", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b28d92215a503990", "level": "note", "message": {"text": "Unused endpoint: USE /auth"}, "properties": {"repobilityId": "339670e586d7e37b", "scanner": "scanner-primary", "fingerprint": "b28d92215a503990", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-77f68a230eae1580", "level": "note", "message": {"text": "Unused endpoint: USE /organizations"}, "properties": {"repobilityId": "58912717ac09371e", "scanner": "scanner-primary", "fingerprint": "77f68a230eae1580", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4e480cf1bc736555", "level": "note", "message": {"text": "Unused endpoint: USE /users"}, "properties": {"repobilityId": "4b0b108bd140b26b", "scanner": "scanner-primary", "fingerprint": "4e480cf1bc736555", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f394c0f325ce8a93", "level": "note", "message": {"text": "Unused endpoint: USE /sites"}, "properties": {"repobilityId": "cd6d9f93700c9744", "scanner": "scanner-primary", "fingerprint": "f394c0f325ce8a93", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5fb2e8d0681e474e", "level": "note", "message": {"text": "Unused endpoint: USE /clients"}, "properties": {"repobilityId": "9f5ca180b31cef75", "scanner": "scanner-primary", "fingerprint": "5fb2e8d0681e474e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ee41babb24e2fcb8", "level": "note", "message": {"text": "Unused endpoint: USE /client-groups"}, "properties": {"repobilityId": "9b7bf63a482c89fe", "scanner": "scanner-primary", "fingerprint": "ee41babb24e2fcb8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-92971b0c3e2623ca", "level": "note", "message": {"text": "Unused endpoint: USE /leads"}, "properties": {"repobilityId": "136f62cb257e9c57", "scanner": "scanner-primary", "fingerprint": "92971b0c3e2623ca", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-842ffb0e7e5fd69f", "level": "note", "message": {"text": "Unused endpoint: USE /service-orders"}, "properties": {"repobilityId": "311ed96e271e5072", "scanner": "scanner-primary", "fingerprint": "842ffb0e7e5fd69f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ac14e66516bf6914", "level": "note", "message": {"text": "Unused endpoint: USE /winback-campaigns"}, "properties": {"repobilityId": "01f1e5a6c426c051", "scanner": "scanner-primary", "fingerprint": "ac14e66516bf6914", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-767a48112fe241a7", "level": "note", "message": {"text": "Unused endpoint: USE /lifecycle"}, "properties": {"repobilityId": "ce35abbb19d217cc", "scanner": "scanner-primary", "fingerprint": "767a48112fe241a7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9de4213c527180ab", "level": "note", "message": {"text": "Unused endpoint: USE /plans"}, "properties": {"repobilityId": "ab43406d6322da4c", "scanner": "scanner-primary", "fingerprint": "9de4213c527180ab", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-496d8c6272c279da", "level": "note", "message": {"text": "Unused endpoint: USE /contracts"}, "properties": {"repobilityId": "7f4c96222dc634f4", "scanner": "scanner-primary", "fingerprint": "496d8c6272c279da", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1b64856104b06f0f", "level": "note", "message": {"text": "Unused endpoint: USE /devices"}, "properties": {"repobilityId": "b39e9027a63a824f", "scanner": "scanner-primary", "fingerprint": "1b64856104b06f0f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9fb0da20ad1140bb", "level": "note", "message": {"text": "Unused endpoint: USE /nas"}, "properties": {"repobilityId": "b0e78d2f1c178573", "scanner": "scanner-primary", "fingerprint": "9fb0da20ad1140bb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9d29ab2b710adb2f", "level": "note", "message": {"text": "Unused endpoint: USE /radius"}, "properties": {"repobilityId": "b2516a8d538a4cc7", "scanner": "scanner-primary", "fingerprint": "9d29ab2b710adb2f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-04e49e46387e9672", "level": "note", "message": {"text": "Unused endpoint: USE /invoices"}, "properties": {"repobilityId": "7ea5b696cf85fb6b", "scanner": "scanner-primary", "fingerprint": "04e49e46387e9672", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-38ffe423a6b9b24c", "level": "note", "message": {"text": "Unused endpoint: USE /payments"}, "properties": {"repobilityId": "083e1b2631523169", "scanner": "scanner-primary", "fingerprint": "38ffe423a6b9b24c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-007e406ac0ea7ed3", "level": "note", "message": {"text": "Unused endpoint: USE /credit-notes"}, "properties": {"repobilityId": "15ab89f40a22537a", "scanner": "scanner-primary", "fingerprint": "007e406ac0ea7ed3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-858cb8cb10d83bfe", "level": "note", "message": {"text": "Unused endpoint: USE /tickets"}, "properties": {"repobilityId": "941f9e1bafc898a5", "scanner": "scanner-primary", "fingerprint": "858cb8cb10d83bfe", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5cea1ad9dcf531a3", "level": "note", "message": {"text": "Unused endpoint: USE /interactions"}, "properties": {"repobilityId": "31b55bbfb1bae072", "scanner": "scanner-primary", "fingerprint": "5cea1ad9dcf531a3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-40e4e8fbf217a86d", "level": "note", "message": {"text": "Unused endpoint: USE /follow-up-reminders"}, "properties": {"repobilityId": "9ad8c361af6c8bb1", "scanner": "scanner-primary", "fingerprint": "40e4e8fbf217a86d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3d0794bda838b313", "level": "note", "message": {"text": "Unused endpoint: USE /satisfaction-surveys"}, "properties": {"repobilityId": "f0f82baecb5446ba", "scanner": "scanner-primary", "fingerprint": "3d0794bda838b313", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8e45586f77b48fd4", "level": "note", "message": {"text": "Unused endpoint: USE /escalations"}, "properties": {"repobilityId": "d90a8a65b21156bc", "scanner": "scanner-primary", "fingerprint": "8e45586f77b48fd4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-280d2202a0925ebd", "level": "note", "message": {"text": "Unused endpoint: USE /jobs"}, "properties": {"repobilityId": "358ae50ee5602c0e", "scanner": "scanner-primary", "fingerprint": "280d2202a0925ebd", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-81c57393db7a58a7", "level": "note", "message": {"text": "Unused endpoint: USE /warehouses"}, "properties": {"repobilityId": "127a42d9fa5afa36", "scanner": "scanner-primary", "fingerprint": "81c57393db7a58a7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a4e2f6f962499444", "level": "note", "message": {"text": "Unused endpoint: USE /inventory"}, "properties": {"repobilityId": "e8edb38ff74c2b94", "scanner": "scanner-primary", "fingerprint": "a4e2f6f962499444", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d5eddf999e28cd7d", "level": "note", "message": {"text": "Unused endpoint: USE /quotes"}, "properties": {"repobilityId": "6795b3d7d403379b", "scanner": "scanner-primary", "fingerprint": "d5eddf999e28cd7d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f29f9bdfc54146dc", "level": "note", "message": {"text": "Unused endpoint: USE /expenses"}, "properties": {"repobilityId": "bfe06aa49a8c6c8f", "scanner": "scanner-primary", "fingerprint": "f29f9bdfc54146dc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-75fbe20d15dad2bb", "level": "note", "message": {"text": "Unused endpoint: USE /outages"}, "properties": {"repobilityId": "0a5bf1c3cb4742b5", "scanner": "scanner-primary", "fingerprint": "75fbe20d15dad2bb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e226018629ced73e", "level": "note", "message": {"text": "Unused endpoint: USE /noc"}, "properties": {"repobilityId": "38da53c5dbad59d7", "scanner": "scanner-primary", "fingerprint": "e226018629ced73e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4ce40f9d5c4d6e99", "level": "note", "message": {"text": "Unused endpoint: USE /work-orders"}, "properties": {"repobilityId": "9e58a481a192e182", "scanner": "scanner-primary", "fingerprint": "4ce40f9d5c4d6e99", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-df236a550aed372a", "level": "note", "message": {"text": "Unused endpoint: USE /technician-tracking"}, "properties": {"repobilityId": "83a0e340cdc3b1ae", "scanner": "scanner-primary", "fingerprint": "df236a550aed372a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-10311aa328cba827", "level": "note", "message": {"text": "Unused endpoint: USE /topology"}, "properties": {"repobilityId": "0119e2a99890f2b5", "scanner": "scanner-primary", "fingerprint": "10311aa328cba827", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-404802ade7f487c5", "level": "note", "message": {"text": "Unused endpoint: USE /vendors"}, "properties": {"repobilityId": "ec5bcdc0d21f4e2b", "scanner": "scanner-primary", "fingerprint": "404802ade7f487c5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a2620a97633c8c0a", "level": "note", "message": {"text": "Unused endpoint: USE /purchase-orders"}, "properties": {"repobilityId": "00e6eb11ccdcbdaf", "scanner": "scanner-primary", "fingerprint": "a2620a97633c8c0a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3b59435b3211a9df", "level": "note", "message": {"text": "Unused endpoint: USE /assets"}, "properties": {"repobilityId": "64f641c09999e09a", "scanner": "scanner-primary", "fingerprint": "3b59435b3211a9df", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2b6127050ca57386", "level": "note", "message": {"text": "Unused endpoint: USE /rma-requests"}, "properties": {"repobilityId": "ba80288f034343dc", "scanner": "scanner-primary", "fingerprint": "2b6127050ca57386", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}