{"version": "2.1.0", "$schema": "https://json.schemastore.org/sarif-2.1.0.json", "runs": [{"tool": {"driver": {"name": "Repobility", "informationUri": "https://repobility.com", "rules": [{"id": "scanner-d418a1a5a94e7a5d", "name": "TODO/FIXME marker in shipping code \u2014 supabase/functions/tracking-reconcile/index.ts:366", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 supabase/functions/tracking-reconcile/index.ts:366"}, "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-d5e89e56caefb104", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/layout/Sidebar.tsx:130", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/layout/Sidebar.tsx:130"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f58a978204e0242d", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/dashboard/AlertsPanel.tsx:177", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/dashboard/AlertsPanel.tsx:177"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c1e70079d51439a3", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/manufacturing/NewFactoryOrderDialog.tsx:506", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/manufacturing/NewFactoryOrderDialog.tsx:506"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e16a9a16858cf0f1", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/manufacturing/SKUInsights.tsx:49", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/manufacturing/SKUInsights.tsx:49"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-02e1cfabe7919908", "name": "Stray `console.log` in TS/JS \u2014 src/lib/monitoring/sentry.ts:51", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/monitoring/sentry.ts: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-d1053f0b6cc8de8d", "name": "TODO/FIXME marker in shipping code \u2014 src/lib/tracking/providers/evergreen.ts:16", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/lib/tracking/providers/evergreen.ts:16"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1e1986541df63973", "name": "TODO/FIXME marker in shipping code \u2014 src/lib/tracking/providers/fedex.ts:17", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/lib/tracking/providers/fedex.ts:17"}, "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-9e40a4af2ca562f6", "name": "TODO/FIXME marker in shipping code \u2014 src/lib/tracking/providers/dhl.ts:18", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/lib/tracking/providers/dhl.ts:18"}, "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-0e0841e69bc6d9ab", "name": "TODO/FIXME marker in shipping code \u2014 src/lib/tracking/providers/cosco.ts:17", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/lib/tracking/providers/cosco.ts:17"}, "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-cb51e7149ef57e82", "name": "TODO/FIXME marker in shipping code \u2014 src/lib/tracking/providers/maersk.ts:17", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/lib/tracking/providers/maersk.ts:17"}, "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-a80dd65eebd7e3c2", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard.tsx:181", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard.tsx:181"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c9352b5f5af85ed8", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/settings/ChangeLog.tsx:505", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/settings/ChangeLog.tsx:505"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bfa96249f53e9f45", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/inventory/QualityIssues.tsx:207", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/inventory/QualityIssues.tsx:207"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4f5ac3fdb74aebdd", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/inventory/InventoryDashboard.tsx:128", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/inventory/InventoryDashboard.tsx:128"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0fca59a890330cd5", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/inventory/FactoryOrders.tsx:717", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/inventory/FactoryOrders.tsx:717"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fae73eef580ae496", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/inventory/materials/MaterialDetail.tsx:227", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/inventory/materials/MaterialDetail.tsx:227"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f7cb32aa49650902", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/manufacturing/ManufacturingDashboard.tsx:162", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/manufacturing/ManufacturingDashboard.tsx:162"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-41d6c7481dcdb91c", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/freight/FreightNew.tsx:727", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/freight/FreightNew.tsx:727"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7f5f1b948b89b2bc", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/freight/FreightDashboard.tsx:734", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/freight/FreightDashboard.tsx:734"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f7f979a615bf9dd5", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/supplier/NewShipment.tsx:608", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/supplier/NewShipment.tsx:608"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9c512f182ee62b74", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/supplier/BreakageInbox.tsx:153", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/supplier/BreakageInbox.tsx:153"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-743d3c46f8e6d9a8", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/supplier/ShipmentsList.tsx:315", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/supplier/ShipmentsList.tsx:315"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-abebdb09c8bcf172", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/supplier/FactoryOrderDetail.tsx:402", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/supplier/FactoryOrderDetail.tsx:402"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-23b2e27bf2677575", "name": "`truncate` class without `title=` for hover reveal \u2014 src/pages/supplier/FactoryOrdersList.tsx:425", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/supplier/FactoryOrdersList.tsx:425"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-962d8a5f30c4a15a", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/tracking-reconcile/index.ts:87", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/tracking-reconcile/index.ts:87"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9db99ad3e9fa1337", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/shipstation-backfill/index.ts:23", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/shipstation-backfill/index.ts:23"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-81e802c86c4ae4bc", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/invite-user/index.ts:56", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/invite-user/index.ts:56"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-19eca8ca9bbab675", "name": "Insecure pattern 'cors_wildcard' in supabase/functions/admin-password/index.ts:38", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/admin-password/index.ts:38"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-494bf0827722996b", "name": "Very large file: scripts/build-forecast.cjs (1744 lines)", "shortDescription": {"text": "Very large file: scripts/build-forecast.cjs (1744 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-12f5a28582207cce", "name": "Very large file: src/lib/demo-data.ts (1148 lines)", "shortDescription": {"text": "Very large file: src/lib/demo-data.ts (1148 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-faef90a904cbe6a1", "name": "Very large file: src/lib/database.types.ts (3553 lines)", "shortDescription": {"text": "Very large file: src/lib/database.types.ts (3553 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-c0a0a141c51a0a7e", "name": "Very large file: src/pages/economics/SKUDetail.tsx (1616 lines)", "shortDescription": {"text": "Very large file: src/pages/economics/SKUDetail.tsx (1616 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "10 test file(s) for 154 source file(s) (ratio 0.06). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 88 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 128 placeholder/mock markers across 39 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9d79c4077342a7d0", "name": "Runtime service client appears to use placeholder configuration", "shortDescription": {"text": "Runtime service client appears to use placeholder configuration"}, "fullDescription": {"text": "A runtime source file appears to wire Supabase/Firebase/AI/payment-style clients to placeholder URLs, keys, or fallback values. In the Fable corpus this often means the UI/API shape is present while the backend service is not actually configured."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license. 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-2c5f98b152cddb6d", "name": "Agent authority lacks a verifier contract: .claude/launch.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/launch.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2fa66fbb4ccaae72", "name": "Legacy-named symbol `tengine_v2` in scripts/forecast-live.cjs:69", "shortDescription": {"text": "Legacy-named symbol `tengine_v2` in scripts/forecast-live.cjs:69"}, "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-a388e45a32c07902", "name": "Commented-code block (7 lines) in supabase/functions/tracking-reconcile/index.ts:6", "shortDescription": {"text": "Commented-code block (7 lines) in supabase/functions/tracking-reconcile/index.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-49f3c735bef659e0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/tracking-reconcile/index.ts:387", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/tracking-reconcile/index.ts:387"}, "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-61b13bc231b9a50c", "name": "Commented-code block (6 lines) in supabase/functions/shipstation-reconcile/index.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in supabase/functions/shipstation-reconcile/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-64c7ab15268af11b", "name": "Commented-code block (5 lines) in supabase/functions/shipstation-webhook/index.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in supabase/functions/shipstation-webhook/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-01adbf1cc910cbe1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/shipstation-backfill/index.ts:63", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/shipstation-backfill/index.ts:63"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fba8fef37e83dd77", "name": "Commented-code block (6 lines) in supabase/functions/invite-user/index.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in supabase/functions/invite-user/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-58a5693b0ae987f0", "name": "Commented-code block (10 lines) in supabase/functions/admin-password/index.ts:6", "shortDescription": {"text": "Commented-code block (10 lines) in supabase/functions/admin-password/index.ts:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e8dd6d5f02764b10", "name": "Commented-code block (5 lines) in tmp/debug-forecast.cjs:934", "shortDescription": {"text": "Commented-code block (5 lines) in tmp/debug-forecast.cjs:934"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2ec2ac9f0d44aac8", "name": "Commented-code block (7 lines) in src/types/database.ts:209", "shortDescription": {"text": "Commented-code block (7 lines) in src/types/database.ts:209"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7d48af2acd78ea48", "name": "Commented-code block (5 lines) in src/components/inventory/InventoryProjectionChart.tsx:111", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/inventory/InventoryProjectionChart.tsx:111"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c3895eea00afe9dd", "name": "Commented-code block (5 lines) in src/components/dashboard/ManufacturingCompletionModal.tsx:122", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/dashboard/ManufacturingCompletionModal.tsx:122"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9e9a39f1094792bb", "name": "Commented-code block (6 lines) in src/components/dashboard/RetailValueSummaryBar.tsx:31", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/dashboard/RetailValueSummaryBar.tsx:31"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8ff84be3a436477b", "name": "Commented-code block (5 lines) in src/lib/observability.ts:35", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/observability.ts:35"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-072a119af5236704", "name": "Commented-code block (7 lines) in src/lib/inventory-math.ts:97", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/inventory-math.ts:97"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-41c849842457bb63", "name": "Commented-code block (5 lines) in src/lib/constants.ts:37", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/constants.ts:37"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-53ded31a5aff4bfd", "name": "Commented-code block (5 lines) in src/lib/demo-data.ts:147", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/demo-data.ts:147"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8117cedf2ea44418", "name": "Commented-code block (7 lines) in src/lib/monitoring/analytics.ts:50", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/monitoring/analytics.ts:50"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fd3096b26036ea34", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/tracking/providers/maersk.ts:18", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/tracking/providers/maersk.ts:18"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6ed61f01b37f7a5f", "name": "Commented-code block (5 lines) in src/lib/performance/date-ranges.ts:70", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/performance/date-ranges.ts:70"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a04f87a5eb0db19f", "name": "Commented-code block (6 lines) in src/lib/hooks/hooks.test.ts:70", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/hooks/hooks.test.ts:70"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1192d2c3b2042130", "name": "Commented-code block (6 lines) in src/lib/hooks/use-sku-economics.ts:101", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/hooks/use-sku-economics.ts:101"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6b21d043fe88e80e", "name": "Commented-code block (5 lines) in src/lib/hooks/use-supplier-portal.ts:159", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/hooks/use-supplier-portal.ts:159"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eadb87b6e77cbaf7", "name": "Commented-code block (9 lines) in src/lib/hooks/use-task-logs.ts:14", "shortDescription": {"text": "Commented-code block (9 lines) in src/lib/hooks/use-task-logs.ts:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-02828f8dddfde8f7", "name": "Commented-code block (5 lines) in src/lib/hooks/use-factory-orders.ts:33", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/hooks/use-factory-orders.ts:33"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e3553911a3f239e8", "name": "Commented-code block (8 lines) in src/lib/hooks/use-products.ts:114", "shortDescription": {"text": "Commented-code block (8 lines) in src/lib/hooks/use-products.ts:114"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f35e6c9346c3b7d6", "name": "Commented-code block (5 lines) in src/pages/settings/ChangeLog.tsx:435", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/settings/ChangeLog.tsx:435"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ba4763868c802207", "name": "Commented-code block (7 lines) in src/pages/economics/SKUDetail.tsx:41", "shortDescription": {"text": "Commented-code block (7 lines) in src/pages/economics/SKUDetail.tsx:41"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9e37874ce6bb6b9f", "name": "Commented-code block (5 lines) in src/pages/economics/SKUList.tsx:89", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/economics/SKUList.tsx:89"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0127164db61c6213", "name": "Commented-code block (5 lines) in src/pages/inventory/InventoryDashboard.tsx:296", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/inventory/InventoryDashboard.tsx:296"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-89aba8a793ac640f", "name": "Commented-code block (5 lines) in src/pages/inventory/FactoryOrderDetail.tsx:126", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/inventory/FactoryOrderDetail.tsx:126"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6389fe3efe873517", "name": "Commented-code block (6 lines) in src/pages/inventory/FactoryOrders.tsx:109", "shortDescription": {"text": "Commented-code block (6 lines) in src/pages/inventory/FactoryOrders.tsx:109"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-11f99178644baf7e", "name": "Commented-code block (5 lines) in src/pages/manufacturing/ManufacturingDashboard.tsx:22", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/manufacturing/ManufacturingDashboard.tsx:22"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f57e809c171cdec2", "name": "Commented-code block (6 lines) in src/pages/manufacturing/Performance.tsx:53", "shortDescription": {"text": "Commented-code block (6 lines) in src/pages/manufacturing/Performance.tsx:53"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5179da72957c0167", "name": "Commented-code block (7 lines) in src/pages/freight/FreightNew.tsx:116", "shortDescription": {"text": "Commented-code block (7 lines) in src/pages/freight/FreightNew.tsx:116"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bc14f5c52ba3ebf6", "name": "Commented-code block (5 lines) in src/pages/freight/FreightDetail.tsx:52", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/freight/FreightDetail.tsx:52"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e53f35ffb7c92e47", "name": "Commented-code block (7 lines) in src/pages/freight/FreightDashboard.tsx:40", "shortDescription": {"text": "Commented-code block (7 lines) in src/pages/freight/FreightDashboard.tsx:40"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-285209d61685a624", "name": "Commented-code block (5 lines) in src/pages/supplier/NewShipment.tsx:130", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/supplier/NewShipment.tsx:130"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d146d4b7c64b4554", "name": "Commented-code block (7 lines) in src/pages/supplier/ShipmentsList.tsx:76", "shortDescription": {"text": "Commented-code block (7 lines) in src/pages/supplier/ShipmentsList.tsx:76"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-24bbcd2d26e7f7cc", "name": "Commented-code block (5 lines) in src/pages/supplier/FactoryOrderDetail.tsx:67", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/supplier/FactoryOrderDetail.tsx:67"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b9c410e9464150f4", "name": "Commented-code block (5 lines) in src/pages/supplier/FactoryOrdersList.tsx:79", "shortDescription": {"text": "Commented-code block (5 lines) in src/pages/supplier/FactoryOrdersList.tsx:79"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-319e66a630e14977", "name": "2 env vars used in code but missing from .env.example", "shortDescription": {"text": "2 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `DEV`, `VITE_VERCEL_GIT_COMMIT_SHA`. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eb95e82e4077dbfa", "name": "Frontend route `/freight/:id` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/freight/:id` has no Link/navigate to it \u2014 src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3c5cc7fe5ea60d23", "name": "Frontend route `/inventory/materials/:materialId` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/inventory/materials/:materialId` has no Link/navigate to it \u2014 src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-bb872006666b8ae4", "name": "Frontend route `/inventory/factory-orders/:id` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/inventory/factory-orders/:id` has no Link/navigate to it \u2014 src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3f3b7aa71503877a", "name": "Frontend route `/inventory/quality-issues` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/inventory/quality-issues` has no Link/navigate to it \u2014 src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-04b2dafbf84a3889", "name": "Frontend route `/economics/suppliers/:id` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/economics/suppliers/:id` has no Link/navigate to it \u2014 src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c5082b8d784c2496", "name": "Frontend route `/economics/:skuId` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/economics/:skuId` has no Link/navigate to it \u2014 src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a7b8faee26b8b12e", "name": "Frontend route `/supplier/orders/:id` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/supplier/orders/:id` has no Link/navigate to it \u2014 src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-40cded8c27ff42da", "name": "Frontend route `/supplier/shipments/:id` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/supplier/shipments/:id` has no Link/navigate to it \u2014 src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-34e981057ae0ec2e", "name": "Frontend route `/supplier/breakage` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/supplier/breakage` has no Link/navigate to it \u2014 src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d7a07defe240c6a8", "name": "Frontend route `/supplier/variances` has no Link/navigate to it \u2014 src/App.tsx", "shortDescription": {"text": "Frontend route `/supplier/variances` has no Link/navigate to it \u2014 src/App.tsx"}, "fullDescription": {"text": "The route is registered but no `<Link to=\u2026>` or `navigate(\u2026)` in the codebase navigates here. Either it's reachable only via direct URL (intentional), it's dead, or the link broke during a refactor."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/21095"}, "properties": {"repository": "TheFreezePipe/Freeze-Pipe-ERP", "repoUrl": "https://github.com/TheFreezePipe/Freeze-Pipe-ERP", "branch": "main"}, "results": [{"ruleId": "scanner-d418a1a5a94e7a5d", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 supabase/functions/tracking-reconcile/index.ts:366"}, "properties": {"repobilityId": "6452541b5e6468bb", "scanner": "scanner-primary", "fingerprint": "d418a1a5a94e7a5d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-d5e89e56caefb104", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/layout/Sidebar.tsx:130"}, "properties": {"repobilityId": "be1152cdf47927a8", "scanner": "scanner-primary", "fingerprint": "d5e89e56caefb104", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f58a978204e0242d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/dashboard/AlertsPanel.tsx:177"}, "properties": {"repobilityId": "5ae98c2e658c55a8", "scanner": "scanner-primary", "fingerprint": "f58a978204e0242d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c1e70079d51439a3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/manufacturing/NewFactoryOrderDialog.tsx:506"}, "properties": {"repobilityId": "488094062dc075fe", "scanner": "scanner-primary", "fingerprint": "c1e70079d51439a3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-e16a9a16858cf0f1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/manufacturing/SKUInsights.tsx:49"}, "properties": {"repobilityId": "d69f37a3bb54122d", "scanner": "scanner-primary", "fingerprint": "e16a9a16858cf0f1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-02e1cfabe7919908", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/monitoring/sentry.ts:51"}, "properties": {"repobilityId": "883fcdb0c6024ac1", "scanner": "scanner-primary", "fingerprint": "02e1cfabe7919908", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d1053f0b6cc8de8d", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/lib/tracking/providers/evergreen.ts:16"}, "properties": {"repobilityId": "a5c62842fd46f3bb", "scanner": "scanner-primary", "fingerprint": "d1053f0b6cc8de8d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-1e1986541df63973", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/lib/tracking/providers/fedex.ts:17"}, "properties": {"repobilityId": "0cb73bcca32d88d3", "scanner": "scanner-primary", "fingerprint": "1e1986541df63973", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-9e40a4af2ca562f6", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/lib/tracking/providers/dhl.ts:18"}, "properties": {"repobilityId": "c8633ea142fb0354", "scanner": "scanner-primary", "fingerprint": "9e40a4af2ca562f6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-0e0841e69bc6d9ab", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/lib/tracking/providers/cosco.ts:17"}, "properties": {"repobilityId": "61db8f530a9ea8cb", "scanner": "scanner-primary", "fingerprint": "0e0841e69bc6d9ab", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-cb51e7149ef57e82", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/lib/tracking/providers/maersk.ts:17"}, "properties": {"repobilityId": "42d97f419bfc2833", "scanner": "scanner-primary", "fingerprint": "cb51e7149ef57e82", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-a80dd65eebd7e3c2", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/Dashboard.tsx:181"}, "properties": {"repobilityId": "ef6dffe971709383", "scanner": "scanner-primary", "fingerprint": "a80dd65eebd7e3c2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-c9352b5f5af85ed8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/settings/ChangeLog.tsx:505"}, "properties": {"repobilityId": "590e24eef8c3e9d9", "scanner": "scanner-primary", "fingerprint": "c9352b5f5af85ed8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-bfa96249f53e9f45", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/inventory/QualityIssues.tsx:207"}, "properties": {"repobilityId": "be1a47c28830c6e5", "scanner": "scanner-primary", "fingerprint": "bfa96249f53e9f45", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4f5ac3fdb74aebdd", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/inventory/InventoryDashboard.tsx:128"}, "properties": {"repobilityId": "6c689c3524494180", "scanner": "scanner-primary", "fingerprint": "4f5ac3fdb74aebdd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-0fca59a890330cd5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/inventory/FactoryOrders.tsx:717"}, "properties": {"repobilityId": "2bbd333e1c0863d4", "scanner": "scanner-primary", "fingerprint": "0fca59a890330cd5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-fae73eef580ae496", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/inventory/materials/MaterialDetail.tsx:227"}, "properties": {"repobilityId": "0ff2d0b71a10d5c8", "scanner": "scanner-primary", "fingerprint": "fae73eef580ae496", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f7cb32aa49650902", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/manufacturing/ManufacturingDashboard.tsx:162"}, "properties": {"repobilityId": "b09910827f6ad187", "scanner": "scanner-primary", "fingerprint": "f7cb32aa49650902", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-41d6c7481dcdb91c", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/freight/FreightNew.tsx:727"}, "properties": {"repobilityId": "ca12ffee7da7121e", "scanner": "scanner-primary", "fingerprint": "41d6c7481dcdb91c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-7f5f1b948b89b2bc", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/freight/FreightDashboard.tsx:734"}, "properties": {"repobilityId": "02d7d1078357f4cc", "scanner": "scanner-primary", "fingerprint": "7f5f1b948b89b2bc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-f7f979a615bf9dd5", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/supplier/NewShipment.tsx:608"}, "properties": {"repobilityId": "401841db0754ac89", "scanner": "scanner-primary", "fingerprint": "f7f979a615bf9dd5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9c512f182ee62b74", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/supplier/BreakageInbox.tsx:153"}, "properties": {"repobilityId": "d25ebeeb9856fed5", "scanner": "scanner-primary", "fingerprint": "9c512f182ee62b74", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-743d3c46f8e6d9a8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/supplier/ShipmentsList.tsx:315"}, "properties": {"repobilityId": "f754671421c068c2", "scanner": "scanner-primary", "fingerprint": "743d3c46f8e6d9a8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-abebdb09c8bcf172", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/supplier/FactoryOrderDetail.tsx:402"}, "properties": {"repobilityId": "f194166f99ba9b37", "scanner": "scanner-primary", "fingerprint": "abebdb09c8bcf172", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-23b2e27bf2677575", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/pages/supplier/FactoryOrdersList.tsx:425"}, "properties": {"repobilityId": "b2dae10fea09f5f1", "scanner": "scanner-primary", "fingerprint": "23b2e27bf2677575", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-962d8a5f30c4a15a", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/tracking-reconcile/index.ts:87"}, "properties": {"repobilityId": "b09323ef334a1898", "scanner": "scanner-primary", "fingerprint": "962d8a5f30c4a15a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/tracking-reconcile/index.ts"}, "region": {"startLine": 87}}}]}, {"ruleId": "scanner-9db99ad3e9fa1337", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/shipstation-backfill/index.ts:23"}, "properties": {"repobilityId": "e1096948e934538f", "scanner": "scanner-primary", "fingerprint": "9db99ad3e9fa1337", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/shipstation-backfill/index.ts"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-81e802c86c4ae4bc", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/invite-user/index.ts:56"}, "properties": {"repobilityId": "f1b1a21e6d6efd72", "scanner": "scanner-primary", "fingerprint": "81e802c86c4ae4bc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/invite-user/index.ts"}, "region": {"startLine": 56}}}]}, {"ruleId": "scanner-19eca8ca9bbab675", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in supabase/functions/admin-password/index.ts:38"}, "properties": {"repobilityId": "2753091e976cbb7f", "scanner": "scanner-primary", "fingerprint": "19eca8ca9bbab675", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "supabase/functions/admin-password/index.ts"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-494bf0827722996b", "level": "note", "message": {"text": "Very large file: scripts/build-forecast.cjs (1744 lines)"}, "properties": {"repobilityId": "db82de8e9c424ba7", "scanner": "scanner-primary", "fingerprint": "494bf0827722996b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-12f5a28582207cce", "level": "note", "message": {"text": "Very large file: src/lib/demo-data.ts (1148 lines)"}, "properties": {"repobilityId": "b0c63b9ac6f7e27c", "scanner": "scanner-primary", "fingerprint": "12f5a28582207cce", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-faef90a904cbe6a1", "level": "note", "message": {"text": "Very large file: src/lib/database.types.ts (3553 lines)"}, "properties": {"repobilityId": "ca4d4e35c819d250", "scanner": "scanner-primary", "fingerprint": "faef90a904cbe6a1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c0a0a141c51a0a7e", "level": "note", "message": {"text": "Very large file: src/pages/economics/SKUDetail.tsx (1616 lines)"}, "properties": {"repobilityId": "0ffc350673cf4b38", "scanner": "scanner-primary", "fingerprint": "c0a0a141c51a0a7e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "319c2124702ca450", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "80906cd293b243a0", "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": "e00b86d7f444f45b", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-9d79c4077342a7d0", "level": "warning", "message": {"text": "Runtime service client appears to use placeholder configuration"}, "properties": {"repobilityId": "13a5927f59c649d3", "scanner": "scanner-primary", "fingerprint": "9d79c4077342a7d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "runtime-config", "service-client", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "f2f04fc2fbf195c2", "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": "a39fb8570ab752cd", "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": "d21323aff28e093f", "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": "6ff7280e54dc647b", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-2c5f98b152cddb6d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/launch.json"}, "properties": {"repobilityId": "0de48c0f4ab303d8", "scanner": "scanner-primary", "fingerprint": "2c5f98b152cddb6d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/launch.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2fa66fbb4ccaae72", "level": "note", "message": {"text": "Legacy-named symbol `tengine_v2` in scripts/forecast-live.cjs:69"}, "properties": {"repobilityId": "acba503799185e14", "scanner": "scanner-primary", "fingerprint": "2fa66fbb4ccaae72", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-a388e45a32c07902", "level": "none", "message": {"text": "Commented-code block (7 lines) in supabase/functions/tracking-reconcile/index.ts:6"}, "properties": {"repobilityId": "eae2a1442afa0ed8", "scanner": "scanner-primary", "fingerprint": "a388e45a32c07902", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-49f3c735bef659e0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/tracking-reconcile/index.ts:387"}, "properties": {"repobilityId": "06371801851a7cb7", "scanner": "scanner-primary", "fingerprint": "49f3c735bef659e0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-61b13bc231b9a50c", "level": "none", "message": {"text": "Commented-code block (6 lines) in supabase/functions/shipstation-reconcile/index.ts:1"}, "properties": {"repobilityId": "156f41f296781851", "scanner": "scanner-primary", "fingerprint": "61b13bc231b9a50c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-64c7ab15268af11b", "level": "none", "message": {"text": "Commented-code block (5 lines) in supabase/functions/shipstation-webhook/index.ts:1"}, "properties": {"repobilityId": "73307ee7bb68836e", "scanner": "scanner-primary", "fingerprint": "64c7ab15268af11b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-01adbf1cc910cbe1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 supabase/functions/shipstation-backfill/index.ts:63"}, "properties": {"repobilityId": "16d5f83836d15dc5", "scanner": "scanner-primary", "fingerprint": "01adbf1cc910cbe1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fba8fef37e83dd77", "level": "none", "message": {"text": "Commented-code block (6 lines) in supabase/functions/invite-user/index.ts:1"}, "properties": {"repobilityId": "c735ad6d1a3d1c55", "scanner": "scanner-primary", "fingerprint": "fba8fef37e83dd77", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-58a5693b0ae987f0", "level": "none", "message": {"text": "Commented-code block (10 lines) in supabase/functions/admin-password/index.ts:6"}, "properties": {"repobilityId": "0562f0616aedc6e9", "scanner": "scanner-primary", "fingerprint": "58a5693b0ae987f0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e8dd6d5f02764b10", "level": "none", "message": {"text": "Commented-code block (5 lines) in tmp/debug-forecast.cjs:934"}, "properties": {"repobilityId": "39eec65b67042900", "scanner": "scanner-primary", "fingerprint": "e8dd6d5f02764b10", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2ec2ac9f0d44aac8", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/types/database.ts:209"}, "properties": {"repobilityId": "e54fedb88573b48c", "scanner": "scanner-primary", "fingerprint": "2ec2ac9f0d44aac8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7d48af2acd78ea48", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/inventory/InventoryProjectionChart.tsx:111"}, "properties": {"repobilityId": "85e99fd3ad7743d5", "scanner": "scanner-primary", "fingerprint": "7d48af2acd78ea48", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c3895eea00afe9dd", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/dashboard/ManufacturingCompletionModal.tsx:122"}, "properties": {"repobilityId": "239be7f57d1b7f71", "scanner": "scanner-primary", "fingerprint": "c3895eea00afe9dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9e9a39f1094792bb", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/dashboard/RetailValueSummaryBar.tsx:31"}, "properties": {"repobilityId": "b7c902314c88ce47", "scanner": "scanner-primary", "fingerprint": "9e9a39f1094792bb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ff84be3a436477b", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/observability.ts:35"}, "properties": {"repobilityId": "3e6c9d917561f030", "scanner": "scanner-primary", "fingerprint": "8ff84be3a436477b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-072a119af5236704", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/inventory-math.ts:97"}, "properties": {"repobilityId": "85bc810246e4ce17", "scanner": "scanner-primary", "fingerprint": "072a119af5236704", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-41c849842457bb63", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/constants.ts:37"}, "properties": {"repobilityId": "014194593449a0bb", "scanner": "scanner-primary", "fingerprint": "41c849842457bb63", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-53ded31a5aff4bfd", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/demo-data.ts:147"}, "properties": {"repobilityId": "848508dd3bf8f97d", "scanner": "scanner-primary", "fingerprint": "53ded31a5aff4bfd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8117cedf2ea44418", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/monitoring/analytics.ts:50"}, "properties": {"repobilityId": "c94bd80e7ea9b528", "scanner": "scanner-primary", "fingerprint": "8117cedf2ea44418", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fd3096b26036ea34", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/tracking/providers/maersk.ts:18"}, "properties": {"repobilityId": "9c9f3e99bad8320f", "scanner": "scanner-primary", "fingerprint": "fd3096b26036ea34", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6ed61f01b37f7a5f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/performance/date-ranges.ts:70"}, "properties": {"repobilityId": "9a9c2081eee44020", "scanner": "scanner-primary", "fingerprint": "6ed61f01b37f7a5f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a04f87a5eb0db19f", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/hooks/hooks.test.ts:70"}, "properties": {"repobilityId": "2224e8b96c1145fb", "scanner": "scanner-primary", "fingerprint": "a04f87a5eb0db19f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1192d2c3b2042130", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/hooks/use-sku-economics.ts:101"}, "properties": {"repobilityId": "9a3b037ff57b078a", "scanner": "scanner-primary", "fingerprint": "1192d2c3b2042130", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6b21d043fe88e80e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/hooks/use-supplier-portal.ts:159"}, "properties": {"repobilityId": "ccd10f5d03b92f9a", "scanner": "scanner-primary", "fingerprint": "6b21d043fe88e80e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eadb87b6e77cbaf7", "level": "none", "message": {"text": "Commented-code block (9 lines) in src/lib/hooks/use-task-logs.ts:14"}, "properties": {"repobilityId": "0f1e2d8316092d10", "scanner": "scanner-primary", "fingerprint": "eadb87b6e77cbaf7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-02828f8dddfde8f7", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/hooks/use-factory-orders.ts:33"}, "properties": {"repobilityId": "fe3d18ed4618f1bd", "scanner": "scanner-primary", "fingerprint": "02828f8dddfde8f7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e3553911a3f239e8", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/lib/hooks/use-products.ts:114"}, "properties": {"repobilityId": "5d8aba724fa77a9b", "scanner": "scanner-primary", "fingerprint": "e3553911a3f239e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f35e6c9346c3b7d6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/settings/ChangeLog.tsx:435"}, "properties": {"repobilityId": "6a6eb4cdb825b923", "scanner": "scanner-primary", "fingerprint": "f35e6c9346c3b7d6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba4763868c802207", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/pages/economics/SKUDetail.tsx:41"}, "properties": {"repobilityId": "cd743daf179a0d2e", "scanner": "scanner-primary", "fingerprint": "ba4763868c802207", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9e37874ce6bb6b9f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/economics/SKUList.tsx:89"}, "properties": {"repobilityId": "fa571d566e061b9e", "scanner": "scanner-primary", "fingerprint": "9e37874ce6bb6b9f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0127164db61c6213", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/inventory/InventoryDashboard.tsx:296"}, "properties": {"repobilityId": "6b7e6b09fdc07e83", "scanner": "scanner-primary", "fingerprint": "0127164db61c6213", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-89aba8a793ac640f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/inventory/FactoryOrderDetail.tsx:126"}, "properties": {"repobilityId": "bc9aaca99a3b4994", "scanner": "scanner-primary", "fingerprint": "89aba8a793ac640f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6389fe3efe873517", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/pages/inventory/FactoryOrders.tsx:109"}, "properties": {"repobilityId": "0d6e3b111df9fb55", "scanner": "scanner-primary", "fingerprint": "6389fe3efe873517", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-11f99178644baf7e", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/manufacturing/ManufacturingDashboard.tsx:22"}, "properties": {"repobilityId": "8ec1359e45e70d63", "scanner": "scanner-primary", "fingerprint": "11f99178644baf7e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f57e809c171cdec2", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/pages/manufacturing/Performance.tsx:53"}, "properties": {"repobilityId": "ffb08c6f3b6f92cb", "scanner": "scanner-primary", "fingerprint": "f57e809c171cdec2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5179da72957c0167", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/pages/freight/FreightNew.tsx:116"}, "properties": {"repobilityId": "9ea11aa1c179309f", "scanner": "scanner-primary", "fingerprint": "5179da72957c0167", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc14f5c52ba3ebf6", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/freight/FreightDetail.tsx:52"}, "properties": {"repobilityId": "8ae975ffdc713840", "scanner": "scanner-primary", "fingerprint": "bc14f5c52ba3ebf6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e53f35ffb7c92e47", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/pages/freight/FreightDashboard.tsx:40"}, "properties": {"repobilityId": "cdf73f16983fe8af", "scanner": "scanner-primary", "fingerprint": "e53f35ffb7c92e47", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-285209d61685a624", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/supplier/NewShipment.tsx:130"}, "properties": {"repobilityId": "3f842ab0e843e287", "scanner": "scanner-primary", "fingerprint": "285209d61685a624", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d146d4b7c64b4554", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/pages/supplier/ShipmentsList.tsx:76"}, "properties": {"repobilityId": "91aeaf60121203cd", "scanner": "scanner-primary", "fingerprint": "d146d4b7c64b4554", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-24bbcd2d26e7f7cc", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/supplier/FactoryOrderDetail.tsx:67"}, "properties": {"repobilityId": "31ca8108482bf857", "scanner": "scanner-primary", "fingerprint": "24bbcd2d26e7f7cc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b9c410e9464150f4", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/pages/supplier/FactoryOrdersList.tsx:79"}, "properties": {"repobilityId": "32bd25bae9d4c49f", "scanner": "scanner-primary", "fingerprint": "b9c410e9464150f4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-319e66a630e14977", "level": "none", "message": {"text": "2 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "d838d1fc5d8231c9", "scanner": "scanner-primary", "fingerprint": "319e66a630e14977", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-eb95e82e4077dbfa", "level": "warning", "message": {"text": "Frontend route `/freight/:id` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "85e2d83df967b893", "scanner": "scanner-primary", "fingerprint": "eb95e82e4077dbfa", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-3c5cc7fe5ea60d23", "level": "warning", "message": {"text": "Frontend route `/inventory/materials/:materialId` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "1bdb452e888a4c0b", "scanner": "scanner-primary", "fingerprint": "3c5cc7fe5ea60d23", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-bb872006666b8ae4", "level": "warning", "message": {"text": "Frontend route `/inventory/factory-orders/:id` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "e163e69063ae10fe", "scanner": "scanner-primary", "fingerprint": "bb872006666b8ae4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-3f3b7aa71503877a", "level": "warning", "message": {"text": "Frontend route `/inventory/quality-issues` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "75af7ebb2c14b2d9", "scanner": "scanner-primary", "fingerprint": "3f3b7aa71503877a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-04b2dafbf84a3889", "level": "warning", "message": {"text": "Frontend route `/economics/suppliers/:id` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "5e37ac3a821368d4", "scanner": "scanner-primary", "fingerprint": "04b2dafbf84a3889", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-c5082b8d784c2496", "level": "warning", "message": {"text": "Frontend route `/economics/:skuId` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "1ef0485cdef31cec", "scanner": "scanner-primary", "fingerprint": "c5082b8d784c2496", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-a7b8faee26b8b12e", "level": "warning", "message": {"text": "Frontend route `/supplier/orders/:id` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "31b0f23a73ba7d74", "scanner": "scanner-primary", "fingerprint": "a7b8faee26b8b12e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-40cded8c27ff42da", "level": "warning", "message": {"text": "Frontend route `/supplier/shipments/:id` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "3422eb0290889565", "scanner": "scanner-primary", "fingerprint": "40cded8c27ff42da", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-34e981057ae0ec2e", "level": "warning", "message": {"text": "Frontend route `/supplier/breakage` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "677329f87d6ecae0", "scanner": "scanner-primary", "fingerprint": "34e981057ae0ec2e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}, {"ruleId": "scanner-d7a07defe240c6a8", "level": "warning", "message": {"text": "Frontend route `/supplier/variances` has no Link/navigate to it \u2014 src/App.tsx"}, "properties": {"repobilityId": "727e4911f48ea9f2", "scanner": "scanner-primary", "fingerprint": "d7a07defe240c6a8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "orphan-page", "wiring"]}}]}]}