{"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-e9f82c2ee5bc3990", "name": "TODO/FIXME marker in shipping code \u2014 apps/api/src/env.ts:46", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/api/src/env.ts:46"}, "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-6a9141272ba88a4c", "name": "Stray `console.log` in TS/JS \u2014 apps/api/src/index.ts:180", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/index.ts:180"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3daa0a247d41f741", "name": "TODO/FIXME marker in shipping code \u2014 apps/api/src/routes/categories.ts:5", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 apps/api/src/routes/categories.ts:5"}, "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-e69cad6895916a9c", "name": "Stray `console.log` in TS/JS \u2014 apps/api/src/routes/mfg-sales-orders.ts:896", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/routes/mfg-sales-orders.ts:896"}, "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-ed97fa2dd0a5305c", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 prototype/pos-configurator.jsx:205", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototype/pos-configurator.jsx:205"}, "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-c5e22419c24d1d32", "name": "Stray `console.log` in TS/JS \u2014 packages/db/scripts/backfill-so-line-cost.ts:123", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/db/scripts/backfill-so-line-cost.ts:123"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6d87e50b3d1a6643", "name": "Insecure pattern 'document_write' in prototype/backend-drawer.jsx:108", "shortDescription": {"text": "Insecure pattern 'document_write' in prototype/backend-drawer.jsx:108"}, "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-eb684c2b4b3b9cc2", "name": "Insecure pattern 'dangerous_innerhtml' in prototype/pos-configurator.jsx:205", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in prototype/pos-configurator.jsx:205"}, "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-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-f0bf0db0a4e9cf60", "name": "Very large file: apps/api/src/routes/delivery-orders-mfg.ts (2355 lines)", "shortDescription": {"text": "Very large file: apps/api/src/routes/delivery-orders-mfg.ts (2355 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-ae10826756f4d405", "name": "Very large file: apps/api/src/routes/scan-so.ts (1475 lines)", "shortDescription": {"text": "Very large file: apps/api/src/routes/scan-so.ts (1475 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-79d5efe993283ad4", "name": "Very large file: apps/api/src/routes/consignment-orders.ts (1950 lines)", "shortDescription": {"text": "Very large file: apps/api/src/routes/consignment-orders.ts (1950 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-d2194564787aad73", "name": "Very large file: apps/api/src/routes/delivery-returns.ts (1317 lines)", "shortDescription": {"text": "Very large file: apps/api/src/routes/delivery-returns.ts (1317 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-b1ed5b664eb19468", "name": "Very large file: apps/api/src/routes/purchase-invoices.ts (1077 lines)", "shortDescription": {"text": "Very large file: apps/api/src/routes/purchase-invoices.ts (1077 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-056eada43b78f96a", "name": "Very large file: apps/api/src/routes/purchase-consignment-receives.ts (1154 lines)", "shortDescription": {"text": "Very large file: apps/api/src/routes/purchase-consignment-receives.ts (1154 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-16d8b5607718cb00", "name": "Very large file: apps/api/src/routes/purchase-returns.ts (1106 lines)", "shortDescription": {"text": "Very large file: apps/api/src/routes/purchase-returns.ts (1106 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-cb72231d6507ec23", "name": "Very large file: apps/api/src/routes/purchase-consignment-returns.ts (952 lines)", "shortDescription": {"text": "Very large file: apps/api/src/routes/purchase-consignment-returns.ts (952 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-df54a12e85835948", "name": "Very large file: apps/api/src/routes/sales-invoices.ts (1189 lines)", "shortDescription": {"text": "Very large file: apps/api/src/routes/sales-invoices.ts (1189 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-50fae60e967c71b8", "name": "Very large file: apps/api/src/routes/grns.ts (1815 lines)", "shortDescription": {"text": "Very large file: apps/api/src/routes/grns.ts (1815 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-7cd2d5d09c594814", "name": "Very large file: apps/api/src/routes/mfg-sales-orders.ts (6758 lines)", "shortDescription": {"text": "Very large file: apps/api/src/routes/mfg-sales-orders.ts (6758 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-49b7b66c5ff7e2fc", "name": "Very large file: apps/api/src/routes/mfg-purchase-orders.ts (1911 lines)", "shortDescription": {"text": "Very large file: apps/api/src/routes/mfg-purchase-orders.ts (1911 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-30ac9d7d926709ac", "name": "Very large file: apps/pos/src/lib/queries.ts (2439 lines)", "shortDescription": {"text": "Very large file: apps/pos/src/lib/queries.ts (2439 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-c6f314ad8c246965", "name": "Very large file: apps/pos/src/pages/Products.tsx (5993 lines)", "shortDescription": {"text": "Very large file: apps/pos/src/pages/Products.tsx (5993 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-75cc37da87010ff0", "name": "Very large file: apps/pos/src/pages/SalesOrderMaintenance.tsx (1433 lines)", "shortDescription": {"text": "Very large file: apps/pos/src/pages/SalesOrderMaintenance.tsx (1433 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-9832b74f42dc5f8d", "name": "Very large file: apps/pos/src/pages/CustomBuilder.tsx (2038 lines)", "shortDescription": {"text": "Very large file: apps/pos/src/pages/CustomBuilder.tsx (2038 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-651bca1303e1f3e8", "name": "Very large file: apps/pos/src/pages/Configurator.tsx (2974 lines)", "shortDescription": {"text": "Very large file: apps/pos/src/pages/Configurator.tsx (2974 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-b921a5248e4545c1", "name": "Very large file: apps/pos/src/pages/OrderStatus.tsx (1995 lines)", "shortDescription": {"text": "Very large file: apps/pos/src/pages/OrderStatus.tsx (1995 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-dee751ac8d4a6cd4", "name": "Very large file: apps/backend/src/components/DataGrid.tsx (1154 lines)", "shortDescription": {"text": "Very large file: apps/backend/src/components/DataGrid.tsx (1154 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-0399452c8fec9485", "name": "Very large file: apps/backend/src/components/SoLineCard.tsx (1415 lines)", "shortDescription": {"text": "Very large file: apps/backend/src/components/SoLineCard.tsx (1415 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-0b8a2374fe396701", "name": "Very large file: apps/backend/src/lib/flow-queries.ts (1974 lines)", "shortDescription": {"text": "Very large file: apps/backend/src/lib/flow-queries.ts (1974 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-d4c2699143ce60a0", "name": "Very large file: apps/backend/src/pages/GrnNew.tsx (1100 lines)", "shortDescription": {"text": "Very large file: apps/backend/src/pages/GrnNew.tsx (1100 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-229272a8baec8002", "name": "Very large file: apps/backend/src/pages/Mrp.tsx (1204 lines)", "shortDescription": {"text": "Very large file: apps/backend/src/pages/Mrp.tsx (1204 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-f98bd7f20d0d75dc", "name": "Very large file: apps/backend/src/pages/ConsignmentOrders.tsx (1717 lines)", "shortDescription": {"text": "Very large file: apps/backend/src/pages/ConsignmentOrders.tsx (1717 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-603dcfd4642e0e6f", "name": "Very large file: apps/backend/src/pages/MfgSalesOrdersList.tsx (1742 lines)", "shortDescription": {"text": "Very large file: apps/backend/src/pages/MfgSalesOrdersList.tsx (1742 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-a4be7f8cca1e70d5", "name": "Very large file: apps/backend/src/pages/Products.tsx (4752 lines)", "shortDescription": {"text": "Very large file: apps/backend/src/pages/Products.tsx (4752 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-2d1e7cca963b2d8b", "name": "Very large file: apps/backend/src/pages/SalesOrderDetail.tsx (2576 lines)", "shortDescription": {"text": "Very large file: apps/backend/src/pages/SalesOrderDetail.tsx (2576 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-dcd89cf363831c28", "name": "Very large file: apps/backend/src/pages/Inventory.tsx (1486 lines)", "shortDescription": {"text": "Very large file: apps/backend/src/pages/Inventory.tsx (1486 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-efe410ed3381f3ad", "name": "Very large file: apps/backend/src/pages/PurchaseOrderNew.tsx (1347 lines)", "shortDescription": {"text": "Very large file: apps/backend/src/pages/PurchaseOrderNew.tsx (1347 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-46c54fc207aad801", "name": "Very large file: apps/backend/src/pages/ProductModelDetail.tsx (1331 lines)", "shortDescription": {"text": "Very large file: apps/backend/src/pages/ProductModelDetail.tsx (1331 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-adbe6fdca08090d8", "name": "Very large file: apps/backend/src/pages/SalesOrderMaintenance.tsx (1529 lines)", "shortDescription": {"text": "Very large file: apps/backend/src/pages/SalesOrderMaintenance.tsx (1529 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-cfcf1d87b7b386f6", "name": "Very large file: apps/backend/src/pages/SupplierDetail.tsx (3807 lines)", "shortDescription": {"text": "Very large file: apps/backend/src/pages/SupplierDetail.tsx (3807 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-37b75b4d2955c344", "name": "Very large file: apps/backend/src/pages/ProductModels.tsx (2152 lines)", "shortDescription": {"text": "Very large file: apps/backend/src/pages/ProductModels.tsx (2152 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-ec23fc73d66621f1", "name": "Very large file: apps/backend/src/pages/SalesOrderNew.tsx (1298 lines)", "shortDescription": {"text": "Very large file: apps/backend/src/pages/SalesOrderNew.tsx (1298 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-421836a5e55c9535", "name": "Very large file: apps/backend/src/pages/DeliveryOrderDetail.tsx (1208 lines)", "shortDescription": {"text": "Very large file: apps/backend/src/pages/DeliveryOrderDetail.tsx (1208 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-a53645c8cf1ec918", "name": "Very large file: prototype/pos-sofa-config.jsx (2074 lines)", "shortDescription": {"text": "Very large file: prototype/pos-sofa-config.jsx (2074 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-65b487e2acff04cc", "name": "Very large file: prototype/pos-handover.jsx (1262 lines)", "shortDescription": {"text": "Very large file: prototype/pos-handover.jsx (1262 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-b5bf4b973ee05cc2", "name": "Very large file: prototype/backend-catalog.jsx (1034 lines)", "shortDescription": {"text": "Very large file: prototype/backend-catalog.jsx (1034 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-ebc53ee8716f4e86", "name": "Very large file: prototype/pos-configurator.jsx (1261 lines)", "shortDescription": {"text": "Very large file: prototype/pos-configurator.jsx (1261 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-abaca13d9d48e605", "name": "Very large file: packages/shared/src/sofa-build.ts (1651 lines)", "shortDescription": {"text": "Very large file: packages/shared/src/sofa-build.ts (1651 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-7215b934191e81ac", "name": "Very large file: packages/shared/src/__tests__/sofa-build.test.ts (1321 lines)", "shortDescription": {"text": "Very large file: packages/shared/src/__tests__/sofa-build.test.ts (1321 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-b089c9b1d411f92f", "name": "Very large file: packages/db/src/schema.ts (2798 lines)", "shortDescription": {"text": "Very large file: packages/db/src/schema.ts (2798 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ea3b5e389d8c9c0f", "name": "Low test-to-source ratio", "shortDescription": {"text": "Low test-to-source ratio"}, "fullDescription": {"text": "77 tests / 450 src (ratio 0.17)."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b06b8d86f24c77f9", "name": "Node manifest has dependencies but no lockfile: apps/api/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/api/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4b7332abdf0487ba", "name": "Node manifest has dependencies but no lockfile: apps/pos/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/pos/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-53a7af2536f80bd8", "name": "Node manifest has dependencies but no lockfile: apps/backend/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: apps/backend/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2699d5f16ae11282", "name": "Node manifest has dependencies but no lockfile: packages/shared/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/shared/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-fc789613d7976cb7", "name": "Node manifest has dependencies but no lockfile: packages/design-system/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/design-system/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-7b16ae2bd0fca524", "name": "Node manifest has dependencies but no lockfile: packages/db/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/db/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 20 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 527 placeholder/mock markers across 121 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b9088664ace7f748", "name": "Composite production-readiness gap", "shortDescription": {"text": "Composite production-readiness gap"}, "fullDescription": {"text": "Multiple low-cost hardening controls are missing together: license, lockfile. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license, lockfile. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-733c57f85fe18261", "name": "Commented-code block (7 lines) in apps/api/src/env.ts:21", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/env.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-02159b5abdfe2b9b", "name": "Commented-code block (5 lines) in apps/api/src/index.ts:160", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/index.ts:160"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a0c619a78c625f6d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/middleware/auth.ts:17", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/middleware/auth.ts:17"}, "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-bad55f5ee46f371d", "name": "Commented-code block (12 lines) in apps/api/src/lib/so-readiness.ts:11", "shortDescription": {"text": "Commented-code block (12 lines) in apps/api/src/lib/so-readiness.ts:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c7e966aeae1962a6", "name": "Commented-code block (7 lines) in apps/api/src/lib/sofa-batch-guard.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/lib/sofa-batch-guard.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8cb42b4514001657", "name": "Commented-code block (6 lines) in apps/api/src/lib/consignment-loaner.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/lib/consignment-loaner.ts: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-eeea25b503784233", "name": "Commented-code block (12 lines) in apps/api/src/lib/sofa-set-coverage.ts:5", "shortDescription": {"text": "Commented-code block (12 lines) in apps/api/src/lib/sofa-set-coverage.ts: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-c09ed3c0adad6f89", "name": "Commented-code block (7 lines) in apps/api/src/lib/free-gift-reconcile.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/lib/free-gift-reconcile.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b12d9f94c7b35171", "name": "Commented-code block (7 lines) in apps/api/src/lib/recost.ts:4", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/lib/recost.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3443592b9fae3d43", "name": "Commented-code block (5 lines) in apps/api/src/lib/cross-category-match.ts:14", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/lib/cross-category-match.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-f26dff4c08b52fac", "name": "Commented-code block (6 lines) in apps/api/src/lib/post-si-revenue.ts:9", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/lib/post-si-revenue.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c617a2a56b39d8ee", "name": "Commented-code block (6 lines) in apps/api/src/lib/customer-credits.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/lib/customer-credits.ts: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-a6a685a3f43ba77e", "name": "Commented-code block (5 lines) in apps/api/src/lib/service-line-guard.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/lib/service-line-guard.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-87c0f2436d8fc37d", "name": "Commented-code block (7 lines) in apps/api/src/lib/so-audit.ts:6", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/lib/so-audit.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-af92bcca668b5782", "name": "Commented-code block (5 lines) in apps/api/src/lib/do-line-remaining.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/lib/do-line-remaining.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-0ca6e5fff8104758", "name": "Commented-code block (8 lines) in apps/api/src/lib/pin-rate-limit.ts:8", "shortDescription": {"text": "Commented-code block (8 lines) in apps/api/src/lib/pin-rate-limit.ts:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-38d5f3882222009e", "name": "Commented-code block (9 lines) in apps/api/src/lib/allowed-options-check.ts:4", "shortDescription": {"text": "Commented-code block (9 lines) in apps/api/src/lib/allowed-options-check.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f2988e7fa170482e", "name": "Commented-code block (15 lines) in apps/api/src/lib/mfg-pricing-recompute.test.ts:3", "shortDescription": {"text": "Commented-code block (15 lines) in apps/api/src/lib/mfg-pricing-recompute.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-395639fff5e63c43", "name": "Commented-code block (5 lines) in apps/api/src/lib/so-delivery-sync.ts:11", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/lib/so-delivery-sync.ts:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ea29b38df83682ab", "name": "Commented-code block (6 lines) in apps/api/src/lib/validate-item-codes.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/lib/validate-item-codes.ts: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-cea0e24daf78a30c", "name": "Commented-code block (8 lines) in apps/api/src/lib/postgrest-search.ts:5", "shortDescription": {"text": "Commented-code block (8 lines) in apps/api/src/lib/postgrest-search.ts: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-2ca119ddf45c1bc9", "name": "Commented-code block (8 lines) in apps/api/src/lib/mfg-pricing-recompute.ts:8", "shortDescription": {"text": "Commented-code block (8 lines) in apps/api/src/lib/mfg-pricing-recompute.ts:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b08583cba046cbf5", "name": "Commented-code block (5 lines) in apps/api/src/lib/r2.ts:149", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/lib/r2.ts:149"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-adaddd852cffc0c0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/lib/r2.ts:214", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/lib/r2.ts:214"}, "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-087c8f1bc7ded85b", "name": "Commented-code block (6 lines) in apps/api/src/lib/check-stock-availability.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/lib/check-stock-availability.ts: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-586c443976e993df", "name": "Commented-code block (7 lines) in apps/api/src/lib/sku-usage.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/lib/sku-usage.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b5cbcbf36d7fd4a6", "name": "Commented-code block (15 lines) in apps/api/src/lib/so-stock-allocation.ts:13", "shortDescription": {"text": "Commented-code block (15 lines) in apps/api/src/lib/so-stock-allocation.ts:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-df58befece312e4b", "name": "Commented-code block (8 lines) in apps/api/src/lib/grn-rack-sync.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in apps/api/src/lib/grn-rack-sync.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-e36dd0fb372fbb25", "name": "Commented-code block (5 lines) in apps/api/src/lib/po-pricing.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/lib/po-pricing.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-56fde0323568f615", "name": "Commented-code block (7 lines) in apps/api/src/lib/current-doc.ts:5", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/lib/current-doc.ts: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-cc91c1df0bae75a3", "name": "Commented-code block (10 lines) in apps/api/src/lib/roles.ts:4", "shortDescription": {"text": "Commented-code block (10 lines) in apps/api/src/lib/roles.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-66c86faeb1e41a20", "name": "Commented-code block (6 lines) in apps/api/src/lib/so-variant-check.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/lib/so-variant-check.ts: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-cc64fb0326452c31", "name": "Commented-code block (10 lines) in apps/api/src/routes/sofa-combos.ts:9", "shortDescription": {"text": "Commented-code block (10 lines) in apps/api/src/routes/sofa-combos.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d6949e51b1aecb04", "name": "Commented-code block (6 lines) in apps/api/src/routes/consignment-notes.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/routes/consignment-notes.ts: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-b8a8904c14165e94", "name": "Commented-code block (6 lines) in apps/api/src/routes/special-addons.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/routes/special-addons.ts: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-2be34d1dea73231b", "name": "Commented-code block (7 lines) in apps/api/src/routes/delivery-orders-mfg.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/routes/delivery-orders-mfg.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-896e6bcc4bf22bb5", "name": "Commented-code block (6 lines) in apps/api/src/routes/maintenance-config.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/routes/maintenance-config.ts: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-f0d284bed822cec6", "name": "Commented-code block (7 lines) in apps/api/src/routes/quotes.ts:62", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/routes/quotes.ts:62"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-183c0d85953b7988", "name": "Commented-code block (5 lines) in apps/api/src/routes/pwp-rules.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/routes/pwp-rules.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-f90405be7444ed8b", "name": "Commented-code block (6 lines) in apps/api/src/routes/mfg-sales-orders-allowed-options.test.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/routes/mfg-sales-orders-allowed-options.test.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4e2d25a9a3925621", "name": "Commented-code block (5 lines) in apps/api/src/routes/consignment-returns.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/routes/consignment-returns.ts: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-e65c1621724912f3", "name": "Commented-code block (9 lines) in apps/api/src/routes/cross-category-match.test.ts:1", "shortDescription": {"text": "Commented-code block (9 lines) in apps/api/src/routes/cross-category-match.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-eea239faf6c2b3dd", "name": "Commented-code block (6 lines) in apps/api/src/routes/fabric-tracking.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/routes/fabric-tracking.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fba0d99f3eb14c82", "name": "Commented-code block (8 lines) in apps/api/src/routes/mfg-sales-orders.customer-search.test.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in apps/api/src/routes/mfg-sales-orders.customer-search.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-ba6dbafa7060e727", "name": "Commented-code block (12 lines) in apps/api/src/routes/accounting.ts:4", "shortDescription": {"text": "Commented-code block (12 lines) in apps/api/src/routes/accounting.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1988389b83b84fd4", "name": "Commented-code block (15 lines) in apps/api/src/routes/purchase-consignment-orders.ts:5", "shortDescription": {"text": "Commented-code block (15 lines) in apps/api/src/routes/purchase-consignment-orders.ts: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-a575ecc78bc480bf", "name": "Commented-code block (6 lines) in apps/api/src/routes/stock-transfers.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/routes/stock-transfers.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3d9531f5bcab2724", "name": "Commented-code block (5 lines) in apps/api/src/routes/model-free-gifts.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/routes/model-free-gifts.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-09ebcfb923adfe3b", "name": "Commented-code block (5 lines) in apps/api/src/routes/stock-takes.ts:9", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/routes/stock-takes.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8aa45d6393399e70", "name": "Commented-code block (6 lines) in apps/api/src/routes/document-flow.ts:12", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/routes/document-flow.ts:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-057328bebdc56eef", "name": "Commented-code block (6 lines) in apps/api/src/routes/localities.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/routes/localities.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dc81587ad94aa5e4", "name": "Commented-code block (6 lines) in apps/api/src/routes/so-settings.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/routes/so-settings.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-6da35d774e1eacc2", "name": "Commented-code block (9 lines) in apps/api/src/routes/product-models.ts:8", "shortDescription": {"text": "Commented-code block (9 lines) in apps/api/src/routes/product-models.ts:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8d3e0dbe327f602e", "name": "Commented-code block (8 lines) in apps/api/src/routes/reports.ts:10", "shortDescription": {"text": "Commented-code block (8 lines) in apps/api/src/routes/reports.ts:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-73c206113e09656f", "name": "Commented-code block (17 lines) in apps/api/src/routes/scan-so.ts:6", "shortDescription": {"text": "Commented-code block (17 lines) in apps/api/src/routes/scan-so.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-4f55b044bcedceea", "name": "Commented-code block (9 lines) in apps/api/src/routes/consignment-orders.ts:8", "shortDescription": {"text": "Commented-code block (9 lines) in apps/api/src/routes/consignment-orders.ts:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cd03e12d51bdee4a", "name": "Commented-code block (6 lines) in apps/api/src/routes/slips.ts:30", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/routes/slips.ts: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-0944e6c190e7867e", "name": "Commented-code block (5 lines) in apps/api/src/routes/state-warehouse-mappings.ts:7", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/routes/state-warehouse-mappings.ts: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-0f71d17634bc3f19", "name": "Commented-code block (5 lines) in apps/api/src/routes/so-dropdown-options.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/routes/so-dropdown-options.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-efa4d9770615899d", "name": "Legacy-named symbol `useLegacy` in apps/api/src/routes/mrp.ts:472", "shortDescription": {"text": "Legacy-named symbol `useLegacy` in apps/api/src/routes/mrp.ts:472"}, "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-e7ffd39b6e56accf", "name": "Commented-code block (5 lines) in apps/api/src/routes/mrp.ts:9", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/routes/mrp.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0a4f7534da796f6d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/routes/mrp.ts:306", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/routes/mrp.ts:306"}, "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-18baa531b35fb782", "name": "Commented-code block (5 lines) in apps/api/src/routes/delivery-returns.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/routes/delivery-returns.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6a16ba56d931b963", "name": "Commented-code block (5 lines) in apps/api/src/routes/products.ts:32", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/routes/products.ts:32"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fbb5d6fe83b5d44b", "name": "Commented-code block (6 lines) in apps/api/src/routes/purchase-consignment-receives.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/routes/purchase-consignment-receives.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-24c4e95aa29668b7", "name": "Commented-code block (7 lines) in apps/api/src/routes/pwp-codes.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/routes/pwp-codes.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-6a79e373a2bb24f1", "name": "Commented-code block (10 lines) in apps/api/src/routes/warehouse.ts:13", "shortDescription": {"text": "Commented-code block (10 lines) in apps/api/src/routes/warehouse.ts:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1dec8423cf8940e0", "name": "Commented-code block (5 lines) in apps/api/src/routes/mfg-products.ts:12", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/routes/mfg-products.ts:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-432e4692dcdace3c", "name": "Commented-code block (8 lines) in apps/api/src/routes/purchase-returns.ts:7", "shortDescription": {"text": "Commented-code block (8 lines) in apps/api/src/routes/purchase-returns.ts: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-f1352a8f3833af90", "name": "Commented-code block (5 lines) in apps/api/src/routes/sofa-compartment-photos.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/routes/sofa-compartment-photos.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-58fb49ddda3c2c3b", "name": "Commented-code block (5 lines) in apps/api/src/routes/model-free-gifts.test.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/routes/model-free-gifts.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-632335f8c94a77e8", "name": "Commented-code block (6 lines) in apps/api/src/routes/purchase-consignment-returns.ts:7", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/routes/purchase-consignment-returns.ts: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-09db79710f532003", "name": "Commented-code block (5 lines) in apps/api/src/routes/sales-invoices.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/routes/sales-invoices.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-df0994eca26fe6f5", "name": "Commented-code block (8 lines) in apps/api/src/routes/pos.ts:259", "shortDescription": {"text": "Commented-code block (8 lines) in apps/api/src/routes/pos.ts:259"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7ec01d151e265596", "name": "Commented-code block (5 lines) in apps/api/src/routes/admin.ts:169", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/routes/admin.ts:169"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dd4df2a66c0ac940", "name": "Commented-code block (5 lines) in apps/api/src/routes/grns.ts:60", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/routes/grns.ts:60"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f0fab948af2c509c", "name": "Commented-code block (5 lines) in apps/api/src/routes/personal-quick-picks.ts:12", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/routes/personal-quick-picks.ts:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cd693f05012bddac", "name": "Commented-code block (7 lines) in apps/api/src/routes/mfg-products.test.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in apps/api/src/routes/mfg-products.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-2c2c296251f8ae5e", "name": "Commented-code block (5 lines) in apps/api/src/routes/venues.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/routes/venues.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e75c07240162299b", "name": "Commented-code block (5 lines) in apps/api/src/routes/outstanding.ts:19", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/routes/outstanding.ts:19"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d4842efbb57cdaa5", "name": "Commented-code block (6 lines) in apps/api/src/routes/slips.test.ts:44", "shortDescription": {"text": "Commented-code block (6 lines) in apps/api/src/routes/slips.test.ts:44"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b2a72e8fadcaabee", "name": "Commented-code block (5 lines) in apps/api/src/routes/mfg-sales-orders.ts:474", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/routes/mfg-sales-orders.ts:474"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-023213ad8a8f2935", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/routes/mfg-sales-orders.ts:1036", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/routes/mfg-sales-orders.ts:1036"}, "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-390c8d39518f609d", "name": "Commented-code block (8 lines) in apps/api/src/routes/mfg-purchase-orders.ts:9", "shortDescription": {"text": "Commented-code block (8 lines) in apps/api/src/routes/mfg-purchase-orders.ts:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4354e68b9f378442", "name": "Commented-code block (5 lines) in apps/api/src/routes/audit-log.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/api/src/routes/audit-log.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-50c9630a8466021e", "name": "Commented-code block (15 lines) in apps/api/src/routes/inventory.ts:8", "shortDescription": {"text": "Commented-code block (15 lines) in apps/api/src/routes/inventory.ts:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-581b7ef4a767ffd1", "name": "Commented-code block (7 lines) in apps/pos/vite.config.ts:42", "shortDescription": {"text": "Commented-code block (7 lines) in apps/pos/vite.config.ts: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-4f868072a8694cc7", "name": "Commented-code block (5 lines) in apps/pos/src/main.tsx:15", "shortDescription": {"text": "Commented-code block (5 lines) in apps/pos/src/main.tsx:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-22798e31d92ac1fb", "name": "Commented-code block (6 lines) in apps/pos/src/components/AuthGate.tsx:9", "shortDescription": {"text": "Commented-code block (6 lines) in apps/pos/src/components/AuthGate.tsx:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1c7d95d4bc76ca2e", "name": "Commented-code block (6 lines) in apps/pos/src/components/MaintainGate.tsx:5", "shortDescription": {"text": "Commented-code block (6 lines) in apps/pos/src/components/MaintainGate.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d5585f66c40b16c3", "name": "Commented-code block (5 lines) in apps/pos/src/components/BedframeOptions.tsx:24", "shortDescription": {"text": "Commented-code block (5 lines) in apps/pos/src/components/BedframeOptions.tsx:24"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f63f9667168cc0f1", "name": "Commented-code block (7 lines) in apps/pos/src/components/TbcLineEditor.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in apps/pos/src/components/TbcLineEditor.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eb86a869e2d9273e", "name": "Commented-code block (5 lines) in apps/pos/src/components/SpecialAddonsPicker.tsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in apps/pos/src/components/SpecialAddonsPicker.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-0f0845dd811eb4f7", "name": "Commented-code block (5 lines) in apps/pos/src/components/CustomerNameSearch.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/pos/src/components/CustomerNameSearch.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-316e6886ca0fcc9b", "name": "Commented-code block (11 lines) in apps/pos/src/components/SofaCellsPreview.tsx:62", "shortDescription": {"text": "Commented-code block (11 lines) in apps/pos/src/components/SofaCellsPreview.tsx:62"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-645fe00bccf18f7c", "name": "Commented-code block (6 lines) in apps/pos/src/components/handover/StepFooter.tsx:47", "shortDescription": {"text": "Commented-code block (6 lines) in apps/pos/src/components/handover/StepFooter.tsx:47"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f88b4dfa452d8017", "name": "Commented-code block (8 lines) in apps/pos/src/components/products/SofaComboTab.tsx:8", "shortDescription": {"text": "Commented-code block (8 lines) in apps/pos/src/components/products/SofaComboTab.tsx:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8fe71ce32a24147a", "name": "Commented-code block (5 lines) in apps/pos/src/components/products/PwpRulesTab.tsx:11", "shortDescription": {"text": "Commented-code block (5 lines) in apps/pos/src/components/products/PwpRulesTab.tsx:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f418f7bdc8220fe6", "name": "Commented-code block (5 lines) in apps/pos/src/lib/pos-handover-so.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in apps/pos/src/lib/pos-handover-so.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5a022fd0e067a642", "name": "Commented-code block (7 lines) in apps/pos/src/lib/sofa-seamless.tsx:73", "shortDescription": {"text": "Commented-code block (7 lines) in apps/pos/src/lib/sofa-seamless.tsx:73"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6edc69ecb28aacbf", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/lib/quotes.ts:53", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/lib/quotes.ts:53"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cd264d8dfe040b1e", "name": "Commented-code block (5 lines) in apps/pos/src/lib/handover-helpers.ts:181", "shortDescription": {"text": "Commented-code block (5 lines) in apps/pos/src/lib/handover-helpers.ts:181"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2fff004f2f3c7de3", "name": "Commented-code block (7 lines) in apps/pos/src/lib/customer-search.ts:4", "shortDescription": {"text": "Commented-code block (7 lines) in apps/pos/src/lib/customer-search.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a69bb22545162f83", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/lib/customer-search.ts:87", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/lib/customer-search.ts:87"}, "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-a2aa6e2c7d46b845", "name": "Commented-code block (8 lines) in apps/pos/src/lib/pwp-code-sync.ts:67", "shortDescription": {"text": "Commented-code block (8 lines) in apps/pos/src/lib/pwp-code-sync.ts: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-c6cfbff5815bae8f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/lib/staff.ts:87", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/lib/staff.ts:87"}, "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-c54ba75d05dc3a42", "name": "Commented-code block (6 lines) in apps/pos/src/lib/queries.ts:181", "shortDescription": {"text": "Commented-code block (6 lines) in apps/pos/src/lib/queries.ts:181"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-15f8488ccca168ff", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/lib/queries.ts:42", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/lib/queries.ts:42"}, "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-0820ac257527ebeb", "name": "Commented-code block (8 lines) in apps/pos/src/lib/cart-sync.ts:81", "shortDescription": {"text": "Commented-code block (8 lines) in apps/pos/src/lib/cart-sync.ts:81"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-30c6aee4181c56ef", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/lib/slip.ts:50", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/lib/slip.ts:50"}, "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-1e06594f5b8649cd", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/lib/personal-quick-picks.ts:54", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/lib/personal-quick-picks.ts:54"}, "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-2e7e498b0b341819", "name": "Commented-code block (6 lines) in apps/pos/src/lib/sofa-art.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/pos/src/lib/sofa-art.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-cc8ec270d8ac6f15", "name": "Commented-code block (10 lines) in apps/pos/src/lib/sofa-corner.tsx:4", "shortDescription": {"text": "Commented-code block (10 lines) in apps/pos/src/lib/sofa-corner.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3fb8d3a79fadc854", "name": "Commented-code block (8 lines) in apps/pos/src/lib/session-recovery.ts:5", "shortDescription": {"text": "Commented-code block (8 lines) in apps/pos/src/lib/session-recovery.ts: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-5a99232fcf191844", "name": "Commented-code block (5 lines) in apps/pos/src/lib/pos-handover-so.test.ts:95", "shortDescription": {"text": "Commented-code block (5 lines) in apps/pos/src/lib/pos-handover-so.test.ts:95"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-dbf9df3a752107d8", "name": "Commented-code block (6 lines) in apps/pos/src/lib/so-doc.ts:163", "shortDescription": {"text": "Commented-code block (6 lines) in apps/pos/src/lib/so-doc.ts: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-10920e81756642e9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/lib/so-doc.ts:120", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/lib/so-doc.ts:120"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f304045a73dabbe7", "name": "Commented-code block (5 lines) in apps/pos/src/lib/so-maintenance/warehouses-queries.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/pos/src/lib/so-maintenance/warehouses-queries.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-c39a9890326fea10", "name": "Commented-code block (7 lines) in apps/pos/src/lib/so-maintenance/so-settings-queries.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in apps/pos/src/lib/so-maintenance/so-settings-queries.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-5142d6d103b1d3e8", "name": "Commented-code block (6 lines) in apps/pos/src/lib/so-maintenance/so-dropdown-options-queries.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in apps/pos/src/lib/so-maintenance/so-dropdown-options-queries.ts: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-46b3a491738fba17", "name": "Commented-code block (6 lines) in apps/pos/src/lib/so-maintenance/state-warehouse-queries.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/pos/src/lib/so-maintenance/state-warehouse-queries.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-425e5b5d6378b80a", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/lib/products/product-models-queries.ts:223", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/lib/products/product-models-queries.ts:223"}, "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-23a78a5ea6787aca", "name": "Commented-code block (5 lines) in apps/pos/src/lib/products/mfg-products-queries.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in apps/pos/src/lib/products/mfg-products-queries.ts: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-2c0a880b442e59ff", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/lib/products/mfg-products-queries.ts:604", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/lib/products/mfg-products-queries.ts:604"}, "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-3c07f8e72523392c", "name": "Commented-code block (6 lines) in apps/pos/src/lib/products/pwp-queries.ts:104", "shortDescription": {"text": "Commented-code block (6 lines) in apps/pos/src/lib/products/pwp-queries.ts:104"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e4e7e8bb88338bec", "name": "Commented-code block (5 lines) in apps/pos/src/lib/products/fabric-queries.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in apps/pos/src/lib/products/fabric-queries.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-60b782ef1ac7e282", "name": "Commented-code block (5 lines) in apps/pos/src/lib/products/size-info.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in apps/pos/src/lib/products/size-info.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c551f080e0b89414", "name": "Commented-code block (5 lines) in apps/pos/src/pages/NewOrder.tsx:7", "shortDescription": {"text": "Commented-code block (5 lines) in apps/pos/src/pages/NewOrder.tsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-19de5ffdaa8bb998", "name": "Commented-code block (9 lines) in apps/pos/src/pages/Products.tsx:4", "shortDescription": {"text": "Commented-code block (9 lines) in apps/pos/src/pages/Products.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0e870dc90a2f3e53", "name": "Commented-code block (9 lines) in apps/pos/src/pages/SetPassword.tsx:8", "shortDescription": {"text": "Commented-code block (9 lines) in apps/pos/src/pages/SetPassword.tsx:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c71e54cfdb3106c9", "name": "Commented-code block (7 lines) in apps/pos/src/pages/Handover.tsx:205", "shortDescription": {"text": "Commented-code block (7 lines) in apps/pos/src/pages/Handover.tsx:205"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f94a018c464ca4aa", "name": "Commented-code block (7 lines) in apps/pos/src/pages/HandoverConfirmed.tsx:3", "shortDescription": {"text": "Commented-code block (7 lines) in apps/pos/src/pages/HandoverConfirmed.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-53c144174f73e64b", "name": "Commented-code block (5 lines) in apps/pos/src/pages/SalesOrderMaintenance.tsx:10", "shortDescription": {"text": "Commented-code block (5 lines) in apps/pos/src/pages/SalesOrderMaintenance.tsx:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f7fec70d28ace917", "name": "Commented-code block (5 lines) in apps/pos/src/pages/CustomBuilder.tsx:47", "shortDescription": {"text": "Commented-code block (5 lines) in apps/pos/src/pages/CustomBuilder.tsx:47"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-449e261a45e7081c", "name": "Commented-code block (5 lines) in apps/pos/src/pages/Catalog.tsx:38", "shortDescription": {"text": "Commented-code block (5 lines) in apps/pos/src/pages/Catalog.tsx:38"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0c721fbdee6b81ae", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/pages/Catalog.tsx:196", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/pages/Catalog.tsx:196"}, "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-33d4938ef3c026f9", "name": "Commented-code block (7 lines) in apps/pos/src/pages/ChangePin.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in apps/pos/src/pages/ChangePin.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-64a576d9e2e88e08", "name": "Commented-code block (10 lines) in apps/pos/src/pages/Configurator.tsx:98", "shortDescription": {"text": "Commented-code block (10 lines) in apps/pos/src/pages/Configurator.tsx:98"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-efcdb20d70fe81d4", "name": "Commented-code block (5 lines) in apps/pos/src/pages/OrderStatus.tsx:1322", "shortDescription": {"text": "Commented-code block (5 lines) in apps/pos/src/pages/OrderStatus.tsx:1322"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3976dd39ba4032e8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/pages/OrderStatus.tsx:223", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/pages/OrderStatus.tsx:223"}, "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-b740a93b4df586fe", "name": "Commented-code block (6 lines) in apps/backend/vite.config.ts:32", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/vite.config.ts:32"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fb40fd98ffea76a3", "name": "Commented-code block (6 lines) in apps/backend/src/router.tsx:11", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/router.tsx:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8ce9524292e83fa0", "name": "Commented-code block (8 lines) in apps/backend/src/components/SofaComboTab.tsx:8", "shortDescription": {"text": "Commented-code block (8 lines) in apps/backend/src/components/SofaComboTab.tsx:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6ec2a18e5854067c", "name": "Commented-code block (6 lines) in apps/backend/src/components/CommandPalette.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/components/CommandPalette.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2172a57e25d87d1f", "name": "Commented-code block (5 lines) in apps/backend/src/components/SpecialAddonsTab.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/components/SpecialAddonsTab.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b243e278cfd4bb63", "name": "Commented-code block (5 lines) in apps/backend/src/components/ConfirmDialog.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/components/ConfirmDialog.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-717faf4e61a74daa", "name": "Commented-code block (10 lines) in apps/backend/src/components/PaymentsTable.tsx:9", "shortDescription": {"text": "Commented-code block (10 lines) in apps/backend/src/components/PaymentsTable.tsx:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-162eb163e0c88577", "name": "Commented-code block (6 lines) in apps/backend/src/components/DocumentFlowModal.tsx:3", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/components/DocumentFlowModal.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-49520d0395685e9b", "name": "Commented-code block (5 lines) in apps/backend/src/components/SmartButtons.tsx:7", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/components/SmartButtons.tsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4a1b1e76beff0f85", "name": "Commented-code block (5 lines) in apps/backend/src/components/VariantDescription.tsx:12", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/components/VariantDescription.tsx:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f1314c5344415adf", "name": "Commented-code block (11 lines) in apps/backend/src/components/SofaSetDialog.tsx:8", "shortDescription": {"text": "Commented-code block (11 lines) in apps/backend/src/components/SofaSetDialog.tsx:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5581064ae9a3752f", "name": "Commented-code block (6 lines) in apps/backend/src/components/FabricsTable.tsx:11", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/components/FabricsTable.tsx:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1c704adae62387fa", "name": "Commented-code block (6 lines) in apps/backend/src/components/PcVariantEditor.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/components/PcVariantEditor.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8603a5dae1f73448", "name": "Commented-code block (13 lines) in apps/backend/src/components/DataGrid.tsx:3", "shortDescription": {"text": "Commented-code block (13 lines) in apps/backend/src/components/DataGrid.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b337e7235cbf99b4", "name": "Commented-code block (5 lines) in apps/backend/src/components/SoLineCard.tsx:16", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/components/SoLineCard.tsx:16"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1d881e2b034cdaa6", "name": "Commented-code block (6 lines) in apps/backend/src/components/SofaSetInline.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/components/SofaSetInline.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-43010bd7b0abb225", "name": "Commented-code block (6 lines) in apps/backend/src/components/ErrorBoundary.tsx:59", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/components/ErrorBoundary.tsx:59"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ddb2669a7b14aebc", "name": "Commented-code block (12 lines) in apps/backend/src/components/ScanOrderModal.tsx:4", "shortDescription": {"text": "Commented-code block (12 lines) in apps/backend/src/components/ScanOrderModal.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-74b6861dc12abe90", "name": "Commented-code block (7 lines) in apps/backend/src/components/Toast.tsx:14", "shortDescription": {"text": "Commented-code block (7 lines) in apps/backend/src/components/Toast.tsx: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-4490cac59edd5e40", "name": "Commented-code block (5 lines) in apps/backend/src/components/DetailListingShell.tsx:9", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/components/DetailListingShell.tsx:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1d601cbd9d40bc9e", "name": "Commented-code block (5 lines) in apps/backend/src/components/LoadingButton.tsx:8", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/components/LoadingButton.tsx:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cb09228d617d342b", "name": "Commented-code block (5 lines) in apps/backend/src/components/SupplyCategoryPicker.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/components/SupplyCategoryPicker.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fd7bab5af1bc937f", "name": "Commented-code block (5 lines) in apps/backend/src/components/MultiSupplierPicker.tsx:8", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/components/MultiSupplierPicker.tsx:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-37effacc36234ac3", "name": "Commented-code block (6 lines) in apps/backend/src/components/Layout.tsx:55", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/components/Layout.tsx:55"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b193f2e34a9cea29", "name": "Commented-code block (6 lines) in apps/backend/src/components/PhoneInput.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/components/PhoneInput.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ccb75bca6fe64c72", "name": "Commented-code block (6 lines) in apps/backend/src/components/ActionResultDialog.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/components/ActionResultDialog.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-39cd455dfdbe052b", "name": "Commented-code block (12 lines) in apps/backend/src/components/MoneyInput.tsx:4", "shortDescription": {"text": "Commented-code block (12 lines) in apps/backend/src/components/MoneyInput.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3e5ed94781c60e16", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/backend/src/lib/product-models-queries.ts:268", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/backend/src/lib/product-models-queries.ts:268"}, "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-c3c503440a9da65d", "name": "Commented-code block (7 lines) in apps/backend/src/lib/so-status.ts:3", "shortDescription": {"text": "Commented-code block (7 lines) in apps/backend/src/lib/so-status.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4ce844105dd59c40", "name": "Commented-code block (5 lines) in apps/backend/src/lib/auth.tsx:125", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/lib/auth.tsx:125"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d07bb8a2e757198f", "name": "Commented-code block (6 lines) in apps/backend/src/lib/category-badges.tsx:8", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/lib/category-badges.tsx:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bb75be3c3dfd04be", "name": "Commented-code block (5 lines) in apps/backend/src/lib/mfg-products-queries.ts:5", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/lib/mfg-products-queries.ts: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-9a4091146e5e35e0", "name": "Commented-code block (11 lines) in apps/backend/src/lib/pos-remark-special.ts:6", "shortDescription": {"text": "Commented-code block (11 lines) in apps/backend/src/lib/pos-remark-special.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-5879a586a1f96ded", "name": "Commented-code block (5 lines) in apps/backend/src/lib/consignment-note-queries.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/lib/consignment-note-queries.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-308761a5abaf9726", "name": "Commented-code block (5 lines) in apps/backend/src/lib/purchase-consignment-return-queries.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/lib/purchase-consignment-return-queries.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-f18a96e066ae2343", "name": "Commented-code block (9 lines) in apps/backend/src/lib/localities-queries.ts:1", "shortDescription": {"text": "Commented-code block (9 lines) in apps/backend/src/lib/localities-queries.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-6c9cd7717ee6f5c0", "name": "Commented-code block (5 lines) in apps/backend/src/lib/consignment-order-queries.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/lib/consignment-order-queries.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-3f80cc98809f3035", "name": "Commented-code block (5 lines) in apps/backend/src/lib/supplier-categories.ts:8", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/lib/supplier-categories.ts:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a42aecf7b1767d4a", "name": "Commented-code block (5 lines) in apps/backend/src/lib/consignment-return-queries.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/lib/consignment-return-queries.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-f9cd4811d479367e", "name": "Commented-code block (6 lines) in apps/backend/src/lib/users-queries.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/lib/users-queries.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3442f80533f90068", "name": "Commented-code block (5 lines) in apps/backend/src/lib/nav-items.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/lib/nav-items.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-a2fcaf9dedd62b79", "name": "Commented-code block (6 lines) in apps/backend/src/lib/supplier-sku-helpers.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/lib/supplier-sku-helpers.ts: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-546f77efe8b8c17e", "name": "Commented-code block (5 lines) in apps/backend/src/lib/fabric-queries.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/lib/fabric-queries.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3ade6b3ee9bb9e3e", "name": "Commented-code block (5 lines) in apps/backend/src/lib/purchase-consignment-receive-queries.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/lib/purchase-consignment-receive-queries.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-766154b556bda56d", "name": "Commented-code block (10 lines) in apps/backend/src/lib/po-status.ts:5", "shortDescription": {"text": "Commented-code block (10 lines) in apps/backend/src/lib/po-status.ts: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-94c913c5dde853e6", "name": "Commented-code block (7 lines) in apps/backend/src/lib/so-settings-queries.ts:1", "shortDescription": {"text": "Commented-code block (7 lines) in apps/backend/src/lib/so-settings-queries.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-0d7105222d0c99fb", "name": "Commented-code block (6 lines) in apps/backend/src/lib/venues-queries.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/lib/venues-queries.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-b36428cb0891c56a", "name": "Commented-code block (5 lines) in apps/backend/src/lib/queries.ts:21", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/lib/queries.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-a8ce03d6ca150b79", "name": "Commented-code block (26 lines) in apps/backend/src/lib/purchase-order-pdf.ts:7", "shortDescription": {"text": "Commented-code block (26 lines) in apps/backend/src/lib/purchase-order-pdf.ts: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-c9e67fc08449e4df", "name": "Commented-code block (6 lines) in apps/backend/src/lib/supabase.ts:16", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/lib/supabase.ts:16"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ef25ee3a4798e1af", "name": "Commented-code block (9 lines) in apps/backend/src/lib/so-line-description.ts:8", "shortDescription": {"text": "Commented-code block (9 lines) in apps/backend/src/lib/so-line-description.ts:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d231c841be163032", "name": "Commented-code block (6 lines) in apps/backend/src/lib/admin-queries.ts:5", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/lib/admin-queries.ts: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-72b4d622faa9a700", "name": "Commented-code block (5 lines) in apps/backend/src/lib/verified-save.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/lib/verified-save.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-42d8038e79dc73d3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/backend/src/lib/verified-save.ts:86", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/backend/src/lib/verified-save.ts:86"}, "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-074659592086db44", "name": "Commented-code block (7 lines) in apps/backend/src/lib/dates.ts:4", "shortDescription": {"text": "Commented-code block (7 lines) in apps/backend/src/lib/dates.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7330c06668322834", "name": "Commented-code block (19 lines) in apps/backend/src/lib/sales-order-pdf.ts:31", "shortDescription": {"text": "Commented-code block (19 lines) in apps/backend/src/lib/sales-order-pdf.ts: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-4912f9ab28b61018", "name": "Commented-code block (5 lines) in apps/backend/src/lib/purchase-consignment-order-queries.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/lib/purchase-consignment-order-queries.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-d3df81bb45e26be3", "name": "Commented-code block (5 lines) in apps/backend/src/lib/authed-fetch.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/lib/authed-fetch.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-f68ab1772b3ceb1c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/backend/src/lib/authed-fetch.ts:80", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/backend/src/lib/authed-fetch.ts:80"}, "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-5a4e993eb067f208", "name": "Commented-code block (6 lines) in apps/backend/src/lib/flow-queries.ts:342", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/lib/flow-queries.ts:342"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ff0b41727ee4d4c8", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/backend/src/lib/slip.ts:94", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/backend/src/lib/slip.ts:94"}, "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-4b85fd905dd893cd", "name": "Commented-code block (6 lines) in apps/backend/src/lib/supplier-doc-data.ts:10", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/lib/supplier-doc-data.ts:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f25ffc93d7538809", "name": "Commented-code block (5 lines) in apps/backend/src/lib/size-info.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/lib/size-info.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3ad38557ef2af136", "name": "Commented-code block (6 lines) in apps/backend/src/pages/GoodsReceivedDetail.tsx:8", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/GoodsReceivedDetail.tsx:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-71eaf8716e61bcfc", "name": "Commented-code block (10 lines) in apps/backend/src/pages/GrnNew.tsx:7", "shortDescription": {"text": "Commented-code block (10 lines) in apps/backend/src/pages/GrnNew.tsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5ad0816cdbf2b53a", "name": "Commented-code block (5 lines) in apps/backend/src/pages/ConsignmentNoteDetail.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/ConsignmentNoteDetail.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8e3400645373b225", "name": "Commented-code block (6 lines) in apps/backend/src/pages/GrnFromPo.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/GrnFromPo.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e612fadbddbd1ca9", "name": "Commented-code block (5 lines) in apps/backend/src/pages/SalesInvoiceNew.tsx:8", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/SalesInvoiceNew.tsx:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-918c84a4a071f6a7", "name": "Commented-code block (7 lines) in apps/backend/src/pages/ConsignmentNoteFromOrder.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in apps/backend/src/pages/ConsignmentNoteFromOrder.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-57e3b018f83b2397", "name": "Commented-code block (6 lines) in apps/backend/src/pages/StockAdjustments.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/StockAdjustments.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-dfcb73f040d98afb", "name": "Commented-code block (6 lines) in apps/backend/src/pages/SalesInvoiceDetail.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/SalesInvoiceDetail.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b1c8d1c8582ade0c", "name": "Commented-code block (6 lines) in apps/backend/src/pages/PurchaseConsignmentOrders.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/PurchaseConsignmentOrders.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b1f771e3eda7009a", "name": "Commented-code block (6 lines) in apps/backend/src/pages/Mrp.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/Mrp.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c974e715573a9e0a", "name": "Commented-code block (16 lines) in apps/backend/src/pages/ConsignmentOrders.tsx:3", "shortDescription": {"text": "Commented-code block (16 lines) in apps/backend/src/pages/ConsignmentOrders.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-03d882fabf32a2fe", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/backend/src/pages/ConsignmentOrders.tsx:937", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/backend/src/pages/ConsignmentOrders.tsx:937"}, "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-4b8cd40c9b28cc98", "name": "Commented-code block (16 lines) in apps/backend/src/pages/MfgSalesOrdersList.tsx:3", "shortDescription": {"text": "Commented-code block (16 lines) in apps/backend/src/pages/MfgSalesOrdersList.tsx:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-53414f9b7a6d5831", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/backend/src/pages/MfgSalesOrdersList.tsx:940", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/backend/src/pages/MfgSalesOrdersList.tsx:940"}, "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-3f1c190cdc64c532", "name": "Commented-code block (5 lines) in apps/backend/src/pages/PurchaseOrders.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/PurchaseOrders.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8e2dee13b31d4d39", "name": "Commented-code block (7 lines) in apps/backend/src/pages/PurchaseInvoiceDetail.tsx:9", "shortDescription": {"text": "Commented-code block (7 lines) in apps/backend/src/pages/PurchaseInvoiceDetail.tsx:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f2ca806899fe7840", "name": "Commented-code block (7 lines) in apps/backend/src/pages/StockTakeDetail.tsx:4", "shortDescription": {"text": "Commented-code block (7 lines) in apps/backend/src/pages/StockTakeDetail.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7e4947154c0ed859", "name": "Commented-code block (14 lines) in apps/backend/src/pages/PurchaseOrderDetail.tsx:13", "shortDescription": {"text": "Commented-code block (14 lines) in apps/backend/src/pages/PurchaseOrderDetail.tsx: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-889a15b34abdae49", "name": "Commented-code block (9 lines) in apps/backend/src/pages/Products.tsx:4", "shortDescription": {"text": "Commented-code block (9 lines) in apps/backend/src/pages/Products.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c402444c19779038", "name": "Commented-code block (7 lines) in apps/backend/src/pages/ConsignmentReturnFromNote.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in apps/backend/src/pages/ConsignmentReturnFromNote.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7cad4b16469e0d0e", "name": "Commented-code block (7 lines) in apps/backend/src/pages/Warehouse.tsx:4", "shortDescription": {"text": "Commented-code block (7 lines) in apps/backend/src/pages/Warehouse.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4b91e7a87107aff0", "name": "Commented-code block (10 lines) in apps/backend/src/pages/SalesOrderDetail.tsx:4", "shortDescription": {"text": "Commented-code block (10 lines) in apps/backend/src/pages/SalesOrderDetail.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1a6e92d22669e42d", "name": "Commented-code block (8 lines) in apps/backend/src/pages/Inventory.tsx:4", "shortDescription": {"text": "Commented-code block (8 lines) in apps/backend/src/pages/Inventory.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7a8aa1a0079966a9", "name": "Commented-code block (5 lines) in apps/backend/src/pages/DeliveryReturnNew.tsx:142", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/DeliveryReturnNew.tsx:142"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3783c738a6f8357e", "name": "Commented-code block (6 lines) in apps/backend/src/pages/Suppliers.tsx:45", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/Suppliers.tsx:45"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-28325fb60c0bd32c", "name": "Commented-code block (7 lines) in apps/backend/src/pages/Users.tsx:14", "shortDescription": {"text": "Commented-code block (7 lines) in apps/backend/src/pages/Users.tsx: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-21349a5a72033e77", "name": "Commented-code block (8 lines) in apps/backend/src/pages/FabricTracking.tsx:7", "shortDescription": {"text": "Commented-code block (8 lines) in apps/backend/src/pages/FabricTracking.tsx:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e4c5aef63822e018", "name": "Commented-code block (10 lines) in apps/backend/src/pages/SalesInvoiceFromDo.tsx:5", "shortDescription": {"text": "Commented-code block (10 lines) in apps/backend/src/pages/SalesInvoiceFromDo.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4f05b63a6c054c69", "name": "Commented-code block (6 lines) in apps/backend/src/pages/SetPassword.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/SetPassword.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-795fcb6a20be426c", "name": "Commented-code block (5 lines) in apps/backend/src/pages/StockTakeNew.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/StockTakeNew.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-311dc94930c35786", "name": "Commented-code block (5 lines) in apps/backend/src/pages/Drivers.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/Drivers.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1b5cccc6584a24e5", "name": "Commented-code block (6 lines) in apps/backend/src/pages/PurchaseConsignmentReturnNew.tsx:5", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/PurchaseConsignmentReturnNew.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-75dbd39024f381d6", "name": "Commented-code block (14 lines) in apps/backend/src/pages/SalesOrderDetailListing.tsx:9", "shortDescription": {"text": "Commented-code block (14 lines) in apps/backend/src/pages/SalesOrderDetailListing.tsx:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ba067f62cbef41ef", "name": "Commented-code block (8 lines) in apps/backend/src/pages/PurchaseOrderNew.tsx:9", "shortDescription": {"text": "Commented-code block (8 lines) in apps/backend/src/pages/PurchaseOrderNew.tsx:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c2f4eb56f5e5e4f1", "name": "Commented-code block (6 lines) in apps/backend/src/pages/DeliveryReturnsList.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/DeliveryReturnsList.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8f27401e8138914d", "name": "Commented-code block (7 lines) in apps/backend/src/pages/PurchaseReturnDetail.tsx:9", "shortDescription": {"text": "Commented-code block (7 lines) in apps/backend/src/pages/PurchaseReturnDetail.tsx:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e62e770ed3817301", "name": "Commented-code block (5 lines) in apps/backend/src/pages/Sso.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/Sso.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-72e3bbf03cfcb7a2", "name": "Commented-code block (6 lines) in apps/backend/src/pages/PurchaseConsignmentReceives.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/PurchaseConsignmentReceives.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bf7e45888ac0e5fc", "name": "Commented-code block (6 lines) in apps/backend/src/pages/ConsignmentNotes.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/ConsignmentNotes.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-786120c8cca9fe61", "name": "Commented-code block (6 lines) in apps/backend/src/pages/ConsignmentNoteNew.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/ConsignmentNoteNew.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-754cd731baafa014", "name": "Commented-code block (5 lines) in apps/backend/src/pages/DeliveryOrderNew.tsx:9", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/DeliveryOrderNew.tsx:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-25d48d5f3d4e6b66", "name": "Commented-code block (7 lines) in apps/backend/src/pages/PurchaseConsignmentOrderNew.tsx:4", "shortDescription": {"text": "Commented-code block (7 lines) in apps/backend/src/pages/PurchaseConsignmentOrderNew.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-832cd6545f9721a3", "name": "Commented-code block (5 lines) in apps/backend/src/pages/ConsignmentReturnDetail.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/ConsignmentReturnDetail.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ccaa807dec268080", "name": "Commented-code block (7 lines) in apps/backend/src/pages/ChangePassword.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in apps/backend/src/pages/ChangePassword.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b38e4c7fea05ee80", "name": "Commented-code block (7 lines) in apps/backend/src/pages/ProductModelDetail.tsx:9", "shortDescription": {"text": "Commented-code block (7 lines) in apps/backend/src/pages/ProductModelDetail.tsx:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c4b342eda383e8e8", "name": "Commented-code block (7 lines) in apps/backend/src/pages/PurchaseConsignmentReturnFromReceive.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in apps/backend/src/pages/PurchaseConsignmentReturnFromReceive.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a6ce43f7ae0860ca", "name": "Commented-code block (5 lines) in apps/backend/src/pages/PurchaseReturnsList.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/PurchaseReturnsList.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bcba3064b635b8fe", "name": "Commented-code block (6 lines) in apps/backend/src/pages/Accounting.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/Accounting.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-65fb1cc7829d2216", "name": "Commented-code block (6 lines) in apps/backend/src/pages/PurchaseConsignmentReturns.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/PurchaseConsignmentReturns.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ad611d8508eba600", "name": "Commented-code block (6 lines) in apps/backend/src/pages/PurchaseConsignmentReceiveNew.tsx:5", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/PurchaseConsignmentReceiveNew.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d8802db04acd5fac", "name": "Commented-code block (10 lines) in apps/backend/src/pages/PurchaseOrderFromSo.tsx:4", "shortDescription": {"text": "Commented-code block (10 lines) in apps/backend/src/pages/PurchaseOrderFromSo.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-685bbaf11af28593", "name": "Commented-code block (6 lines) in apps/backend/src/pages/DeliveryReturnDetailListing.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/DeliveryReturnDetailListing.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2ec0e68a2113faa9", "name": "Commented-code block (6 lines) in apps/backend/src/pages/SalesOrderMaintenance.tsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/SalesOrderMaintenance.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-96102b0e826a9843", "name": "Commented-code block (9 lines) in apps/backend/src/pages/SupplierDetail.tsx:4", "shortDescription": {"text": "Commented-code block (9 lines) in apps/backend/src/pages/SupplierDetail.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f1c1079b34c4ef02", "name": "Commented-code block (9 lines) in apps/backend/src/pages/DeliveryOrderFromSo.tsx:5", "shortDescription": {"text": "Commented-code block (9 lines) in apps/backend/src/pages/DeliveryOrderFromSo.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9ba1a6da8bb6733e", "name": "Commented-code block (5 lines) in apps/backend/src/pages/ConsignmentOrderNew.tsx:15", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/ConsignmentOrderNew.tsx:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bf0c8a9e142f0936", "name": "Commented-code block (6 lines) in apps/backend/src/pages/StockTransferNew.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/StockTransferNew.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-afe099d790d53a1f", "name": "Commented-code block (5 lines) in apps/backend/src/pages/PurchaseConsignmentReturnDetail.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/PurchaseConsignmentReturnDetail.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-26ead9ef8094c78d", "name": "Commented-code block (5 lines) in apps/backend/src/pages/StockAdjustmentNew.tsx:8", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/StockAdjustmentNew.tsx:8"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0a06e5fef84c8945", "name": "Commented-code block (6 lines) in apps/backend/src/pages/SoFromProducts.tsx:10", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/SoFromProducts.tsx:10"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b9aaa27b283894e1", "name": "Commented-code block (5 lines) in apps/backend/src/pages/ConsignmentOrderDetail.tsx:9", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/ConsignmentOrderDetail.tsx:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e5cb23d3df8a0ce0", "name": "Commented-code block (5 lines) in apps/backend/src/pages/ProductModels.tsx:56", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/ProductModels.tsx:56"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5c5652cc1c1b839b", "name": "Commented-code block (5 lines) in apps/backend/src/pages/StockTransferDetail.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/StockTransferDetail.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1cdd9350d9b9d274", "name": "Commented-code block (5 lines) in apps/backend/src/pages/DocDetailPages.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/DocDetailPages.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2a6c3ce735013843", "name": "Commented-code block (5 lines) in apps/backend/src/pages/PurchaseInvoicesList.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/PurchaseInvoicesList.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-37720c6904dffd67", "name": "Commented-code block (5 lines) in apps/backend/src/pages/PurchaseConsignmentReceiveDetail.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/PurchaseConsignmentReceiveDetail.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-155628ea8f5622c7", "name": "Commented-code block (5 lines) in apps/backend/src/pages/MfgDeliveryOrdersList.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/MfgDeliveryOrdersList.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e48cf0cc868f5ad0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/backend/src/pages/MfgDeliveryOrdersList.tsx:489", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/backend/src/pages/MfgDeliveryOrdersList.tsx:489"}, "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-9b4af174b15c176d", "name": "Commented-code block (6 lines) in apps/backend/src/pages/PurchaseConsignmentReceiveFromOrder.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/PurchaseConsignmentReceiveFromOrder.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e4b47b4eaf30fb60", "name": "Commented-code block (5 lines) in apps/backend/src/pages/PurchaseInvoiceFromGrn.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/PurchaseInvoiceFromGrn.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-317119f5b46b97e9", "name": "Commented-code block (5 lines) in apps/backend/src/pages/SalesOrderNew.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/SalesOrderNew.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-166a08b5fc45aeaf", "name": "Commented-code block (6 lines) in apps/backend/src/pages/DeliveryOrderDetail.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/DeliveryOrderDetail.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7c3e3f813b11a991", "name": "Commented-code block (7 lines) in apps/backend/src/pages/SalesInvoicesList.tsx:1", "shortDescription": {"text": "Commented-code block (7 lines) in apps/backend/src/pages/SalesInvoicesList.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-05b20713d8dc5e0c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 apps/backend/src/pages/SalesInvoicesList.tsx:450", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/backend/src/pages/SalesInvoicesList.tsx:450"}, "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-7fec36e75eba42e1", "name": "Commented-code block (9 lines) in apps/backend/src/pages/DeliveryReturnFromDo.tsx:5", "shortDescription": {"text": "Commented-code block (9 lines) in apps/backend/src/pages/DeliveryReturnFromDo.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ff6b97b98a38650c", "name": "Commented-code block (8 lines) in apps/backend/src/pages/PurchaseReturnNew.tsx:6", "shortDescription": {"text": "Commented-code block (8 lines) in apps/backend/src/pages/PurchaseReturnNew.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-06fd7c1cf4a914ac", "name": "Commented-code block (8 lines) in apps/backend/src/pages/StockCard.tsx:11", "shortDescription": {"text": "Commented-code block (8 lines) in apps/backend/src/pages/StockCard.tsx:11"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e8e9bc5b890c8e39", "name": "Commented-code block (5 lines) in apps/backend/src/pages/GoodsReceivedList.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/GoodsReceivedList.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-67d8a27c1932b9b4", "name": "Commented-code block (8 lines) in apps/backend/src/pages/PurchaseInvoiceNew.tsx:9", "shortDescription": {"text": "Commented-code block (8 lines) in apps/backend/src/pages/PurchaseInvoiceNew.tsx:9"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-12e01eea4d630588", "name": "Commented-code block (6 lines) in apps/backend/src/pages/PurchaseConsignmentOrderDetail.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/PurchaseConsignmentOrderDetail.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8ff110fa406095e6", "name": "Commented-code block (5 lines) in apps/backend/src/pages/ConsignmentReturnNew.tsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/ConsignmentReturnNew.tsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-57dfd18d1c79e480", "name": "Commented-code block (6 lines) in apps/backend/src/pages/ConsignmentReturns.tsx:1", "shortDescription": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/ConsignmentReturns.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7d27bad518cead57", "name": "Commented-code block (7 lines) in apps/backend/src/pages/SystemHealth.tsx:4", "shortDescription": {"text": "Commented-code block (7 lines) in apps/backend/src/pages/SystemHealth.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-362a285e9a818da6", "name": "Commented-code block (5 lines) in apps/backend/src/pages/sales-order/LineItemsSection.tsx:4", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/sales-order/LineItemsSection.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e419a8f07f6c7b2d", "name": "Commented-code block (5 lines) in apps/backend/src/pages/sales-order/HistoryPanel.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/sales-order/HistoryPanel.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-40e2f408a3288d71", "name": "Commented-code block (5 lines) in apps/backend/src/pages/sales-order/OverridePriceModal.tsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/sales-order/OverridePriceModal.tsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5aa194a905ea6ddf", "name": "Commented-code block (5 lines) in apps/backend/src/pages/sales-order/types.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/sales-order/types.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4b758e340bbfc940", "name": "Commented-code block (19 lines) in scripts/db-migrate.mjs:8", "shortDescription": {"text": "Commented-code block (19 lines) in scripts/db-migrate.mjs: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-cf7c1de1f96e668a", "name": "Commented-code block (7 lines) in scripts/check-vite-api-url.mjs:5", "shortDescription": {"text": "Commented-code block (7 lines) in scripts/check-vite-api-url.mjs: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-91a27d439d934fff", "name": "Commented-code block (7 lines) in prototype/backend-orders.jsx:214", "shortDescription": {"text": "Commented-code block (7 lines) in prototype/backend-orders.jsx:214"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f1869aed690fb807", "name": "Commented-code block (7 lines) in prototype/pos-data.jsx:45", "shortDescription": {"text": "Commented-code block (7 lines) in prototype/pos-data.jsx:45"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0c916adc876777a6", "name": "Commented-code block (6 lines) in prototype/pos-sofa-config.jsx:6", "shortDescription": {"text": "Commented-code block (6 lines) in prototype/pos-sofa-config.jsx: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-8f182c4d00217f6d", "name": "Commented-code block (5 lines) in prototype/pos-app.jsx:151", "shortDescription": {"text": "Commented-code block (5 lines) in prototype/pos-app.jsx:151"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9c9869a93f0465e0", "name": "Commented-code block (5 lines) in prototype/pos-handover.jsx:5", "shortDescription": {"text": "Commented-code block (5 lines) in prototype/pos-handover.jsx:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-eaa28e608fbe942e", "name": "Commented-code block (5 lines) in prototype/pos-order-status.jsx:1", "shortDescription": {"text": "Commented-code block (5 lines) in prototype/pos-order-status.jsx:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-88708c345e8dfa23", "name": "Commented-code block (5 lines) in prototype/pos-order-modal.jsx:3", "shortDescription": {"text": "Commented-code block (5 lines) in prototype/pos-order-modal.jsx: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-3404b2d98658515e", "name": "Commented-code block (5 lines) in prototype/pos-configurator.jsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in prototype/pos-configurator.jsx: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-5e1f32120cb25efe", "name": "Commented-code block (5 lines) in prototype/pos-quote.jsx:6", "shortDescription": {"text": "Commented-code block (5 lines) in prototype/pos-quote.jsx: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-eab9bb0473dbe19a", "name": "Commented-code block (7 lines) in packages/shared/src/mfg-pricing.ts:7", "shortDescription": {"text": "Commented-code block (7 lines) in packages/shared/src/mfg-pricing.ts: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-6a0211f627127910", "name": "Commented-code block (9 lines) in packages/shared/src/so-sofa-split.ts:4", "shortDescription": {"text": "Commented-code block (9 lines) in packages/shared/src/so-sofa-split.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-729c146e4cbdb553", "name": "Commented-code block (5 lines) in packages/shared/src/sofa-combo-pricing.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in packages/shared/src/sofa-combo-pricing.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a14a8f362ba40138", "name": "Commented-code block (5 lines) in packages/shared/src/sofa-build.ts:156", "shortDescription": {"text": "Commented-code block (5 lines) in packages/shared/src/sofa-build.ts:156"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bbdf5d796da91a4e", "name": "Commented-code block (10 lines) in packages/shared/src/maintenance-pools.ts:4", "shortDescription": {"text": "Commented-code block (10 lines) in packages/shared/src/maintenance-pools.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9d22613f7ca1c583", "name": "Commented-code block (8 lines) in packages/shared/src/sofa-tier.ts:4", "shortDescription": {"text": "Commented-code block (8 lines) in packages/shared/src/sofa-tier.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9109b81db9437af5", "name": "Commented-code block (6 lines) in packages/shared/src/so-line-display.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in packages/shared/src/so-line-display.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-be4a0f681034febb", "name": "Commented-code block (9 lines) in packages/shared/src/mfg-pricing.test.ts:3", "shortDescription": {"text": "Commented-code block (9 lines) in packages/shared/src/mfg-pricing.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-07162871af98dc54", "name": "Commented-code block (6 lines) in packages/shared/src/sofa-quick-presets.ts:4", "shortDescription": {"text": "Commented-code block (6 lines) in packages/shared/src/sofa-quick-presets.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0ce94964cbc0d782", "name": "Commented-code block (7 lines) in packages/shared/src/pwp.ts:12", "shortDescription": {"text": "Commented-code block (7 lines) in packages/shared/src/pwp.ts:12"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-458b19233f19ea39", "name": "Commented-code block (5 lines) in packages/shared/src/variant-summary.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in packages/shared/src/variant-summary.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-2f5219dee4ec8c4d", "name": "Commented-code block (10 lines) in packages/shared/src/service-sku.ts:4", "shortDescription": {"text": "Commented-code block (10 lines) in packages/shared/src/service-sku.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-82126f94c353efdd", "name": "Commented-code block (5 lines) in packages/shared/src/free-gift.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in packages/shared/src/free-gift.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-0257baf5d26ea3f6", "name": "Commented-code block (8 lines) in packages/shared/src/pricing.ts:1", "shortDescription": {"text": "Commented-code block (8 lines) in packages/shared/src/pricing.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-5d372d88108ade49", "name": "Commented-code block (5 lines) in packages/shared/src/fabric-tier-addon.ts:1", "shortDescription": {"text": "Commented-code block (5 lines) in packages/shared/src/fabric-tier-addon.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-b9e398a336dd85f6", "name": "Commented-code block (6 lines) in packages/shared/src/inventory-adjustment.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in packages/shared/src/inventory-adjustment.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-35e4db5a0e3ce289", "name": "Commented-code block (9 lines) in packages/shared/src/so-variant-rule.ts:5", "shortDescription": {"text": "Commented-code block (9 lines) in packages/shared/src/so-variant-rule.ts: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-98823f81108b0b93", "name": "Commented-code block (7 lines) in packages/shared/src/variant-key.ts:13", "shortDescription": {"text": "Commented-code block (7 lines) in packages/shared/src/variant-key.ts:13"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-37502055ecfa0399", "name": "Commented-code block (7 lines) in packages/shared/src/phone.ts:4", "shortDescription": {"text": "Commented-code block (7 lines) in packages/shared/src/phone.ts:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1ed9fd4860ade29c", "name": "Commented-code block (6 lines) in packages/shared/src/__tests__/sofa-selling.test.ts:3", "shortDescription": {"text": "Commented-code block (6 lines) in packages/shared/src/__tests__/sofa-selling.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6b77f372abef8686", "name": "Commented-code block (5 lines) in packages/shared/src/__tests__/sofa-build.test.ts:572", "shortDescription": {"text": "Commented-code block (5 lines) in packages/shared/src/__tests__/sofa-build.test.ts:572"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9bfc0518cc15c0fe", "name": "Commented-code block (5 lines) in packages/shared/src/schemas/product.ts:114", "shortDescription": {"text": "Commented-code block (5 lines) in packages/shared/src/schemas/product.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-08135d2d5ad01400", "name": "Commented-code block (8 lines) in packages/db/src/schema.ts:6", "shortDescription": {"text": "Commented-code block (8 lines) in packages/db/src/schema.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-ad1f2c0971b89ce0", "name": "10 env vars used in code but missing from .env.example", "shortDescription": {"text": "10 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `ALLOW_LOCAL_API_URL`, `DB_PWD`, `DRY_RUN`, `MIG_FILE`, `SUPABASE_DB_URL`, `TBL`, `VITE_API_URL`, `VITE_BACKEND_PORTAL_URL` + 2 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-aa2bddf443f826a7", "name": "Dangling fetch: GET /mfg-sales-orders/customer-search?name=${encodeURIComponent(name)} (apps/api/src/routes/mfg-sales-or", "shortDescription": {"text": "Dangling fetch: GET /mfg-sales-orders/customer-search?name=${encodeURIComponent(name)} (apps/api/src/routes/mfg-sales-orders.customer-search.test.ts:77)"}, "fullDescription": {"text": "`apps/api/src/routes/mfg-sales-orders.customer-search.test.ts:77` calls `GET /mfg-sales-orders/customer-search?name=${encodeURIComponent(name)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mfg-sales-orders/customer-search`\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-fc0d3b97e481c8dd", "name": "Dangling fetch: GET /admin/audit-log (apps/api/src/routes/audit-log.test.ts:116)", "shortDescription": {"text": "Dangling fetch: GET /admin/audit-log (apps/api/src/routes/audit-log.test.ts:116)"}, "fullDescription": {"text": "`apps/api/src/routes/audit-log.test.ts:116` calls `GET /admin/audit-log` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/audit-log`\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-bb268e92b863a820", "name": "Dangling fetch: GET /admin/audit-log (apps/api/src/routes/audit-log.test.ts:122)", "shortDescription": {"text": "Dangling fetch: GET /admin/audit-log (apps/api/src/routes/audit-log.test.ts:122)"}, "fullDescription": {"text": "`apps/api/src/routes/audit-log.test.ts:122` calls `GET /admin/audit-log` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/audit-log`\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-160778977180390b", "name": "Dangling fetch: GET /admin/audit-log (apps/api/src/routes/audit-log.test.ts:128)", "shortDescription": {"text": "Dangling fetch: GET /admin/audit-log (apps/api/src/routes/audit-log.test.ts:128)"}, "fullDescription": {"text": "`apps/api/src/routes/audit-log.test.ts:128` calls `GET /admin/audit-log` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/audit-log`\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-6964d8f31a01b88c", "name": "Dangling fetch: GET /admin/audit-log (apps/api/src/routes/audit-log.test.ts:137)", "shortDescription": {"text": "Dangling fetch: GET /admin/audit-log (apps/api/src/routes/audit-log.test.ts:137)"}, "fullDescription": {"text": "`apps/api/src/routes/audit-log.test.ts:137` calls `GET /admin/audit-log` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/audit-log`\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-dda986c9d8a1ec8b", "name": "Dangling fetch: GET /admin/audit-log (apps/api/src/routes/audit-log.test.ts:144)", "shortDescription": {"text": "Dangling fetch: GET /admin/audit-log (apps/api/src/routes/audit-log.test.ts:144)"}, "fullDescription": {"text": "`apps/api/src/routes/audit-log.test.ts:144` calls `GET /admin/audit-log` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/audit-log`\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-4c51c36b59752bf8", "name": "Dangling fetch: GET /admin/audit-log (apps/api/src/routes/audit-log.test.ts:170)", "shortDescription": {"text": "Dangling fetch: GET /admin/audit-log (apps/api/src/routes/audit-log.test.ts:170)"}, "fullDescription": {"text": "`apps/api/src/routes/audit-log.test.ts:170` calls `GET /admin/audit-log` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/audit-log`\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-e22e77eff2ada3f0", "name": "Dangling fetch: GET /admin/audit-log?amountMin=abc (apps/api/src/routes/audit-log.test.ts:180)", "shortDescription": {"text": "Dangling fetch: GET /admin/audit-log?amountMin=abc (apps/api/src/routes/audit-log.test.ts:180)"}, "fullDescription": {"text": "`apps/api/src/routes/audit-log.test.ts:180` calls `GET /admin/audit-log?amountMin=abc` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/audit-log`\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-6a50376bd726f7c1", "name": "Dangling fetch: GET /admin/audit-log?paymentMethod=credit (apps/api/src/routes/audit-log.test.ts:186)", "shortDescription": {"text": "Dangling fetch: GET /admin/audit-log?paymentMethod=credit (apps/api/src/routes/audit-log.test.ts:186)"}, "fullDescription": {"text": "`apps/api/src/routes/audit-log.test.ts:186` calls `GET /admin/audit-log?paymentMethod=credit` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/audit-log`\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-9fbb19ca148a137d", "name": "Dangling fetch: GET /admin/audit-log (apps/api/src/routes/audit-log.test.ts:198)", "shortDescription": {"text": "Dangling fetch: GET /admin/audit-log (apps/api/src/routes/audit-log.test.ts:198)"}, "fullDescription": {"text": "`apps/api/src/routes/audit-log.test.ts:198` calls `GET /admin/audit-log` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/audit-log`\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-df907b89beca8a9b", "name": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:89)", "shortDescription": {"text": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:89)"}, "fullDescription": {"text": "`apps/api/src/routes/admin.test.ts:89` calls `POST /admin/staff` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/staff`\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-dd4606a499cda413", "name": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:119)", "shortDescription": {"text": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:119)"}, "fullDescription": {"text": "`apps/api/src/routes/admin.test.ts:119` calls `POST /admin/staff` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/staff`\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-e803d16b74aad8bf", "name": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:144)", "shortDescription": {"text": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:144)"}, "fullDescription": {"text": "`apps/api/src/routes/admin.test.ts:144` calls `POST /admin/staff` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/staff`\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-d527de909632ea40", "name": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:162)", "shortDescription": {"text": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:162)"}, "fullDescription": {"text": "`apps/api/src/routes/admin.test.ts:162` calls `POST /admin/staff` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/staff`\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-618f28f2b0a81d4e", "name": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:177)", "shortDescription": {"text": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:177)"}, "fullDescription": {"text": "`apps/api/src/routes/admin.test.ts:177` calls `POST /admin/staff` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/staff`\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-90acd1fe95fcb2fd", "name": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:192)", "shortDescription": {"text": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:192)"}, "fullDescription": {"text": "`apps/api/src/routes/admin.test.ts:192` calls `POST /admin/staff` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/staff`\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-cfcb69398ffe3527", "name": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:211)", "shortDescription": {"text": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:211)"}, "fullDescription": {"text": "`apps/api/src/routes/admin.test.ts:211` calls `POST /admin/staff` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/staff`\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-ef76723daef5d6a2", "name": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:235)", "shortDescription": {"text": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:235)"}, "fullDescription": {"text": "`apps/api/src/routes/admin.test.ts:235` calls `POST /admin/staff` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/staff`\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-6736ff5d2faac64e", "name": "Dangling fetch: PATCH /admin/staff/${TARGET_ID}/pin (apps/api/src/routes/admin.test.ts:280)", "shortDescription": {"text": "Dangling fetch: PATCH /admin/staff/${TARGET_ID}/pin (apps/api/src/routes/admin.test.ts:280)"}, "fullDescription": {"text": "`apps/api/src/routes/admin.test.ts:280` calls `PATCH /admin/staff/${TARGET_ID}/pin` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/staff/<p>/pin`\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-dfea5f4ec351dc91", "name": "Dangling fetch: PATCH /admin/staff/${TARGET_ID}/pin (apps/api/src/routes/admin.test.ts:289)", "shortDescription": {"text": "Dangling fetch: PATCH /admin/staff/${TARGET_ID}/pin (apps/api/src/routes/admin.test.ts:289)"}, "fullDescription": {"text": "`apps/api/src/routes/admin.test.ts:289` calls `PATCH /admin/staff/${TARGET_ID}/pin` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/staff/<p>/pin`\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-730e1287913ce967", "name": "Dangling fetch: PATCH /admin/staff/${TARGET_ID}/pin (apps/api/src/routes/admin.test.ts:299)", "shortDescription": {"text": "Dangling fetch: PATCH /admin/staff/${TARGET_ID}/pin (apps/api/src/routes/admin.test.ts:299)"}, "fullDescription": {"text": "`apps/api/src/routes/admin.test.ts:299` calls `PATCH /admin/staff/${TARGET_ID}/pin` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/staff/<p>/pin`\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-99b83c0f43596148", "name": "Dangling fetch: PATCH /admin/staff/${TARGET_ID}/pin (apps/api/src/routes/admin.test.ts:321)", "shortDescription": {"text": "Dangling fetch: PATCH /admin/staff/${TARGET_ID}/pin (apps/api/src/routes/admin.test.ts:321)"}, "fullDescription": {"text": "`apps/api/src/routes/admin.test.ts:321` calls `PATCH /admin/staff/${TARGET_ID}/pin` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/staff/<p>/pin`\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-73674016f37b2173", "name": "Dangling fetch: PATCH /admin/staff/${TARGET_ID}/pin (apps/api/src/routes/admin.test.ts:345)", "shortDescription": {"text": "Dangling fetch: PATCH /admin/staff/${TARGET_ID}/pin (apps/api/src/routes/admin.test.ts:345)"}, "fullDescription": {"text": "`apps/api/src/routes/admin.test.ts:345` calls `PATCH /admin/staff/${TARGET_ID}/pin` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/staff/<p>/pin`\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-25fe8f5e93654688", "name": "Dangling fetch: PATCH /admin/staff/${TARGET_ID}/pin (apps/api/src/routes/admin.test.ts:355)", "shortDescription": {"text": "Dangling fetch: PATCH /admin/staff/${TARGET_ID}/pin (apps/api/src/routes/admin.test.ts:355)"}, "fullDescription": {"text": "`apps/api/src/routes/admin.test.ts:355` calls `PATCH /admin/staff/${TARGET_ID}/pin` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/staff/<p>/pin`\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-f2902a8796de6bbb", "name": "Dangling fetch: PATCH /admin/staff/not-a-uuid/pin (apps/api/src/routes/admin.test.ts:364)", "shortDescription": {"text": "Dangling fetch: PATCH /admin/staff/not-a-uuid/pin (apps/api/src/routes/admin.test.ts:364)"}, "fullDescription": {"text": "`apps/api/src/routes/admin.test.ts:364` calls `PATCH /admin/staff/not-a-uuid/pin` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/staff/not-a-uuid/pin`\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-4a935495a77a7780", "name": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:380)", "shortDescription": {"text": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:380)"}, "fullDescription": {"text": "`apps/api/src/routes/admin.test.ts:380` calls `POST /admin/staff` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/staff`\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-669cd28f391f38e4", "name": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:394)", "shortDescription": {"text": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:394)"}, "fullDescription": {"text": "`apps/api/src/routes/admin.test.ts:394` calls `POST /admin/staff` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/staff`\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-6a1711d60d68f42f", "name": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:408)", "shortDescription": {"text": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:408)"}, "fullDescription": {"text": "`apps/api/src/routes/admin.test.ts:408` calls `POST /admin/staff` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/staff`\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-08cce024d4a6f3b6", "name": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:428)", "shortDescription": {"text": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:428)"}, "fullDescription": {"text": "`apps/api/src/routes/admin.test.ts:428` calls `POST /admin/staff` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/staff`\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-9691cf344355abee", "name": "Dangling fetch: PATCH /admin/staff/${TARGET_ID} (apps/api/src/routes/admin.test.ts:479)", "shortDescription": {"text": "Dangling fetch: PATCH /admin/staff/${TARGET_ID} (apps/api/src/routes/admin.test.ts:479)"}, "fullDescription": {"text": "`apps/api/src/routes/admin.test.ts:479` calls `PATCH /admin/staff/${TARGET_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/staff/<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-f2f5902035879c57", "name": "Dangling fetch: PATCH /admin/staff/${TARGET_ID} (apps/api/src/routes/admin.test.ts:489)", "shortDescription": {"text": "Dangling fetch: PATCH /admin/staff/${TARGET_ID} (apps/api/src/routes/admin.test.ts:489)"}, "fullDescription": {"text": "`apps/api/src/routes/admin.test.ts:489` calls `PATCH /admin/staff/${TARGET_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/staff/<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-29b716595659a136", "name": "Dangling fetch: PATCH /admin/staff/${TARGET_ID} (apps/api/src/routes/admin.test.ts:500)", "shortDescription": {"text": "Dangling fetch: PATCH /admin/staff/${TARGET_ID} (apps/api/src/routes/admin.test.ts:500)"}, "fullDescription": {"text": "`apps/api/src/routes/admin.test.ts:500` calls `PATCH /admin/staff/${TARGET_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/staff/<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-3ade7a32bf88c98c", "name": "Dangling fetch: PATCH /admin/staff/${TARGET_ID} (apps/api/src/routes/admin.test.ts:510)", "shortDescription": {"text": "Dangling fetch: PATCH /admin/staff/${TARGET_ID} (apps/api/src/routes/admin.test.ts:510)"}, "fullDescription": {"text": "`apps/api/src/routes/admin.test.ts:510` calls `PATCH /admin/staff/${TARGET_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/admin/staff/<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-448af40edb787e25", "name": "Dangling fetch: GET /model-free-gifts (apps/api/src/routes/model-free-gifts.test.ts:110)", "shortDescription": {"text": "Dangling fetch: GET /model-free-gifts (apps/api/src/routes/model-free-gifts.test.ts:110)"}, "fullDescription": {"text": "`apps/api/src/routes/model-free-gifts.test.ts:110` calls `GET /model-free-gifts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/model-free-gifts`\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-7572f67dcb1190c7", "name": "Dangling fetch: GET /model-free-gifts (apps/api/src/routes/model-free-gifts.test.ts:146)", "shortDescription": {"text": "Dangling fetch: GET /model-free-gifts (apps/api/src/routes/model-free-gifts.test.ts:146)"}, "fullDescription": {"text": "`apps/api/src/routes/model-free-gifts.test.ts:146` calls `GET /model-free-gifts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/model-free-gifts`\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-c24e45ae3e940fb2", "name": "Dangling fetch: PUT /model-free-gifts (apps/api/src/routes/model-free-gifts.test.ts:161)", "shortDescription": {"text": "Dangling fetch: PUT /model-free-gifts (apps/api/src/routes/model-free-gifts.test.ts:161)"}, "fullDescription": {"text": "`apps/api/src/routes/model-free-gifts.test.ts:161` calls `PUT /model-free-gifts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/model-free-gifts`\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-13c69f9266d94a96", "name": "Dangling fetch: PUT /model-free-gifts (apps/api/src/routes/model-free-gifts.test.ts:173)", "shortDescription": {"text": "Dangling fetch: PUT /model-free-gifts (apps/api/src/routes/model-free-gifts.test.ts:173)"}, "fullDescription": {"text": "`apps/api/src/routes/model-free-gifts.test.ts:173` calls `PUT /model-free-gifts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/model-free-gifts`\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-bc319b1a887bf1e0", "name": "Dangling fetch: PUT /model-free-gifts (apps/api/src/routes/model-free-gifts.test.ts:208)", "shortDescription": {"text": "Dangling fetch: PUT /model-free-gifts (apps/api/src/routes/model-free-gifts.test.ts:208)"}, "fullDescription": {"text": "`apps/api/src/routes/model-free-gifts.test.ts:208` calls `PUT /model-free-gifts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/model-free-gifts`\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-5d566a3ead511c61", "name": "Dangling fetch: PUT /model-free-gifts (apps/api/src/routes/model-free-gifts.test.ts:236)", "shortDescription": {"text": "Dangling fetch: PUT /model-free-gifts (apps/api/src/routes/model-free-gifts.test.ts:236)"}, "fullDescription": {"text": "`apps/api/src/routes/model-free-gifts.test.ts:236` calls `PUT /model-free-gifts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/model-free-gifts`\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-01bd594a786997cb", "name": "Dangling fetch: PUT /model-free-gifts (apps/api/src/routes/model-free-gifts.test.ts:259)", "shortDescription": {"text": "Dangling fetch: PUT /model-free-gifts (apps/api/src/routes/model-free-gifts.test.ts:259)"}, "fullDescription": {"text": "`apps/api/src/routes/model-free-gifts.test.ts:259` calls `PUT /model-free-gifts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/model-free-gifts`\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-cc9ea8f1fda55e8d", "name": "Dangling fetch: PUT /model-free-gifts (apps/api/src/routes/model-free-gifts.test.ts:271)", "shortDescription": {"text": "Dangling fetch: PUT /model-free-gifts (apps/api/src/routes/model-free-gifts.test.ts:271)"}, "fullDescription": {"text": "`apps/api/src/routes/model-free-gifts.test.ts:271` calls `PUT /model-free-gifts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/model-free-gifts`\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-72a7959e5a4dc91a", "name": "Dangling fetch: PUT /model-free-gifts (apps/api/src/routes/model-free-gifts.test.ts:283)", "shortDescription": {"text": "Dangling fetch: PUT /model-free-gifts (apps/api/src/routes/model-free-gifts.test.ts:283)"}, "fullDescription": {"text": "`apps/api/src/routes/model-free-gifts.test.ts:283` calls `PUT /model-free-gifts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/model-free-gifts`\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-15db389c0c973e75", "name": "Dangling fetch: PUT /model-free-gifts (apps/api/src/routes/model-free-gifts.test.ts:295)", "shortDescription": {"text": "Dangling fetch: PUT /model-free-gifts (apps/api/src/routes/model-free-gifts.test.ts:295)"}, "fullDescription": {"text": "`apps/api/src/routes/model-free-gifts.test.ts:295` calls `PUT /model-free-gifts` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/model-free-gifts`\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-f3ebd66073aa13ae", "name": "Dangling fetch: DELETE /model-free-gifts/${MODEL_ID} (apps/api/src/routes/model-free-gifts.test.ts:330)", "shortDescription": {"text": "Dangling fetch: DELETE /model-free-gifts/${MODEL_ID} (apps/api/src/routes/model-free-gifts.test.ts:330)"}, "fullDescription": {"text": "`apps/api/src/routes/model-free-gifts.test.ts:330` calls `DELETE /model-free-gifts/${MODEL_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/model-free-gifts/<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-4176ba364bd1f305", "name": "Dangling fetch: DELETE /model-free-gifts/${MODEL_ID} (apps/api/src/routes/model-free-gifts.test.ts:352)", "shortDescription": {"text": "Dangling fetch: DELETE /model-free-gifts/${MODEL_ID} (apps/api/src/routes/model-free-gifts.test.ts:352)"}, "fullDescription": {"text": "`apps/api/src/routes/model-free-gifts.test.ts:352` calls `DELETE /model-free-gifts/${MODEL_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/model-free-gifts/<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-17467b1a2f66c95a", "name": "Dangling fetch: DELETE /model-free-gifts/${MODEL_ID} (apps/api/src/routes/model-free-gifts.test.ts:358)", "shortDescription": {"text": "Dangling fetch: DELETE /model-free-gifts/${MODEL_ID} (apps/api/src/routes/model-free-gifts.test.ts:358)"}, "fullDescription": {"text": "`apps/api/src/routes/model-free-gifts.test.ts:358` calls `DELETE /model-free-gifts/${MODEL_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/model-free-gifts/<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-7a96fdce63673db5", "name": "Dangling fetch: DELETE /model-free-gifts/${MODEL_ID} (apps/api/src/routes/model-free-gifts.test.ts:366)", "shortDescription": {"text": "Dangling fetch: DELETE /model-free-gifts/${MODEL_ID} (apps/api/src/routes/model-free-gifts.test.ts:366)"}, "fullDescription": {"text": "`apps/api/src/routes/model-free-gifts.test.ts:366` calls `DELETE /model-free-gifts/${MODEL_ID}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/model-free-gifts/<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-71d4717b8f7bb8a5", "name": "Dangling fetch: POST /mfg-products/${SKU_ID}/activate-one-shot (apps/api/src/routes/mfg-products.test.ts:81)", "shortDescription": {"text": "Dangling fetch: POST /mfg-products/${SKU_ID}/activate-one-shot (apps/api/src/routes/mfg-products.test.ts:81)"}, "fullDescription": {"text": "`apps/api/src/routes/mfg-products.test.ts:81` calls `POST /mfg-products/${SKU_ID}/activate-one-shot` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mfg-products/<p>/activate-one-shot`\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-22dc814dd6109d84", "name": "Dangling fetch: POST /mfg-products/${SKU_ID}/activate-one-shot (apps/api/src/routes/mfg-products.test.ts:134)", "shortDescription": {"text": "Dangling fetch: POST /mfg-products/${SKU_ID}/activate-one-shot (apps/api/src/routes/mfg-products.test.ts:134)"}, "fullDescription": {"text": "`apps/api/src/routes/mfg-products.test.ts:134` calls `POST /mfg-products/${SKU_ID}/activate-one-shot` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mfg-products/<p>/activate-one-shot`\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-aeed63d68e1bb184", "name": "Dangling fetch: POST /mfg-products/${SKU_ID}/activate-one-shot (apps/api/src/routes/mfg-products.test.ts:191)", "shortDescription": {"text": "Dangling fetch: POST /mfg-products/${SKU_ID}/activate-one-shot (apps/api/src/routes/mfg-products.test.ts:191)"}, "fullDescription": {"text": "`apps/api/src/routes/mfg-products.test.ts:191` calls `POST /mfg-products/${SKU_ID}/activate-one-shot` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mfg-products/<p>/activate-one-shot`\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-18b9181c4d648e8a", "name": "Dangling fetch: POST /mfg-products/${SKU_ID}/activate-one-shot (apps/api/src/routes/mfg-products.test.ts:199)", "shortDescription": {"text": "Dangling fetch: POST /mfg-products/${SKU_ID}/activate-one-shot (apps/api/src/routes/mfg-products.test.ts:199)"}, "fullDescription": {"text": "`apps/api/src/routes/mfg-products.test.ts:199` calls `POST /mfg-products/${SKU_ID}/activate-one-shot` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/mfg-products/<p>/activate-one-shot`\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-261e9a1b24605cc4", "name": "Dangling fetch: POST /slips/init (apps/api/src/routes/slips.test.ts:86)", "shortDescription": {"text": "Dangling fetch: POST /slips/init (apps/api/src/routes/slips.test.ts:86)"}, "fullDescription": {"text": "`apps/api/src/routes/slips.test.ts:86` calls `POST /slips/init` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/slips/init`\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-b5ff8ceb96a5ef19", "name": "Dangling fetch: POST /slips/init (apps/api/src/routes/slips.test.ts:102)", "shortDescription": {"text": "Dangling fetch: POST /slips/init (apps/api/src/routes/slips.test.ts:102)"}, "fullDescription": {"text": "`apps/api/src/routes/slips.test.ts:102` calls `POST /slips/init` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/slips/init`\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-78636f8fcc7da921", "name": "Dangling fetch: POST /slips/init (apps/api/src/routes/slips.test.ts:116)", "shortDescription": {"text": "Dangling fetch: POST /slips/init (apps/api/src/routes/slips.test.ts:116)"}, "fullDescription": {"text": "`apps/api/src/routes/slips.test.ts:116` calls `POST /slips/init` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/slips/init`\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-45ef4527d0da3263", "name": "Dangling fetch: POST /slips/${sessionId}/confirm (apps/api/src/routes/slips.test.ts:169)", "shortDescription": {"text": "Dangling fetch: POST /slips/${sessionId}/confirm (apps/api/src/routes/slips.test.ts:169)"}, "fullDescription": {"text": "`apps/api/src/routes/slips.test.ts:169` calls `POST /slips/${sessionId}/confirm` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/slips/<p>/confirm`\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-c6855ad988c1fbcf", "name": "Dangling fetch: POST /slips/${sessionId}/confirm (apps/api/src/routes/slips.test.ts:182)", "shortDescription": {"text": "Dangling fetch: POST /slips/${sessionId}/confirm (apps/api/src/routes/slips.test.ts:182)"}, "fullDescription": {"text": "`apps/api/src/routes/slips.test.ts:182` calls `POST /slips/${sessionId}/confirm` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/slips/<p>/confirm`\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-1b0522a966c4180d", "name": "Dangling fetch: POST /slips/${sessionId}/confirm (apps/api/src/routes/slips.test.ts:196)", "shortDescription": {"text": "Dangling fetch: POST /slips/${sessionId}/confirm (apps/api/src/routes/slips.test.ts:196)"}, "fullDescription": {"text": "`apps/api/src/routes/slips.test.ts:196` calls `POST /slips/${sessionId}/confirm` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/slips/<p>/confirm`\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-3ca8e5fd7e69f513", "name": "Dangling fetch: POST /slips/${sessionId}/confirm (apps/api/src/routes/slips.test.ts:222)", "shortDescription": {"text": "Dangling fetch: POST /slips/${sessionId}/confirm (apps/api/src/routes/slips.test.ts:222)"}, "fullDescription": {"text": "`apps/api/src/routes/slips.test.ts:222` calls `POST /slips/${sessionId}/confirm` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/slips/<p>/confirm`\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-8fc2ecabc743734c", "name": "Dangling fetch: POST /slips/${sessionId}/confirm (apps/api/src/routes/slips.test.ts:245)", "shortDescription": {"text": "Dangling fetch: POST /slips/${sessionId}/confirm (apps/api/src/routes/slips.test.ts:245)"}, "fullDescription": {"text": "`apps/api/src/routes/slips.test.ts:245` calls `POST /slips/${sessionId}/confirm` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/slips/<p>/confirm`\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-56eeb2410b776d3d", "name": "Dangling fetch: GET /pos/sales-staff?showroomId=kl (apps/api/src/routes/pos.test.ts:63)", "shortDescription": {"text": "Dangling fetch: GET /pos/sales-staff?showroomId=kl (apps/api/src/routes/pos.test.ts:63)"}, "fullDescription": {"text": "`apps/api/src/routes/pos.test.ts:63` calls `GET /pos/sales-staff?showroomId=kl` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pos/sales-staff`\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-74bc54707acbc644", "name": "Dangling fetch: GET /pos/sales-staff (apps/api/src/routes/pos.test.ts:76)", "shortDescription": {"text": "Dangling fetch: GET /pos/sales-staff (apps/api/src/routes/pos.test.ts:76)"}, "fullDescription": {"text": "`apps/api/src/routes/pos.test.ts:76` calls `GET /pos/sales-staff` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pos/sales-staff`\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-5a1e3e85bac91102", "name": "Dangling fetch: POST /pos/pin-login (apps/api/src/routes/pos.test.ts:114)", "shortDescription": {"text": "Dangling fetch: POST /pos/pin-login (apps/api/src/routes/pos.test.ts:114)"}, "fullDescription": {"text": "`apps/api/src/routes/pos.test.ts:114` calls `POST /pos/pin-login` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pos/pin-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-980975b3f50178af", "name": "Dangling fetch: POST /pos/pin-login (apps/api/src/routes/pos.test.ts:126)", "shortDescription": {"text": "Dangling fetch: POST /pos/pin-login (apps/api/src/routes/pos.test.ts:126)"}, "fullDescription": {"text": "`apps/api/src/routes/pos.test.ts:126` calls `POST /pos/pin-login` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pos/pin-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-5059c3eb6307ba75", "name": "Dangling fetch: POST /pos/pin-login (apps/api/src/routes/pos.test.ts:141)", "shortDescription": {"text": "Dangling fetch: POST /pos/pin-login (apps/api/src/routes/pos.test.ts:141)"}, "fullDescription": {"text": "`apps/api/src/routes/pos.test.ts:141` calls `POST /pos/pin-login` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pos/pin-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-da758b5536ffcaa2", "name": "Dangling fetch: POST /pos/pin-login (apps/api/src/routes/pos.test.ts:147)", "shortDescription": {"text": "Dangling fetch: POST /pos/pin-login (apps/api/src/routes/pos.test.ts:147)"}, "fullDescription": {"text": "`apps/api/src/routes/pos.test.ts:147` calls `POST /pos/pin-login` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pos/pin-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-d317702a32a7b4c2", "name": "Dangling fetch: POST /pos/pin-login (apps/api/src/routes/pos.test.ts:161)", "shortDescription": {"text": "Dangling fetch: POST /pos/pin-login (apps/api/src/routes/pos.test.ts:161)"}, "fullDescription": {"text": "`apps/api/src/routes/pos.test.ts:161` calls `POST /pos/pin-login` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pos/pin-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-ea4634f785eafd3c", "name": "Dangling fetch: POST /pos/pin-login (apps/api/src/routes/pos.test.ts:173)", "shortDescription": {"text": "Dangling fetch: POST /pos/pin-login (apps/api/src/routes/pos.test.ts:173)"}, "fullDescription": {"text": "`apps/api/src/routes/pos.test.ts:173` calls `POST /pos/pin-login` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pos/pin-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-8924d2660224aed5", "name": "Dangling fetch: POST /pos/pin-login (apps/api/src/routes/pos.test.ts:184)", "shortDescription": {"text": "Dangling fetch: POST /pos/pin-login (apps/api/src/routes/pos.test.ts:184)"}, "fullDescription": {"text": "`apps/api/src/routes/pos.test.ts:184` calls `POST /pos/pin-login` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pos/pin-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-8577c807a0b7767f", "name": "Dangling fetch: POST /pos/pin-login (apps/api/src/routes/pos.test.ts:194)", "shortDescription": {"text": "Dangling fetch: POST /pos/pin-login (apps/api/src/routes/pos.test.ts:194)"}, "fullDescription": {"text": "`apps/api/src/routes/pos.test.ts:194` calls `POST /pos/pin-login` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: helper:request\nNormalized path used for matching: `/pos/pin-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-1bcf943a679811e7", "name": "Unused endpoint: USE /slips/*", "shortDescription": {"text": "Unused endpoint: USE /slips/*"}, "fullDescription": {"text": "`apps/api/src/index.ts` declares `USE /slips/*` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5baa8971ebe192a1", "name": "Unused endpoint: GET /", "shortDescription": {"text": "Unused endpoint: GET /"}, "fullDescription": {"text": "`apps/api/src/routes/sofa-combos.ts` declares `GET /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-afc064028ae39ea9", "name": "Unused endpoint: GET /history", "shortDescription": {"text": "Unused endpoint: GET /history"}, "fullDescription": {"text": "`apps/api/src/routes/sofa-combos.ts` declares `GET /history` 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-7a009b1a56794f45", "name": "Unused endpoint: POST /", "shortDescription": {"text": "Unused endpoint: POST /"}, "fullDescription": {"text": "`apps/api/src/routes/sofa-combos.ts` declares `POST /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8d5b2b188d08ca82", "name": "Unused endpoint: PUT /:id", "shortDescription": {"text": "Unused endpoint: PUT /:id"}, "fullDescription": {"text": "`apps/api/src/routes/sofa-combos.ts` declares `PUT /:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7a61c112b611f4bb", "name": "Unused endpoint: DELETE /:id", "shortDescription": {"text": "Unused endpoint: DELETE /:id"}, "fullDescription": {"text": "`apps/api/src/routes/sofa-combos.ts` declares `DELETE /:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-acce01e31336da4c", "name": "Unused endpoint: GET /deliverable-order-lines", "shortDescription": {"text": "Unused endpoint: GET /deliverable-order-lines"}, "fullDescription": {"text": "`apps/api/src/routes/consignment-notes.ts` declares `GET /deliverable-order-lines` 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-ca5756175765b49d", "name": "Unused endpoint: GET /:id", "shortDescription": {"text": "Unused endpoint: GET /:id"}, "fullDescription": {"text": "`apps/api/src/routes/consignment-notes.ts` declares `GET /:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5fbc954f63526821", "name": "Unused endpoint: PATCH /:id", "shortDescription": {"text": "Unused endpoint: PATCH /:id"}, "fullDescription": {"text": "`apps/api/src/routes/consignment-notes.ts` declares `PATCH /:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3668ab769cd681f5", "name": "Unused endpoint: POST /:id/items", "shortDescription": {"text": "Unused endpoint: POST /:id/items"}, "fullDescription": {"text": "`apps/api/src/routes/consignment-notes.ts` declares `POST /:id/items` 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-0adec3e9b570b1e7", "name": "Unused endpoint: PATCH /:id/items/:itemId", "shortDescription": {"text": "Unused endpoint: PATCH /:id/items/:itemId"}, "fullDescription": {"text": "`apps/api/src/routes/consignment-notes.ts` declares `PATCH /:id/items/:itemId` 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-06a686925186f013", "name": "Unused endpoint: DELETE /:id/items/:itemId", "shortDescription": {"text": "Unused endpoint: DELETE /:id/items/:itemId"}, "fullDescription": {"text": "`apps/api/src/routes/consignment-notes.ts` declares `DELETE /:id/items/:itemId` 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-2829b186ab04fbc9", "name": "Unused endpoint: GET /:id/payments", "shortDescription": {"text": "Unused endpoint: GET /:id/payments"}, "fullDescription": {"text": "`apps/api/src/routes/consignment-notes.ts` declares `GET /:id/payments` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a155f25bc26208ce", "name": "Unused endpoint: POST /:id/payments", "shortDescription": {"text": "Unused endpoint: POST /:id/payments"}, "fullDescription": {"text": "`apps/api/src/routes/consignment-notes.ts` declares `POST /:id/payments` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-05aa5e4bc4977a13", "name": "Unused endpoint: DELETE /:id/payments/:paymentId", "shortDescription": {"text": "Unused endpoint: DELETE /:id/payments/:paymentId"}, "fullDescription": {"text": "`apps/api/src/routes/consignment-notes.ts` declares `DELETE /:id/payments/:paymentId` 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-f39249a345a19765", "name": "Unused endpoint: PATCH /:id/status", "shortDescription": {"text": "Unused endpoint: PATCH /:id/status"}, "fullDescription": {"text": "`apps/api/src/routes/consignment-notes.ts` declares `PATCH /:id/status` 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-ebb0a0dd7da50d32", "name": "Unused endpoint: GET /deliverable-so-lines", "shortDescription": {"text": "Unused endpoint: GET /deliverable-so-lines"}, "fullDescription": {"text": "`apps/api/src/routes/delivery-orders-mfg.ts` declares `GET /deliverable-so-lines` 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-23b8d11ef5fe705b", "name": "Unused endpoint: POST /from-sos", "shortDescription": {"text": "Unused endpoint: POST /from-sos"}, "fullDescription": {"text": "`apps/api/src/routes/delivery-orders-mfg.ts` declares `POST /from-sos` 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-9518731de244fe73", "name": "Unused endpoint: GET /resolved", "shortDescription": {"text": "Unused endpoint: GET /resolved"}, "fullDescription": {"text": "`apps/api/src/routes/maintenance-config.ts` declares `GET /resolved` 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-e1e1bcfcd2dd7548", "name": "Unused endpoint: POST /changes", "shortDescription": {"text": "Unused endpoint: POST /changes"}, "fullDescription": {"text": "`apps/api/src/routes/maintenance-config.ts` declares `POST /changes` 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-3ca94e7a2afa7f24", "name": "Unused endpoint: POST /sofa-compartments/rename", "shortDescription": {"text": "Unused endpoint: POST /sofa-compartments/rename"}, "fullDescription": {"text": "`apps/api/src/routes/maintenance-config.ts` declares `POST /sofa-compartments/rename` 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-b4d82495ad031b6a", "name": "Unused endpoint: DELETE /changes/:id", "shortDescription": {"text": "Unused endpoint: DELETE /changes/:id"}, "fullDescription": {"text": "`apps/api/src/routes/maintenance-config.ts` declares `DELETE /changes/:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8898aa559b66a54b", "name": "Unused endpoint: GET /returnable-note-lines", "shortDescription": {"text": "Unused endpoint: GET /returnable-note-lines"}, "fullDescription": {"text": "`apps/api/src/routes/consignment-returns.ts` declares `GET /returnable-note-lines` 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-ba87dd2b2d4c60f3", "name": "Unused endpoint: POST /bulk-upsert", "shortDescription": {"text": "Unused endpoint: POST /bulk-upsert"}, "fullDescription": {"text": "`apps/api/src/routes/fabric-tracking.ts` declares `POST /bulk-upsert` 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-a218cf2b25a35214", "name": "Unused endpoint: PATCH /:id/active", "shortDescription": {"text": "Unused endpoint: PATCH /:id/active"}, "fullDescription": {"text": "`apps/api/src/routes/fabric-tracking.ts` declares `PATCH /:id/active` 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-234791b49988ecd6", "name": "Unused endpoint: PATCH /:id/series", "shortDescription": {"text": "Unused endpoint: PATCH /:id/series"}, "fullDescription": {"text": "`apps/api/src/routes/fabric-tracking.ts` declares `PATCH /:id/series` 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-81ca53dea5dbf0a4", "name": "Unused endpoint: PATCH /:id/supplier-code", "shortDescription": {"text": "Unused endpoint: PATCH /:id/supplier-code"}, "fullDescription": {"text": "`apps/api/src/routes/fabric-tracking.ts` declares `PATCH /:id/supplier-code` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c1b05c5f3fcd6c16", "name": "Unused endpoint: PATCH /:id/description", "shortDescription": {"text": "Unused endpoint: PATCH /:id/description"}, "fullDescription": {"text": "`apps/api/src/routes/fabric-tracking.ts` declares `PATCH /:id/description` 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-c7cb6b490cef36ac", "name": "Unused endpoint: PATCH /:id/tier", "shortDescription": {"text": "Unused endpoint: PATCH /:id/tier"}, "fullDescription": {"text": "`apps/api/src/routes/fabric-tracking.ts` declares `PATCH /:id/tier` 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-539968b6f62bba8c", "name": "Unused endpoint: GET /:id/bindings", "shortDescription": {"text": "Unused endpoint: GET /:id/bindings"}, "fullDescription": {"text": "`apps/api/src/routes/suppliers.ts` declares `GET /:id/bindings` 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-f6cf2fe34c4dde93", "name": "Unused endpoint: POST /:id/bindings", "shortDescription": {"text": "Unused endpoint: POST /:id/bindings"}, "fullDescription": {"text": "`apps/api/src/routes/suppliers.ts` declares `POST /:id/bindings` 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-f0f7a7e0170d3f3f", "name": "Unused endpoint: POST /:id/bindings/batch", "shortDescription": {"text": "Unused endpoint: POST /:id/bindings/batch"}, "fullDescription": {"text": "`apps/api/src/routes/suppliers.ts` declares `POST /:id/bindings/batch` 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-0a2fa8022b1e565f", "name": "Unused endpoint: PATCH /:id/bindings/:bindingId", "shortDescription": {"text": "Unused endpoint: PATCH /:id/bindings/:bindingId"}, "fullDescription": {"text": "`apps/api/src/routes/suppliers.ts` declares `PATCH /:id/bindings/:bindingId` 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-46d082d658d97d6f", "name": "Unused endpoint: DELETE /:id/bindings/:bindingId", "shortDescription": {"text": "Unused endpoint: DELETE /:id/bindings/:bindingId"}, "fullDescription": {"text": "`apps/api/src/routes/suppliers.ts` declares `DELETE /:id/bindings/:bindingId` 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-aaa5fc3479650583", "name": "Unused endpoint: GET /:id/scorecard", "shortDescription": {"text": "Unused endpoint: GET /:id/scorecard"}, "fullDescription": {"text": "`apps/api/src/routes/suppliers.ts` declares `GET /:id/scorecard` 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-c2d525cea2b0428d", "name": "Unused endpoint: GET /material/:kind/:code", "shortDescription": {"text": "Unused endpoint: GET /material/:kind/:code"}, "fullDescription": {"text": "`apps/api/src/routes/suppliers.ts` declares `GET /material/:kind/:code` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-21c7ff7b8ef22c44", "name": "Unused endpoint: GET /accounts", "shortDescription": {"text": "Unused endpoint: GET /accounts"}, "fullDescription": {"text": "`apps/api/src/routes/accounting.ts` declares `GET /accounts` 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-fcb87da63eff9d52", "name": "Unused endpoint: GET /journal-entries", "shortDescription": {"text": "Unused endpoint: GET /journal-entries"}, "fullDescription": {"text": "`apps/api/src/routes/accounting.ts` declares `GET /journal-entries` 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-41a1b4e615256180", "name": "Unused endpoint: GET /journal-entries/:id", "shortDescription": {"text": "Unused endpoint: GET /journal-entries/:id"}, "fullDescription": {"text": "`apps/api/src/routes/accounting.ts` declares `GET /journal-entries/:id` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6cc7cd5608b16436", "name": "Unused endpoint: POST /journal-entries", "shortDescription": {"text": "Unused endpoint: POST /journal-entries"}, "fullDescription": {"text": "`apps/api/src/routes/accounting.ts` declares `POST /journal-entries` 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-819a3820a961d11d", "name": "Unused endpoint: POST /journal-entries/:id/post", "shortDescription": {"text": "Unused endpoint: POST /journal-entries/:id/post"}, "fullDescription": {"text": "`apps/api/src/routes/accounting.ts` declares `POST /journal-entries/:id/post` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-265a6a3214544a44", "name": "Unused endpoint: POST /post/si/:invoiceNumber", "shortDescription": {"text": "Unused endpoint: POST /post/si/:invoiceNumber"}, "fullDescription": {"text": "`apps/api/src/routes/accounting.ts` declares `POST /post/si/:invoiceNumber` 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-7d5fce5930ed728e", "name": "Unused endpoint: POST /post/pi/:invoiceNumber", "shortDescription": {"text": "Unused endpoint: POST /post/pi/:invoiceNumber"}, "fullDescription": {"text": "`apps/api/src/routes/accounting.ts` declares `POST /post/pi/:invoiceNumber` 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-52a115bcd17a5fc5", "name": "Unused endpoint: GET /gl", "shortDescription": {"text": "Unused endpoint: GET /gl"}, "fullDescription": {"text": "`apps/api/src/routes/accounting.ts` declares `GET /gl` 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-17743c3df234a428", "name": "Unused endpoint: GET /balances", "shortDescription": {"text": "Unused endpoint: GET /balances"}, "fullDescription": {"text": "`apps/api/src/routes/accounting.ts` declares `GET /balances` 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-cf56d2978d45bc62", "name": "Unused endpoint: GET /ar-aging", "shortDescription": {"text": "Unused endpoint: GET /ar-aging"}, "fullDescription": {"text": "`apps/api/src/routes/accounting.ts` declares `GET /ar-aging` 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-f197ed2ec62b6aff", "name": "Unused endpoint: GET /ap-aging", "shortDescription": {"text": "Unused endpoint: GET /ap-aging"}, "fullDescription": {"text": "`apps/api/src/routes/accounting.ts` declares `GET /ap-aging` 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-67d28fa8cd6bb12f", "name": "Unused endpoint: PUT /", "shortDescription": {"text": "Unused endpoint: PUT /"}, "fullDescription": {"text": "`apps/api/src/routes/pos-cart.ts` declares `PUT /` 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-92db9a379bb63a73", "name": "Unused endpoint: GET /:id/linked", "shortDescription": {"text": "Unused endpoint: GET /:id/linked"}, "fullDescription": {"text": "`apps/api/src/routes/purchase-consignment-orders.ts` declares `GET /:id/linked` 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-dfe885b7dde97865", "name": "Unused endpoint: PATCH /:id/submit", "shortDescription": {"text": "Unused endpoint: PATCH /:id/submit"}, "fullDescription": {"text": "`apps/api/src/routes/purchase-consignment-orders.ts` declares `PATCH /:id/submit` 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/22669"}, "properties": {"repository": "wenwei4046/2990s", "repoUrl": "https://github.com/wenwei4046/2990s", "branch": "main"}, "results": [{"ruleId": "scanner-e9f82c2ee5bc3990", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/api/src/env.ts:46"}, "properties": {"repobilityId": "9b9594a14c2beab3", "scanner": "scanner-primary", "fingerprint": "e9f82c2ee5bc3990", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-6a9141272ba88a4c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/index.ts:180"}, "properties": {"repobilityId": "a178156af585d748", "scanner": "scanner-primary", "fingerprint": "6a9141272ba88a4c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3daa0a247d41f741", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 apps/api/src/routes/categories.ts:5"}, "properties": {"repobilityId": "7d927c3684ac2774", "scanner": "scanner-primary", "fingerprint": "3daa0a247d41f741", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-e69cad6895916a9c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 apps/api/src/routes/mfg-sales-orders.ts:896"}, "properties": {"repobilityId": "1e59bc964c355634", "scanner": "scanner-primary", "fingerprint": "e69cad6895916a9c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ed97fa2dd0a5305c", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 prototype/pos-configurator.jsx:205"}, "properties": {"repobilityId": "342c8cb0f289c3e7", "scanner": "scanner-primary", "fingerprint": "ed97fa2dd0a5305c", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-c5e22419c24d1d32", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/db/scripts/backfill-so-line-cost.ts:123"}, "properties": {"repobilityId": "d6468bc73f32f0b5", "scanner": "scanner-primary", "fingerprint": "c5e22419c24d1d32", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6d87e50b3d1a6643", "level": "note", "message": {"text": "Insecure pattern 'document_write' in prototype/backend-drawer.jsx:108"}, "properties": {"repobilityId": "2954e17ec7635775", "scanner": "scanner-primary", "fingerprint": "6d87e50b3d1a6643", "layer": "security", "severity": "low", "confidence": 1.0, "tags": ["owasp", "document_write"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototype/backend-drawer.jsx"}, "region": {"startLine": 108}}}]}, {"ruleId": "scanner-eb684c2b4b3b9cc2", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in prototype/pos-configurator.jsx:205"}, "properties": {"repobilityId": "f8a7eb2e1354a9c8", "scanner": "scanner-primary", "fingerprint": "eb684c2b4b3b9cc2", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "prototype/pos-configurator.jsx"}, "region": {"startLine": 205}}}]}, {"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-f0bf0db0a4e9cf60", "level": "note", "message": {"text": "Very large file: apps/api/src/routes/delivery-orders-mfg.ts (2355 lines)"}, "properties": {"repobilityId": "d60e97fec9275865", "scanner": "scanner-primary", "fingerprint": "f0bf0db0a4e9cf60", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ae10826756f4d405", "level": "note", "message": {"text": "Very large file: apps/api/src/routes/scan-so.ts (1475 lines)"}, "properties": {"repobilityId": "152548ac2f7aa43f", "scanner": "scanner-primary", "fingerprint": "ae10826756f4d405", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-79d5efe993283ad4", "level": "note", "message": {"text": "Very large file: apps/api/src/routes/consignment-orders.ts (1950 lines)"}, "properties": {"repobilityId": "a44ef96ac98cd084", "scanner": "scanner-primary", "fingerprint": "79d5efe993283ad4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d2194564787aad73", "level": "note", "message": {"text": "Very large file: apps/api/src/routes/delivery-returns.ts (1317 lines)"}, "properties": {"repobilityId": "b40d697125206424", "scanner": "scanner-primary", "fingerprint": "d2194564787aad73", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b1ed5b664eb19468", "level": "note", "message": {"text": "Very large file: apps/api/src/routes/purchase-invoices.ts (1077 lines)"}, "properties": {"repobilityId": "8a6444f8f47bc07c", "scanner": "scanner-primary", "fingerprint": "b1ed5b664eb19468", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-056eada43b78f96a", "level": "note", "message": {"text": "Very large file: apps/api/src/routes/purchase-consignment-receives.ts (1154 lines)"}, "properties": {"repobilityId": "54ee24456d48a98a", "scanner": "scanner-primary", "fingerprint": "056eada43b78f96a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-16d8b5607718cb00", "level": "note", "message": {"text": "Very large file: apps/api/src/routes/purchase-returns.ts (1106 lines)"}, "properties": {"repobilityId": "29bf1f2b98be2f71", "scanner": "scanner-primary", "fingerprint": "16d8b5607718cb00", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-cb72231d6507ec23", "level": "note", "message": {"text": "Very large file: apps/api/src/routes/purchase-consignment-returns.ts (952 lines)"}, "properties": {"repobilityId": "eedf81c84cddc3c6", "scanner": "scanner-primary", "fingerprint": "cb72231d6507ec23", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-df54a12e85835948", "level": "note", "message": {"text": "Very large file: apps/api/src/routes/sales-invoices.ts (1189 lines)"}, "properties": {"repobilityId": "8a62e7bfc0f0f0d1", "scanner": "scanner-primary", "fingerprint": "df54a12e85835948", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-50fae60e967c71b8", "level": "note", "message": {"text": "Very large file: apps/api/src/routes/grns.ts (1815 lines)"}, "properties": {"repobilityId": "da438d215a48eade", "scanner": "scanner-primary", "fingerprint": "50fae60e967c71b8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7cd2d5d09c594814", "level": "note", "message": {"text": "Very large file: apps/api/src/routes/mfg-sales-orders.ts (6758 lines)"}, "properties": {"repobilityId": "f71a9f98f9c7c7bf", "scanner": "scanner-primary", "fingerprint": "7cd2d5d09c594814", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-49b7b66c5ff7e2fc", "level": "note", "message": {"text": "Very large file: apps/api/src/routes/mfg-purchase-orders.ts (1911 lines)"}, "properties": {"repobilityId": "6dbf9683ed81e6d8", "scanner": "scanner-primary", "fingerprint": "49b7b66c5ff7e2fc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-30ac9d7d926709ac", "level": "note", "message": {"text": "Very large file: apps/pos/src/lib/queries.ts (2439 lines)"}, "properties": {"repobilityId": "d1f424c300be4ba1", "scanner": "scanner-primary", "fingerprint": "30ac9d7d926709ac", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c6f314ad8c246965", "level": "note", "message": {"text": "Very large file: apps/pos/src/pages/Products.tsx (5993 lines)"}, "properties": {"repobilityId": "12f1bad21da3be95", "scanner": "scanner-primary", "fingerprint": "c6f314ad8c246965", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-75cc37da87010ff0", "level": "note", "message": {"text": "Very large file: apps/pos/src/pages/SalesOrderMaintenance.tsx (1433 lines)"}, "properties": {"repobilityId": "4a09b871d240552f", "scanner": "scanner-primary", "fingerprint": "75cc37da87010ff0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9832b74f42dc5f8d", "level": "note", "message": {"text": "Very large file: apps/pos/src/pages/CustomBuilder.tsx (2038 lines)"}, "properties": {"repobilityId": "e3bf386e45a7790f", "scanner": "scanner-primary", "fingerprint": "9832b74f42dc5f8d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-651bca1303e1f3e8", "level": "note", "message": {"text": "Very large file: apps/pos/src/pages/Configurator.tsx (2974 lines)"}, "properties": {"repobilityId": "4ae60b85a924a9e5", "scanner": "scanner-primary", "fingerprint": "651bca1303e1f3e8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b921a5248e4545c1", "level": "note", "message": {"text": "Very large file: apps/pos/src/pages/OrderStatus.tsx (1995 lines)"}, "properties": {"repobilityId": "229d252333861e9f", "scanner": "scanner-primary", "fingerprint": "b921a5248e4545c1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-dee751ac8d4a6cd4", "level": "note", "message": {"text": "Very large file: apps/backend/src/components/DataGrid.tsx (1154 lines)"}, "properties": {"repobilityId": "d848854cf51182c7", "scanner": "scanner-primary", "fingerprint": "dee751ac8d4a6cd4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0399452c8fec9485", "level": "note", "message": {"text": "Very large file: apps/backend/src/components/SoLineCard.tsx (1415 lines)"}, "properties": {"repobilityId": "b638ce54b216ee19", "scanner": "scanner-primary", "fingerprint": "0399452c8fec9485", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0b8a2374fe396701", "level": "note", "message": {"text": "Very large file: apps/backend/src/lib/flow-queries.ts (1974 lines)"}, "properties": {"repobilityId": "e6e5f6bcc7d4bd8d", "scanner": "scanner-primary", "fingerprint": "0b8a2374fe396701", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d4c2699143ce60a0", "level": "note", "message": {"text": "Very large file: apps/backend/src/pages/GrnNew.tsx (1100 lines)"}, "properties": {"repobilityId": "7d651b3e0a088776", "scanner": "scanner-primary", "fingerprint": "d4c2699143ce60a0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-229272a8baec8002", "level": "note", "message": {"text": "Very large file: apps/backend/src/pages/Mrp.tsx (1204 lines)"}, "properties": {"repobilityId": "b9fc7db9b4fdcffc", "scanner": "scanner-primary", "fingerprint": "229272a8baec8002", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-f98bd7f20d0d75dc", "level": "note", "message": {"text": "Very large file: apps/backend/src/pages/ConsignmentOrders.tsx (1717 lines)"}, "properties": {"repobilityId": "8daf21761ee1935f", "scanner": "scanner-primary", "fingerprint": "f98bd7f20d0d75dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-603dcfd4642e0e6f", "level": "note", "message": {"text": "Very large file: apps/backend/src/pages/MfgSalesOrdersList.tsx (1742 lines)"}, "properties": {"repobilityId": "c5c737483a69b5ed", "scanner": "scanner-primary", "fingerprint": "603dcfd4642e0e6f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a4be7f8cca1e70d5", "level": "note", "message": {"text": "Very large file: apps/backend/src/pages/Products.tsx (4752 lines)"}, "properties": {"repobilityId": "3f4b8cb36934597b", "scanner": "scanner-primary", "fingerprint": "a4be7f8cca1e70d5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2d1e7cca963b2d8b", "level": "note", "message": {"text": "Very large file: apps/backend/src/pages/SalesOrderDetail.tsx (2576 lines)"}, "properties": {"repobilityId": "3a55529b2a83a972", "scanner": "scanner-primary", "fingerprint": "2d1e7cca963b2d8b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-dcd89cf363831c28", "level": "note", "message": {"text": "Very large file: apps/backend/src/pages/Inventory.tsx (1486 lines)"}, "properties": {"repobilityId": "7d0845e995702a6c", "scanner": "scanner-primary", "fingerprint": "dcd89cf363831c28", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-efe410ed3381f3ad", "level": "note", "message": {"text": "Very large file: apps/backend/src/pages/PurchaseOrderNew.tsx (1347 lines)"}, "properties": {"repobilityId": "3dfc20b4c6a0415e", "scanner": "scanner-primary", "fingerprint": "efe410ed3381f3ad", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-46c54fc207aad801", "level": "note", "message": {"text": "Very large file: apps/backend/src/pages/ProductModelDetail.tsx (1331 lines)"}, "properties": {"repobilityId": "76a2f30a3ad89780", "scanner": "scanner-primary", "fingerprint": "46c54fc207aad801", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-adbe6fdca08090d8", "level": "note", "message": {"text": "Very large file: apps/backend/src/pages/SalesOrderMaintenance.tsx (1529 lines)"}, "properties": {"repobilityId": "5a271439db744ab7", "scanner": "scanner-primary", "fingerprint": "adbe6fdca08090d8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-cfcf1d87b7b386f6", "level": "note", "message": {"text": "Very large file: apps/backend/src/pages/SupplierDetail.tsx (3807 lines)"}, "properties": {"repobilityId": "80913bb643b902f0", "scanner": "scanner-primary", "fingerprint": "cfcf1d87b7b386f6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-37b75b4d2955c344", "level": "note", "message": {"text": "Very large file: apps/backend/src/pages/ProductModels.tsx (2152 lines)"}, "properties": {"repobilityId": "4882f5a930aeef98", "scanner": "scanner-primary", "fingerprint": "37b75b4d2955c344", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ec23fc73d66621f1", "level": "note", "message": {"text": "Very large file: apps/backend/src/pages/SalesOrderNew.tsx (1298 lines)"}, "properties": {"repobilityId": "947eec831d475486", "scanner": "scanner-primary", "fingerprint": "ec23fc73d66621f1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-421836a5e55c9535", "level": "note", "message": {"text": "Very large file: apps/backend/src/pages/DeliveryOrderDetail.tsx (1208 lines)"}, "properties": {"repobilityId": "bd0743a6beb77b2f", "scanner": "scanner-primary", "fingerprint": "421836a5e55c9535", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-a53645c8cf1ec918", "level": "note", "message": {"text": "Very large file: prototype/pos-sofa-config.jsx (2074 lines)"}, "properties": {"repobilityId": "1420d8003d8fcc94", "scanner": "scanner-primary", "fingerprint": "a53645c8cf1ec918", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-65b487e2acff04cc", "level": "note", "message": {"text": "Very large file: prototype/pos-handover.jsx (1262 lines)"}, "properties": {"repobilityId": "f4cd67feb947c6af", "scanner": "scanner-primary", "fingerprint": "65b487e2acff04cc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b5bf4b973ee05cc2", "level": "note", "message": {"text": "Very large file: prototype/backend-catalog.jsx (1034 lines)"}, "properties": {"repobilityId": "39c491b40cc62967", "scanner": "scanner-primary", "fingerprint": "b5bf4b973ee05cc2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ebc53ee8716f4e86", "level": "note", "message": {"text": "Very large file: prototype/pos-configurator.jsx (1261 lines)"}, "properties": {"repobilityId": "cb74233b05580b8f", "scanner": "scanner-primary", "fingerprint": "ebc53ee8716f4e86", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-abaca13d9d48e605", "level": "note", "message": {"text": "Very large file: packages/shared/src/sofa-build.ts (1651 lines)"}, "properties": {"repobilityId": "f2cd5220b2c1373c", "scanner": "scanner-primary", "fingerprint": "abaca13d9d48e605", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7215b934191e81ac", "level": "note", "message": {"text": "Very large file: packages/shared/src/__tests__/sofa-build.test.ts (1321 lines)"}, "properties": {"repobilityId": "8a574634499df3af", "scanner": "scanner-primary", "fingerprint": "7215b934191e81ac", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b089c9b1d411f92f", "level": "note", "message": {"text": "Very large file: packages/db/src/schema.ts (2798 lines)"}, "properties": {"repobilityId": "f84bcf24c9f7eca9", "scanner": "scanner-primary", "fingerprint": "b089c9b1d411f92f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ea3b5e389d8c9c0f", "level": "note", "message": {"text": "Low test-to-source ratio"}, "properties": {"repobilityId": "ef7b2552cc00a375", "scanner": "scanner-primary", "fingerprint": "ea3b5e389d8c9c0f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["tests"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "b01653998008b451", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-b06b8d86f24c77f9", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/api/package.json"}, "properties": {"repobilityId": "ce77cd34ed0306d4", "scanner": "scanner-primary", "fingerprint": "b06b8d86f24c77f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4b7332abdf0487ba", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/pos/package.json"}, "properties": {"repobilityId": "84aa302c76e291ec", "scanner": "scanner-primary", "fingerprint": "4b7332abdf0487ba", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/pos/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-53a7af2536f80bd8", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: apps/backend/package.json"}, "properties": {"repobilityId": "637f248c83215574", "scanner": "scanner-primary", "fingerprint": "53a7af2536f80bd8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "apps/backend/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2699d5f16ae11282", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/shared/package.json"}, "properties": {"repobilityId": "37ac218a4ef9b430", "scanner": "scanner-primary", "fingerprint": "2699d5f16ae11282", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/shared/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fc789613d7976cb7", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/design-system/package.json"}, "properties": {"repobilityId": "85bd5695a7b0e38a", "scanner": "scanner-primary", "fingerprint": "fc789613d7976cb7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/design-system/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7b16ae2bd0fca524", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/db/package.json"}, "properties": {"repobilityId": "2bddd295d559a9b6", "scanner": "scanner-primary", "fingerprint": "7b16ae2bd0fca524", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/db/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "f934bcf66b6875a2", "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": "a3e8368570951201", "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": "d4fcd15379f5627a", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-b9088664ace7f748", "level": "note", "message": {"text": "Composite production-readiness gap"}, "properties": {"repobilityId": "3e26b56f8f834f87", "scanner": "scanner-primary", "fingerprint": "b9088664ace7f748", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["production-readiness", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "a4e27229e1d600bc", "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": "df7afff94c64ebd9", "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": "2625b1c9a00c5c25", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-733c57f85fe18261", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/env.ts:21"}, "properties": {"repobilityId": "bb1853439f692e5f", "scanner": "scanner-primary", "fingerprint": "733c57f85fe18261", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-02159b5abdfe2b9b", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/index.ts:160"}, "properties": {"repobilityId": "52f51ec6586668d9", "scanner": "scanner-primary", "fingerprint": "02159b5abdfe2b9b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a0c619a78c625f6d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/middleware/auth.ts:17"}, "properties": {"repobilityId": "393a7e6d49b4baab", "scanner": "scanner-primary", "fingerprint": "a0c619a78c625f6d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-bad55f5ee46f371d", "level": "none", "message": {"text": "Commented-code block (12 lines) in apps/api/src/lib/so-readiness.ts:11"}, "properties": {"repobilityId": "3ba9c5f56734135c", "scanner": "scanner-primary", "fingerprint": "bad55f5ee46f371d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c7e966aeae1962a6", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/lib/sofa-batch-guard.ts:3"}, "properties": {"repobilityId": "b754985e19d1f790", "scanner": "scanner-primary", "fingerprint": "c7e966aeae1962a6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8cb42b4514001657", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/lib/consignment-loaner.ts:5"}, "properties": {"repobilityId": "d1891c04710c5429", "scanner": "scanner-primary", "fingerprint": "8cb42b4514001657", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eeea25b503784233", "level": "none", "message": {"text": "Commented-code block (12 lines) in apps/api/src/lib/sofa-set-coverage.ts:5"}, "properties": {"repobilityId": "61e41086ef84f083", "scanner": "scanner-primary", "fingerprint": "eeea25b503784233", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c09ed3c0adad6f89", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/lib/free-gift-reconcile.ts:3"}, "properties": {"repobilityId": "728d117669b7c393", "scanner": "scanner-primary", "fingerprint": "c09ed3c0adad6f89", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b12d9f94c7b35171", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/lib/recost.ts:4"}, "properties": {"repobilityId": "e8ae9a9b49e823ba", "scanner": "scanner-primary", "fingerprint": "b12d9f94c7b35171", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3443592b9fae3d43", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/lib/cross-category-match.ts:14"}, "properties": {"repobilityId": "2064f257ad88c240", "scanner": "scanner-primary", "fingerprint": "3443592b9fae3d43", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f26dff4c08b52fac", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/lib/post-si-revenue.ts:9"}, "properties": {"repobilityId": "8cd13fb2a5fa6bd4", "scanner": "scanner-primary", "fingerprint": "f26dff4c08b52fac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c617a2a56b39d8ee", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/lib/customer-credits.ts:5"}, "properties": {"repobilityId": "3912c0444c48bf1d", "scanner": "scanner-primary", "fingerprint": "c617a2a56b39d8ee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a6a685a3f43ba77e", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/lib/service-line-guard.ts:4"}, "properties": {"repobilityId": "a552736671e48e34", "scanner": "scanner-primary", "fingerprint": "a6a685a3f43ba77e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-87c0f2436d8fc37d", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/lib/so-audit.ts:6"}, "properties": {"repobilityId": "29ad33d9b161696d", "scanner": "scanner-primary", "fingerprint": "87c0f2436d8fc37d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-af92bcca668b5782", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/lib/do-line-remaining.ts:1"}, "properties": {"repobilityId": "1ecab092d9033085", "scanner": "scanner-primary", "fingerprint": "af92bcca668b5782", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0ca6e5fff8104758", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/api/src/lib/pin-rate-limit.ts:8"}, "properties": {"repobilityId": "b2272fcd19db661a", "scanner": "scanner-primary", "fingerprint": "0ca6e5fff8104758", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-38d5f3882222009e", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/api/src/lib/allowed-options-check.ts:4"}, "properties": {"repobilityId": "1203541f33229929", "scanner": "scanner-primary", "fingerprint": "38d5f3882222009e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f2988e7fa170482e", "level": "none", "message": {"text": "Commented-code block (15 lines) in apps/api/src/lib/mfg-pricing-recompute.test.ts:3"}, "properties": {"repobilityId": "418796eab6140305", "scanner": "scanner-primary", "fingerprint": "f2988e7fa170482e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-395639fff5e63c43", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/lib/so-delivery-sync.ts:11"}, "properties": {"repobilityId": "7e4026925b704073", "scanner": "scanner-primary", "fingerprint": "395639fff5e63c43", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ea29b38df83682ab", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/lib/validate-item-codes.ts:5"}, "properties": {"repobilityId": "1078bf794dcff468", "scanner": "scanner-primary", "fingerprint": "ea29b38df83682ab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cea0e24daf78a30c", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/api/src/lib/postgrest-search.ts:5"}, "properties": {"repobilityId": "f449f60a923ea0c4", "scanner": "scanner-primary", "fingerprint": "cea0e24daf78a30c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2ca119ddf45c1bc9", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/api/src/lib/mfg-pricing-recompute.ts:8"}, "properties": {"repobilityId": "7ad3fbef8a25fc30", "scanner": "scanner-primary", "fingerprint": "2ca119ddf45c1bc9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b08583cba046cbf5", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/lib/r2.ts:149"}, "properties": {"repobilityId": "49a67515b28441a1", "scanner": "scanner-primary", "fingerprint": "b08583cba046cbf5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-adaddd852cffc0c0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/lib/r2.ts:214"}, "properties": {"repobilityId": "bd2aa8252f376e8d", "scanner": "scanner-primary", "fingerprint": "adaddd852cffc0c0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-087c8f1bc7ded85b", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/lib/check-stock-availability.ts:5"}, "properties": {"repobilityId": "3bd3886604dd248c", "scanner": "scanner-primary", "fingerprint": "087c8f1bc7ded85b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-586c443976e993df", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/lib/sku-usage.ts:3"}, "properties": {"repobilityId": "bdf92f720a0b09b1", "scanner": "scanner-primary", "fingerprint": "586c443976e993df", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b5cbcbf36d7fd4a6", "level": "none", "message": {"text": "Commented-code block (15 lines) in apps/api/src/lib/so-stock-allocation.ts:13"}, "properties": {"repobilityId": "1b7d80190faa9c29", "scanner": "scanner-primary", "fingerprint": "b5cbcbf36d7fd4a6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-df58befece312e4b", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/api/src/lib/grn-rack-sync.ts:1"}, "properties": {"repobilityId": "81b6982333e38cf7", "scanner": "scanner-primary", "fingerprint": "df58befece312e4b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e36dd0fb372fbb25", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/lib/po-pricing.ts:4"}, "properties": {"repobilityId": "87e71baab81f8b2e", "scanner": "scanner-primary", "fingerprint": "e36dd0fb372fbb25", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-56fde0323568f615", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/lib/current-doc.ts:5"}, "properties": {"repobilityId": "cbcc3ab48f1b9fb1", "scanner": "scanner-primary", "fingerprint": "56fde0323568f615", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc91c1df0bae75a3", "level": "none", "message": {"text": "Commented-code block (10 lines) in apps/api/src/lib/roles.ts:4"}, "properties": {"repobilityId": "df58daa0b06e4307", "scanner": "scanner-primary", "fingerprint": "cc91c1df0bae75a3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-66c86faeb1e41a20", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/lib/so-variant-check.ts:5"}, "properties": {"repobilityId": "c3830d22918220dc", "scanner": "scanner-primary", "fingerprint": "66c86faeb1e41a20", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc64fb0326452c31", "level": "none", "message": {"text": "Commented-code block (10 lines) in apps/api/src/routes/sofa-combos.ts:9"}, "properties": {"repobilityId": "0e0935bfbcb42834", "scanner": "scanner-primary", "fingerprint": "cc64fb0326452c31", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d6949e51b1aecb04", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/routes/consignment-notes.ts:5"}, "properties": {"repobilityId": "55ffaeedf6104dc7", "scanner": "scanner-primary", "fingerprint": "d6949e51b1aecb04", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b8a8904c14165e94", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/routes/special-addons.ts:5"}, "properties": {"repobilityId": "1d5b98c8c3357743", "scanner": "scanner-primary", "fingerprint": "b8a8904c14165e94", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2be34d1dea73231b", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/routes/delivery-orders-mfg.ts:3"}, "properties": {"repobilityId": "90823c1b99434123", "scanner": "scanner-primary", "fingerprint": "2be34d1dea73231b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-896e6bcc4bf22bb5", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/routes/maintenance-config.ts:5"}, "properties": {"repobilityId": "a70861e02a3c4702", "scanner": "scanner-primary", "fingerprint": "896e6bcc4bf22bb5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f0d284bed822cec6", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/routes/quotes.ts:62"}, "properties": {"repobilityId": "ad0e20f8cde9fa6c", "scanner": "scanner-primary", "fingerprint": "f0d284bed822cec6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-183c0d85953b7988", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/routes/pwp-rules.ts:1"}, "properties": {"repobilityId": "8a888f9b253151f9", "scanner": "scanner-primary", "fingerprint": "183c0d85953b7988", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f90405be7444ed8b", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/routes/mfg-sales-orders-allowed-options.test.ts:4"}, "properties": {"repobilityId": "73cbad408ecbb1f2", "scanner": "scanner-primary", "fingerprint": "f90405be7444ed8b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4e2d25a9a3925621", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/routes/consignment-returns.ts:5"}, "properties": {"repobilityId": "5ecba53d0bfa8317", "scanner": "scanner-primary", "fingerprint": "4e2d25a9a3925621", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e65c1621724912f3", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/api/src/routes/cross-category-match.test.ts:1"}, "properties": {"repobilityId": "eaeda9e4fa1477cf", "scanner": "scanner-primary", "fingerprint": "e65c1621724912f3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eea239faf6c2b3dd", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/routes/fabric-tracking.ts:4"}, "properties": {"repobilityId": "f0099a89322606fa", "scanner": "scanner-primary", "fingerprint": "eea239faf6c2b3dd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fba0d99f3eb14c82", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/api/src/routes/mfg-sales-orders.customer-search.test.ts:1"}, "properties": {"repobilityId": "b69a474e33b73d4b", "scanner": "scanner-primary", "fingerprint": "fba0d99f3eb14c82", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba6dbafa7060e727", "level": "none", "message": {"text": "Commented-code block (12 lines) in apps/api/src/routes/accounting.ts:4"}, "properties": {"repobilityId": "0ee863f81ccdc731", "scanner": "scanner-primary", "fingerprint": "ba6dbafa7060e727", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1988389b83b84fd4", "level": "none", "message": {"text": "Commented-code block (15 lines) in apps/api/src/routes/purchase-consignment-orders.ts:5"}, "properties": {"repobilityId": "ea6346a302eca862", "scanner": "scanner-primary", "fingerprint": "1988389b83b84fd4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a575ecc78bc480bf", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/routes/stock-transfers.ts:4"}, "properties": {"repobilityId": "ddefcc6fbcfaecf1", "scanner": "scanner-primary", "fingerprint": "a575ecc78bc480bf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3d9531f5bcab2724", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/routes/model-free-gifts.ts:1"}, "properties": {"repobilityId": "dc3d7a4686183f60", "scanner": "scanner-primary", "fingerprint": "3d9531f5bcab2724", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-09ebcfb923adfe3b", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/routes/stock-takes.ts:9"}, "properties": {"repobilityId": "d370d2d34c809588", "scanner": "scanner-primary", "fingerprint": "09ebcfb923adfe3b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8aa45d6393399e70", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/routes/document-flow.ts:12"}, "properties": {"repobilityId": "435e3761e247f52c", "scanner": "scanner-primary", "fingerprint": "8aa45d6393399e70", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-057328bebdc56eef", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/routes/localities.ts:4"}, "properties": {"repobilityId": "b106f8132e95367f", "scanner": "scanner-primary", "fingerprint": "057328bebdc56eef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dc81587ad94aa5e4", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/routes/so-settings.ts:1"}, "properties": {"repobilityId": "0a216db1e5f20ed7", "scanner": "scanner-primary", "fingerprint": "dc81587ad94aa5e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6da35d774e1eacc2", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/api/src/routes/product-models.ts:8"}, "properties": {"repobilityId": "4dc34267128104c8", "scanner": "scanner-primary", "fingerprint": "6da35d774e1eacc2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8d3e0dbe327f602e", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/api/src/routes/reports.ts:10"}, "properties": {"repobilityId": "097066a8cfa2667c", "scanner": "scanner-primary", "fingerprint": "8d3e0dbe327f602e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-73c206113e09656f", "level": "none", "message": {"text": "Commented-code block (17 lines) in apps/api/src/routes/scan-so.ts:6"}, "properties": {"repobilityId": "bcab46562b1830b3", "scanner": "scanner-primary", "fingerprint": "73c206113e09656f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4f55b044bcedceea", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/api/src/routes/consignment-orders.ts:8"}, "properties": {"repobilityId": "27204909c101fe67", "scanner": "scanner-primary", "fingerprint": "4f55b044bcedceea", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cd03e12d51bdee4a", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/routes/slips.ts:30"}, "properties": {"repobilityId": "787a52d449cace22", "scanner": "scanner-primary", "fingerprint": "cd03e12d51bdee4a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0944e6c190e7867e", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/routes/state-warehouse-mappings.ts:7"}, "properties": {"repobilityId": "954041fb663e9e41", "scanner": "scanner-primary", "fingerprint": "0944e6c190e7867e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f71d17634bc3f19", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/routes/so-dropdown-options.ts:4"}, "properties": {"repobilityId": "35736f97d13502d1", "scanner": "scanner-primary", "fingerprint": "0f71d17634bc3f19", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-efa4d9770615899d", "level": "note", "message": {"text": "Legacy-named symbol `useLegacy` in apps/api/src/routes/mrp.ts:472"}, "properties": {"repobilityId": "166c6e7fcde93706", "scanner": "scanner-primary", "fingerprint": "efa4d9770615899d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e7ffd39b6e56accf", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/routes/mrp.ts:9"}, "properties": {"repobilityId": "b4b01614abdab029", "scanner": "scanner-primary", "fingerprint": "e7ffd39b6e56accf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0a4f7534da796f6d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/routes/mrp.ts:306"}, "properties": {"repobilityId": "5fe20eb7dd8d3a02", "scanner": "scanner-primary", "fingerprint": "0a4f7534da796f6d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-18baa531b35fb782", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/routes/delivery-returns.ts:3"}, "properties": {"repobilityId": "8133a54eeb280f5b", "scanner": "scanner-primary", "fingerprint": "18baa531b35fb782", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6a16ba56d931b963", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/routes/products.ts:32"}, "properties": {"repobilityId": "9e183a80e984cd3e", "scanner": "scanner-primary", "fingerprint": "6a16ba56d931b963", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fbb5d6fe83b5d44b", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/routes/purchase-consignment-receives.ts:4"}, "properties": {"repobilityId": "d0735144232d6979", "scanner": "scanner-primary", "fingerprint": "fbb5d6fe83b5d44b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-24c4e95aa29668b7", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/routes/pwp-codes.ts:1"}, "properties": {"repobilityId": "be32e6dfc3fce895", "scanner": "scanner-primary", "fingerprint": "24c4e95aa29668b7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6a79e373a2bb24f1", "level": "none", "message": {"text": "Commented-code block (10 lines) in apps/api/src/routes/warehouse.ts:13"}, "properties": {"repobilityId": "e3d969883995cfd7", "scanner": "scanner-primary", "fingerprint": "6a79e373a2bb24f1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1dec8423cf8940e0", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/routes/mfg-products.ts:12"}, "properties": {"repobilityId": "8c511a9e0b829464", "scanner": "scanner-primary", "fingerprint": "1dec8423cf8940e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-432e4692dcdace3c", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/api/src/routes/purchase-returns.ts:7"}, "properties": {"repobilityId": "70de958fe9658381", "scanner": "scanner-primary", "fingerprint": "432e4692dcdace3c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1352a8f3833af90", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/routes/sofa-compartment-photos.ts:4"}, "properties": {"repobilityId": "c28bc3080632e545", "scanner": "scanner-primary", "fingerprint": "f1352a8f3833af90", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-58fb49ddda3c2c3b", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/routes/model-free-gifts.test.ts:1"}, "properties": {"repobilityId": "6bd215501a6508c2", "scanner": "scanner-primary", "fingerprint": "58fb49ddda3c2c3b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-632335f8c94a77e8", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/routes/purchase-consignment-returns.ts:7"}, "properties": {"repobilityId": "4a0395b94f4eabcf", "scanner": "scanner-primary", "fingerprint": "632335f8c94a77e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-09db79710f532003", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/routes/sales-invoices.ts:3"}, "properties": {"repobilityId": "25713d8d1fc26a97", "scanner": "scanner-primary", "fingerprint": "09db79710f532003", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-df0994eca26fe6f5", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/api/src/routes/pos.ts:259"}, "properties": {"repobilityId": "b7b7924619376288", "scanner": "scanner-primary", "fingerprint": "df0994eca26fe6f5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7ec01d151e265596", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/routes/admin.ts:169"}, "properties": {"repobilityId": "29cb791846d53c2b", "scanner": "scanner-primary", "fingerprint": "7ec01d151e265596", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dd4df2a66c0ac940", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/routes/grns.ts:60"}, "properties": {"repobilityId": "34ba5e10d65dee74", "scanner": "scanner-primary", "fingerprint": "dd4df2a66c0ac940", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f0fab948af2c509c", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/routes/personal-quick-picks.ts:12"}, "properties": {"repobilityId": "3ba833d9156078bf", "scanner": "scanner-primary", "fingerprint": "f0fab948af2c509c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cd693f05012bddac", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/api/src/routes/mfg-products.test.ts:1"}, "properties": {"repobilityId": "69987d9a68dadae2", "scanner": "scanner-primary", "fingerprint": "cd693f05012bddac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c2c296251f8ae5e", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/routes/venues.ts:4"}, "properties": {"repobilityId": "a03254608a800b30", "scanner": "scanner-primary", "fingerprint": "2c2c296251f8ae5e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e75c07240162299b", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/routes/outstanding.ts:19"}, "properties": {"repobilityId": "061b495152270aae", "scanner": "scanner-primary", "fingerprint": "e75c07240162299b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d4842efbb57cdaa5", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/api/src/routes/slips.test.ts:44"}, "properties": {"repobilityId": "82fbdff39b2ab988", "scanner": "scanner-primary", "fingerprint": "d4842efbb57cdaa5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b2a72e8fadcaabee", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/routes/mfg-sales-orders.ts:474"}, "properties": {"repobilityId": "d2e3b337a4dff93c", "scanner": "scanner-primary", "fingerprint": "b2a72e8fadcaabee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-023213ad8a8f2935", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/api/src/routes/mfg-sales-orders.ts:1036"}, "properties": {"repobilityId": "57840af33e3b45bf", "scanner": "scanner-primary", "fingerprint": "023213ad8a8f2935", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-390c8d39518f609d", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/api/src/routes/mfg-purchase-orders.ts:9"}, "properties": {"repobilityId": "48b64be2fa5740b4", "scanner": "scanner-primary", "fingerprint": "390c8d39518f609d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4354e68b9f378442", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/api/src/routes/audit-log.ts:1"}, "properties": {"repobilityId": "7f5ee99113f9b78f", "scanner": "scanner-primary", "fingerprint": "4354e68b9f378442", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-50c9630a8466021e", "level": "none", "message": {"text": "Commented-code block (15 lines) in apps/api/src/routes/inventory.ts:8"}, "properties": {"repobilityId": "a23160c15c7e9a49", "scanner": "scanner-primary", "fingerprint": "50c9630a8466021e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-581b7ef4a767ffd1", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/pos/vite.config.ts:42"}, "properties": {"repobilityId": "a1b8007aa59e570f", "scanner": "scanner-primary", "fingerprint": "581b7ef4a767ffd1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4f868072a8694cc7", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/pos/src/main.tsx:15"}, "properties": {"repobilityId": "92ebca91b282a061", "scanner": "scanner-primary", "fingerprint": "4f868072a8694cc7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-22798e31d92ac1fb", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/pos/src/components/AuthGate.tsx:9"}, "properties": {"repobilityId": "2e32b167e33fd570", "scanner": "scanner-primary", "fingerprint": "22798e31d92ac1fb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1c7d95d4bc76ca2e", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/pos/src/components/MaintainGate.tsx:5"}, "properties": {"repobilityId": "6f92f948368091f5", "scanner": "scanner-primary", "fingerprint": "1c7d95d4bc76ca2e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d5585f66c40b16c3", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/pos/src/components/BedframeOptions.tsx:24"}, "properties": {"repobilityId": "ac9d80f917176668", "scanner": "scanner-primary", "fingerprint": "d5585f66c40b16c3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f63f9667168cc0f1", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/pos/src/components/TbcLineEditor.tsx:1"}, "properties": {"repobilityId": "4c9c6c04664d15b0", "scanner": "scanner-primary", "fingerprint": "f63f9667168cc0f1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eb86a869e2d9273e", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/pos/src/components/SpecialAddonsPicker.tsx:6"}, "properties": {"repobilityId": "7d688a63259ff3c8", "scanner": "scanner-primary", "fingerprint": "eb86a869e2d9273e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f0845dd811eb4f7", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/pos/src/components/CustomerNameSearch.tsx:1"}, "properties": {"repobilityId": "127a1a012d67921f", "scanner": "scanner-primary", "fingerprint": "0f0845dd811eb4f7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-316e6886ca0fcc9b", "level": "none", "message": {"text": "Commented-code block (11 lines) in apps/pos/src/components/SofaCellsPreview.tsx:62"}, "properties": {"repobilityId": "294471cc35e54564", "scanner": "scanner-primary", "fingerprint": "316e6886ca0fcc9b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-645fe00bccf18f7c", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/pos/src/components/handover/StepFooter.tsx:47"}, "properties": {"repobilityId": "5ebb3e4c2db99644", "scanner": "scanner-primary", "fingerprint": "645fe00bccf18f7c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f88b4dfa452d8017", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/pos/src/components/products/SofaComboTab.tsx:8"}, "properties": {"repobilityId": "ce56a6bf82584146", "scanner": "scanner-primary", "fingerprint": "f88b4dfa452d8017", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8fe71ce32a24147a", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/pos/src/components/products/PwpRulesTab.tsx:11"}, "properties": {"repobilityId": "59fdcbae157c200f", "scanner": "scanner-primary", "fingerprint": "8fe71ce32a24147a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f418f7bdc8220fe6", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/pos/src/lib/pos-handover-so.ts:3"}, "properties": {"repobilityId": "422a2d76459d85f6", "scanner": "scanner-primary", "fingerprint": "f418f7bdc8220fe6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5a022fd0e067a642", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/pos/src/lib/sofa-seamless.tsx:73"}, "properties": {"repobilityId": "dda7749886cc12a9", "scanner": "scanner-primary", "fingerprint": "5a022fd0e067a642", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6edc69ecb28aacbf", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/lib/quotes.ts:53"}, "properties": {"repobilityId": "e3fdd4a7cc1276c7", "scanner": "scanner-primary", "fingerprint": "6edc69ecb28aacbf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-cd264d8dfe040b1e", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/pos/src/lib/handover-helpers.ts:181"}, "properties": {"repobilityId": "7a75e5993eac103a", "scanner": "scanner-primary", "fingerprint": "cd264d8dfe040b1e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2fff004f2f3c7de3", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/pos/src/lib/customer-search.ts:4"}, "properties": {"repobilityId": "9706c7dd24532b87", "scanner": "scanner-primary", "fingerprint": "2fff004f2f3c7de3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a69bb22545162f83", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/lib/customer-search.ts:87"}, "properties": {"repobilityId": "ffff669de3dce404", "scanner": "scanner-primary", "fingerprint": "a69bb22545162f83", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a2aa6e2c7d46b845", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/pos/src/lib/pwp-code-sync.ts:67"}, "properties": {"repobilityId": "85a2c9aeea1bc643", "scanner": "scanner-primary", "fingerprint": "a2aa6e2c7d46b845", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c6cfbff5815bae8f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/lib/staff.ts:87"}, "properties": {"repobilityId": "06435e87bbae2aac", "scanner": "scanner-primary", "fingerprint": "c6cfbff5815bae8f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c54ba75d05dc3a42", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/pos/src/lib/queries.ts:181"}, "properties": {"repobilityId": "f64a9c18322ccf72", "scanner": "scanner-primary", "fingerprint": "c54ba75d05dc3a42", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-15f8488ccca168ff", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/lib/queries.ts:42"}, "properties": {"repobilityId": "af1b6894ffa4b399", "scanner": "scanner-primary", "fingerprint": "15f8488ccca168ff", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0820ac257527ebeb", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/pos/src/lib/cart-sync.ts:81"}, "properties": {"repobilityId": "c17476874a617631", "scanner": "scanner-primary", "fingerprint": "0820ac257527ebeb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-30c6aee4181c56ef", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/lib/slip.ts:50"}, "properties": {"repobilityId": "d5a0e2cbe4b985ed", "scanner": "scanner-primary", "fingerprint": "30c6aee4181c56ef", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1e06594f5b8649cd", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/lib/personal-quick-picks.ts:54"}, "properties": {"repobilityId": "53162ced85df407f", "scanner": "scanner-primary", "fingerprint": "1e06594f5b8649cd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-2e7e498b0b341819", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/pos/src/lib/sofa-art.ts:1"}, "properties": {"repobilityId": "d21d450e6bc26e70", "scanner": "scanner-primary", "fingerprint": "2e7e498b0b341819", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc8ec270d8ac6f15", "level": "none", "message": {"text": "Commented-code block (10 lines) in apps/pos/src/lib/sofa-corner.tsx:4"}, "properties": {"repobilityId": "3dd0f303d8c5cfd2", "scanner": "scanner-primary", "fingerprint": "cc8ec270d8ac6f15", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3fb8d3a79fadc854", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/pos/src/lib/session-recovery.ts:5"}, "properties": {"repobilityId": "3bd2a8e039cfc3f9", "scanner": "scanner-primary", "fingerprint": "3fb8d3a79fadc854", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5a99232fcf191844", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/pos/src/lib/pos-handover-so.test.ts:95"}, "properties": {"repobilityId": "da57b581721447ee", "scanner": "scanner-primary", "fingerprint": "5a99232fcf191844", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dbf9df3a752107d8", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/pos/src/lib/so-doc.ts:163"}, "properties": {"repobilityId": "bcb29fe8fa8a3003", "scanner": "scanner-primary", "fingerprint": "dbf9df3a752107d8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-10920e81756642e9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/lib/so-doc.ts:120"}, "properties": {"repobilityId": "650919abacf25739", "scanner": "scanner-primary", "fingerprint": "10920e81756642e9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f304045a73dabbe7", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/pos/src/lib/so-maintenance/warehouses-queries.ts:1"}, "properties": {"repobilityId": "0deb314657454212", "scanner": "scanner-primary", "fingerprint": "f304045a73dabbe7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c39a9890326fea10", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/pos/src/lib/so-maintenance/so-settings-queries.ts:1"}, "properties": {"repobilityId": "03acbaac3069f9f7", "scanner": "scanner-primary", "fingerprint": "c39a9890326fea10", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5142d6d103b1d3e8", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/pos/src/lib/so-maintenance/so-dropdown-options-queries.ts:5"}, "properties": {"repobilityId": "dd7649b88965f352", "scanner": "scanner-primary", "fingerprint": "5142d6d103b1d3e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-46b3a491738fba17", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/pos/src/lib/so-maintenance/state-warehouse-queries.ts:1"}, "properties": {"repobilityId": "79491e5d48a13112", "scanner": "scanner-primary", "fingerprint": "46b3a491738fba17", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-425e5b5d6378b80a", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/lib/products/product-models-queries.ts:223"}, "properties": {"repobilityId": "2437face715b66d0", "scanner": "scanner-primary", "fingerprint": "425e5b5d6378b80a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-23a78a5ea6787aca", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/pos/src/lib/products/mfg-products-queries.ts:5"}, "properties": {"repobilityId": "c60e07a1e2fb59c1", "scanner": "scanner-primary", "fingerprint": "23a78a5ea6787aca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c0a880b442e59ff", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/lib/products/mfg-products-queries.ts:604"}, "properties": {"repobilityId": "99fdea6d41bcce16", "scanner": "scanner-primary", "fingerprint": "2c0a880b442e59ff", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3c07f8e72523392c", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/pos/src/lib/products/pwp-queries.ts:104"}, "properties": {"repobilityId": "dd4e745f79ed81d7", "scanner": "scanner-primary", "fingerprint": "3c07f8e72523392c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e4e7e8bb88338bec", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/pos/src/lib/products/fabric-queries.ts:4"}, "properties": {"repobilityId": "8300a0f4cd9a0148", "scanner": "scanner-primary", "fingerprint": "e4e7e8bb88338bec", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-60b782ef1ac7e282", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/pos/src/lib/products/size-info.ts:4"}, "properties": {"repobilityId": "a096557bcbcfa6b5", "scanner": "scanner-primary", "fingerprint": "60b782ef1ac7e282", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c551f080e0b89414", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/pos/src/pages/NewOrder.tsx:7"}, "properties": {"repobilityId": "36b250f0db20076d", "scanner": "scanner-primary", "fingerprint": "c551f080e0b89414", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-19de5ffdaa8bb998", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/pos/src/pages/Products.tsx:4"}, "properties": {"repobilityId": "2e848bea86297e8c", "scanner": "scanner-primary", "fingerprint": "19de5ffdaa8bb998", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0e870dc90a2f3e53", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/pos/src/pages/SetPassword.tsx:8"}, "properties": {"repobilityId": "06ed4eb22831a358", "scanner": "scanner-primary", "fingerprint": "0e870dc90a2f3e53", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c71e54cfdb3106c9", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/pos/src/pages/Handover.tsx:205"}, "properties": {"repobilityId": "621b14786fb6fc5d", "scanner": "scanner-primary", "fingerprint": "c71e54cfdb3106c9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f94a018c464ca4aa", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/pos/src/pages/HandoverConfirmed.tsx:3"}, "properties": {"repobilityId": "23ac562bbe0654c8", "scanner": "scanner-primary", "fingerprint": "f94a018c464ca4aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-53c144174f73e64b", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/pos/src/pages/SalesOrderMaintenance.tsx:10"}, "properties": {"repobilityId": "0cdf030921e83009", "scanner": "scanner-primary", "fingerprint": "53c144174f73e64b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f7fec70d28ace917", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/pos/src/pages/CustomBuilder.tsx:47"}, "properties": {"repobilityId": "11e8a884050fa54e", "scanner": "scanner-primary", "fingerprint": "f7fec70d28ace917", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-449e261a45e7081c", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/pos/src/pages/Catalog.tsx:38"}, "properties": {"repobilityId": "486dace6b72fd9e1", "scanner": "scanner-primary", "fingerprint": "449e261a45e7081c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c721fbdee6b81ae", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/pages/Catalog.tsx:196"}, "properties": {"repobilityId": "b45ddb91f6526d80", "scanner": "scanner-primary", "fingerprint": "0c721fbdee6b81ae", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-33d4938ef3c026f9", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/pos/src/pages/ChangePin.tsx:1"}, "properties": {"repobilityId": "974c4f9ec3b70d60", "scanner": "scanner-primary", "fingerprint": "33d4938ef3c026f9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-64a576d9e2e88e08", "level": "none", "message": {"text": "Commented-code block (10 lines) in apps/pos/src/pages/Configurator.tsx:98"}, "properties": {"repobilityId": "e7f593cd43ba1ea7", "scanner": "scanner-primary", "fingerprint": "64a576d9e2e88e08", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-efcdb20d70fe81d4", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/pos/src/pages/OrderStatus.tsx:1322"}, "properties": {"repobilityId": "7d6b5dd99bcc15c3", "scanner": "scanner-primary", "fingerprint": "efcdb20d70fe81d4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3976dd39ba4032e8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/pos/src/pages/OrderStatus.tsx:223"}, "properties": {"repobilityId": "1835e57d79af956c", "scanner": "scanner-primary", "fingerprint": "3976dd39ba4032e8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b740a93b4df586fe", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/vite.config.ts:32"}, "properties": {"repobilityId": "25b4e9ec1fd719b8", "scanner": "scanner-primary", "fingerprint": "b740a93b4df586fe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fb40fd98ffea76a3", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/router.tsx:11"}, "properties": {"repobilityId": "d0afe0a87ad5993e", "scanner": "scanner-primary", "fingerprint": "fb40fd98ffea76a3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ce9524292e83fa0", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/backend/src/components/SofaComboTab.tsx:8"}, "properties": {"repobilityId": "c70435b5977a07d5", "scanner": "scanner-primary", "fingerprint": "8ce9524292e83fa0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6ec2a18e5854067c", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/components/CommandPalette.tsx:1"}, "properties": {"repobilityId": "8950da7c9a0403dd", "scanner": "scanner-primary", "fingerprint": "6ec2a18e5854067c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2172a57e25d87d1f", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/components/SpecialAddonsTab.tsx:1"}, "properties": {"repobilityId": "cf3a6a804d44b1b5", "scanner": "scanner-primary", "fingerprint": "2172a57e25d87d1f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b243e278cfd4bb63", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/components/ConfirmDialog.tsx:1"}, "properties": {"repobilityId": "223f71220814db69", "scanner": "scanner-primary", "fingerprint": "b243e278cfd4bb63", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-717faf4e61a74daa", "level": "none", "message": {"text": "Commented-code block (10 lines) in apps/backend/src/components/PaymentsTable.tsx:9"}, "properties": {"repobilityId": "ab00e43970375e1e", "scanner": "scanner-primary", "fingerprint": "717faf4e61a74daa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-162eb163e0c88577", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/components/DocumentFlowModal.tsx:3"}, "properties": {"repobilityId": "c0b785c25fe293f5", "scanner": "scanner-primary", "fingerprint": "162eb163e0c88577", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-49520d0395685e9b", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/components/SmartButtons.tsx:7"}, "properties": {"repobilityId": "6f8d56cf700cc90e", "scanner": "scanner-primary", "fingerprint": "49520d0395685e9b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4a1b1e76beff0f85", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/components/VariantDescription.tsx:12"}, "properties": {"repobilityId": "0301097cd55af71c", "scanner": "scanner-primary", "fingerprint": "4a1b1e76beff0f85", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1314c5344415adf", "level": "none", "message": {"text": "Commented-code block (11 lines) in apps/backend/src/components/SofaSetDialog.tsx:8"}, "properties": {"repobilityId": "bcac796909a21250", "scanner": "scanner-primary", "fingerprint": "f1314c5344415adf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5581064ae9a3752f", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/components/FabricsTable.tsx:11"}, "properties": {"repobilityId": "470b5c18368fcb1e", "scanner": "scanner-primary", "fingerprint": "5581064ae9a3752f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1c704adae62387fa", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/components/PcVariantEditor.tsx:1"}, "properties": {"repobilityId": "7a58036edf6e633d", "scanner": "scanner-primary", "fingerprint": "1c704adae62387fa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8603a5dae1f73448", "level": "none", "message": {"text": "Commented-code block (13 lines) in apps/backend/src/components/DataGrid.tsx:3"}, "properties": {"repobilityId": "19d401bb6a0dacd4", "scanner": "scanner-primary", "fingerprint": "8603a5dae1f73448", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b337e7235cbf99b4", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/components/SoLineCard.tsx:16"}, "properties": {"repobilityId": "9f87e35527736b59", "scanner": "scanner-primary", "fingerprint": "b337e7235cbf99b4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1d881e2b034cdaa6", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/components/SofaSetInline.tsx:4"}, "properties": {"repobilityId": "c5afeaaad874b133", "scanner": "scanner-primary", "fingerprint": "1d881e2b034cdaa6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-43010bd7b0abb225", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/components/ErrorBoundary.tsx:59"}, "properties": {"repobilityId": "e511104ef86a959f", "scanner": "scanner-primary", "fingerprint": "43010bd7b0abb225", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ddb2669a7b14aebc", "level": "none", "message": {"text": "Commented-code block (12 lines) in apps/backend/src/components/ScanOrderModal.tsx:4"}, "properties": {"repobilityId": "2a7d9002f4719552", "scanner": "scanner-primary", "fingerprint": "ddb2669a7b14aebc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-74b6861dc12abe90", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/backend/src/components/Toast.tsx:14"}, "properties": {"repobilityId": "37b01b1d199240c0", "scanner": "scanner-primary", "fingerprint": "74b6861dc12abe90", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4490cac59edd5e40", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/components/DetailListingShell.tsx:9"}, "properties": {"repobilityId": "6123581fb6845bf7", "scanner": "scanner-primary", "fingerprint": "4490cac59edd5e40", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1d601cbd9d40bc9e", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/components/LoadingButton.tsx:8"}, "properties": {"repobilityId": "433fb0738f1df917", "scanner": "scanner-primary", "fingerprint": "1d601cbd9d40bc9e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cb09228d617d342b", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/components/SupplyCategoryPicker.tsx:5"}, "properties": {"repobilityId": "cb36c53433559765", "scanner": "scanner-primary", "fingerprint": "cb09228d617d342b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fd7bab5af1bc937f", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/components/MultiSupplierPicker.tsx:8"}, "properties": {"repobilityId": "c9c09e7f84cb9903", "scanner": "scanner-primary", "fingerprint": "fd7bab5af1bc937f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-37effacc36234ac3", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/components/Layout.tsx:55"}, "properties": {"repobilityId": "30b55ad94c216133", "scanner": "scanner-primary", "fingerprint": "37effacc36234ac3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b193f2e34a9cea29", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/components/PhoneInput.tsx:4"}, "properties": {"repobilityId": "e5f74a85afe24058", "scanner": "scanner-primary", "fingerprint": "b193f2e34a9cea29", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ccb75bca6fe64c72", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/components/ActionResultDialog.tsx:1"}, "properties": {"repobilityId": "c1ae06ec9107db4e", "scanner": "scanner-primary", "fingerprint": "ccb75bca6fe64c72", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-39cd455dfdbe052b", "level": "none", "message": {"text": "Commented-code block (12 lines) in apps/backend/src/components/MoneyInput.tsx:4"}, "properties": {"repobilityId": "92539947fd978d0a", "scanner": "scanner-primary", "fingerprint": "39cd455dfdbe052b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3e5ed94781c60e16", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/backend/src/lib/product-models-queries.ts:268"}, "properties": {"repobilityId": "73d116a6fb536805", "scanner": "scanner-primary", "fingerprint": "3e5ed94781c60e16", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c3c503440a9da65d", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/backend/src/lib/so-status.ts:3"}, "properties": {"repobilityId": "582a4519c1121eec", "scanner": "scanner-primary", "fingerprint": "c3c503440a9da65d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4ce844105dd59c40", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/lib/auth.tsx:125"}, "properties": {"repobilityId": "0a515601c9fdf793", "scanner": "scanner-primary", "fingerprint": "4ce844105dd59c40", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d07bb8a2e757198f", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/lib/category-badges.tsx:8"}, "properties": {"repobilityId": "881dc259194f177b", "scanner": "scanner-primary", "fingerprint": "d07bb8a2e757198f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bb75be3c3dfd04be", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/lib/mfg-products-queries.ts:5"}, "properties": {"repobilityId": "59685778c9ebfa44", "scanner": "scanner-primary", "fingerprint": "bb75be3c3dfd04be", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a4091146e5e35e0", "level": "none", "message": {"text": "Commented-code block (11 lines) in apps/backend/src/lib/pos-remark-special.ts:6"}, "properties": {"repobilityId": "55e038f527163400", "scanner": "scanner-primary", "fingerprint": "9a4091146e5e35e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5879a586a1f96ded", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/lib/consignment-note-queries.ts:1"}, "properties": {"repobilityId": "55cfa9e4d53b2929", "scanner": "scanner-primary", "fingerprint": "5879a586a1f96ded", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-308761a5abaf9726", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/lib/purchase-consignment-return-queries.ts:1"}, "properties": {"repobilityId": "fc91b72f72e6c5e6", "scanner": "scanner-primary", "fingerprint": "308761a5abaf9726", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f18a96e066ae2343", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/backend/src/lib/localities-queries.ts:1"}, "properties": {"repobilityId": "ff1c51ee7cc0cea2", "scanner": "scanner-primary", "fingerprint": "f18a96e066ae2343", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6c9cd7717ee6f5c0", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/lib/consignment-order-queries.ts:1"}, "properties": {"repobilityId": "5593981d28611c4b", "scanner": "scanner-primary", "fingerprint": "6c9cd7717ee6f5c0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3f80cc98809f3035", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/lib/supplier-categories.ts:8"}, "properties": {"repobilityId": "9c74f51cc4fd7bde", "scanner": "scanner-primary", "fingerprint": "3f80cc98809f3035", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a42aecf7b1767d4a", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/lib/consignment-return-queries.ts:1"}, "properties": {"repobilityId": "80ae89a7894843c8", "scanner": "scanner-primary", "fingerprint": "a42aecf7b1767d4a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f9cd4811d479367e", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/lib/users-queries.ts:4"}, "properties": {"repobilityId": "77cf0965dd657c0a", "scanner": "scanner-primary", "fingerprint": "f9cd4811d479367e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3442f80533f90068", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/lib/nav-items.ts:1"}, "properties": {"repobilityId": "9a968af7ee60bfc3", "scanner": "scanner-primary", "fingerprint": "3442f80533f90068", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a2fcaf9dedd62b79", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/lib/supplier-sku-helpers.ts:5"}, "properties": {"repobilityId": "5918d44d695fe676", "scanner": "scanner-primary", "fingerprint": "a2fcaf9dedd62b79", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-546f77efe8b8c17e", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/lib/fabric-queries.ts:4"}, "properties": {"repobilityId": "5a988fadcecf85cd", "scanner": "scanner-primary", "fingerprint": "546f77efe8b8c17e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3ade6b3ee9bb9e3e", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/lib/purchase-consignment-receive-queries.ts:1"}, "properties": {"repobilityId": "1fd73dd9028c6030", "scanner": "scanner-primary", "fingerprint": "3ade6b3ee9bb9e3e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-766154b556bda56d", "level": "none", "message": {"text": "Commented-code block (10 lines) in apps/backend/src/lib/po-status.ts:5"}, "properties": {"repobilityId": "f45a91d778c5a7a2", "scanner": "scanner-primary", "fingerprint": "766154b556bda56d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-94c913c5dde853e6", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/backend/src/lib/so-settings-queries.ts:1"}, "properties": {"repobilityId": "e53af5763fe6eaad", "scanner": "scanner-primary", "fingerprint": "94c913c5dde853e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0d7105222d0c99fb", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/lib/venues-queries.ts:1"}, "properties": {"repobilityId": "b095c8cd4b795b88", "scanner": "scanner-primary", "fingerprint": "0d7105222d0c99fb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b36428cb0891c56a", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/lib/queries.ts:21"}, "properties": {"repobilityId": "46c1026d737cf3ea", "scanner": "scanner-primary", "fingerprint": "b36428cb0891c56a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a8ce03d6ca150b79", "level": "none", "message": {"text": "Commented-code block (26 lines) in apps/backend/src/lib/purchase-order-pdf.ts:7"}, "properties": {"repobilityId": "927eabb61feb619a", "scanner": "scanner-primary", "fingerprint": "a8ce03d6ca150b79", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c9e67fc08449e4df", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/lib/supabase.ts:16"}, "properties": {"repobilityId": "3e5bfba43becb2e2", "scanner": "scanner-primary", "fingerprint": "c9e67fc08449e4df", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ef25ee3a4798e1af", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/backend/src/lib/so-line-description.ts:8"}, "properties": {"repobilityId": "9d401264e1daf179", "scanner": "scanner-primary", "fingerprint": "ef25ee3a4798e1af", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d231c841be163032", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/lib/admin-queries.ts:5"}, "properties": {"repobilityId": "9012f5a08edc07ec", "scanner": "scanner-primary", "fingerprint": "d231c841be163032", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-72b4d622faa9a700", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/lib/verified-save.ts:4"}, "properties": {"repobilityId": "de6a640177305c90", "scanner": "scanner-primary", "fingerprint": "72b4d622faa9a700", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-42d8038e79dc73d3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/backend/src/lib/verified-save.ts:86"}, "properties": {"repobilityId": "3fc08a33c14d366c", "scanner": "scanner-primary", "fingerprint": "42d8038e79dc73d3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-074659592086db44", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/backend/src/lib/dates.ts:4"}, "properties": {"repobilityId": "87db11e3aa13fc31", "scanner": "scanner-primary", "fingerprint": "074659592086db44", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7330c06668322834", "level": "none", "message": {"text": "Commented-code block (19 lines) in apps/backend/src/lib/sales-order-pdf.ts:31"}, "properties": {"repobilityId": "660621c5734d2ade", "scanner": "scanner-primary", "fingerprint": "7330c06668322834", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4912f9ab28b61018", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/lib/purchase-consignment-order-queries.ts:1"}, "properties": {"repobilityId": "19eb0b90cdb699d5", "scanner": "scanner-primary", "fingerprint": "4912f9ab28b61018", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d3df81bb45e26be3", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/lib/authed-fetch.ts:1"}, "properties": {"repobilityId": "62c2933bd69d0473", "scanner": "scanner-primary", "fingerprint": "d3df81bb45e26be3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f68ab1772b3ceb1c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/backend/src/lib/authed-fetch.ts:80"}, "properties": {"repobilityId": "984664d99caf8ce7", "scanner": "scanner-primary", "fingerprint": "f68ab1772b3ceb1c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5a4e993eb067f208", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/lib/flow-queries.ts:342"}, "properties": {"repobilityId": "e08dc788fc3c1b6b", "scanner": "scanner-primary", "fingerprint": "5a4e993eb067f208", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ff0b41727ee4d4c8", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/backend/src/lib/slip.ts:94"}, "properties": {"repobilityId": "dc92da11af0e7818", "scanner": "scanner-primary", "fingerprint": "ff0b41727ee4d4c8", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4b85fd905dd893cd", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/lib/supplier-doc-data.ts:10"}, "properties": {"repobilityId": "00a0dab58c515251", "scanner": "scanner-primary", "fingerprint": "4b85fd905dd893cd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f25ffc93d7538809", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/lib/size-info.ts:4"}, "properties": {"repobilityId": "2fbbbf268705a3e3", "scanner": "scanner-primary", "fingerprint": "f25ffc93d7538809", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3ad38557ef2af136", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/GoodsReceivedDetail.tsx:8"}, "properties": {"repobilityId": "f0fe308dc4f40f84", "scanner": "scanner-primary", "fingerprint": "3ad38557ef2af136", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-71eaf8716e61bcfc", "level": "none", "message": {"text": "Commented-code block (10 lines) in apps/backend/src/pages/GrnNew.tsx:7"}, "properties": {"repobilityId": "90ea7eeff87a4f4f", "scanner": "scanner-primary", "fingerprint": "71eaf8716e61bcfc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5ad0816cdbf2b53a", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/ConsignmentNoteDetail.tsx:4"}, "properties": {"repobilityId": "ffc3cb1cf348d415", "scanner": "scanner-primary", "fingerprint": "5ad0816cdbf2b53a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8e3400645373b225", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/GrnFromPo.tsx:4"}, "properties": {"repobilityId": "4863315548906cba", "scanner": "scanner-primary", "fingerprint": "8e3400645373b225", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e612fadbddbd1ca9", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/SalesInvoiceNew.tsx:8"}, "properties": {"repobilityId": "69af4af67dccacb0", "scanner": "scanner-primary", "fingerprint": "e612fadbddbd1ca9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-918c84a4a071f6a7", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/backend/src/pages/ConsignmentNoteFromOrder.tsx:1"}, "properties": {"repobilityId": "795bc6b464849018", "scanner": "scanner-primary", "fingerprint": "918c84a4a071f6a7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-57e3b018f83b2397", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/StockAdjustments.tsx:6"}, "properties": {"repobilityId": "39da5b0bcfe36bd1", "scanner": "scanner-primary", "fingerprint": "57e3b018f83b2397", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-dfcb73f040d98afb", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/SalesInvoiceDetail.tsx:4"}, "properties": {"repobilityId": "5665d29fed022792", "scanner": "scanner-primary", "fingerprint": "dfcb73f040d98afb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b1c8d1c8582ade0c", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/PurchaseConsignmentOrders.tsx:1"}, "properties": {"repobilityId": "7c574d119733e536", "scanner": "scanner-primary", "fingerprint": "b1c8d1c8582ade0c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b1f771e3eda7009a", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/Mrp.tsx:4"}, "properties": {"repobilityId": "fecbaf7ae333a8da", "scanner": "scanner-primary", "fingerprint": "b1f771e3eda7009a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c974e715573a9e0a", "level": "none", "message": {"text": "Commented-code block (16 lines) in apps/backend/src/pages/ConsignmentOrders.tsx:3"}, "properties": {"repobilityId": "bcb9aec2bbffd982", "scanner": "scanner-primary", "fingerprint": "c974e715573a9e0a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-03d882fabf32a2fe", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/backend/src/pages/ConsignmentOrders.tsx:937"}, "properties": {"repobilityId": "0c68cd131a7995c7", "scanner": "scanner-primary", "fingerprint": "03d882fabf32a2fe", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4b8cd40c9b28cc98", "level": "none", "message": {"text": "Commented-code block (16 lines) in apps/backend/src/pages/MfgSalesOrdersList.tsx:3"}, "properties": {"repobilityId": "4d7977a2f6b0df42", "scanner": "scanner-primary", "fingerprint": "4b8cd40c9b28cc98", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-53414f9b7a6d5831", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/backend/src/pages/MfgSalesOrdersList.tsx:940"}, "properties": {"repobilityId": "ec7e333768f16cf8", "scanner": "scanner-primary", "fingerprint": "53414f9b7a6d5831", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3f1c190cdc64c532", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/PurchaseOrders.tsx:4"}, "properties": {"repobilityId": "4e5f29f54905e913", "scanner": "scanner-primary", "fingerprint": "3f1c190cdc64c532", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8e2dee13b31d4d39", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/backend/src/pages/PurchaseInvoiceDetail.tsx:9"}, "properties": {"repobilityId": "75be61e7720782a9", "scanner": "scanner-primary", "fingerprint": "8e2dee13b31d4d39", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f2ca806899fe7840", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/backend/src/pages/StockTakeDetail.tsx:4"}, "properties": {"repobilityId": "30fc4f121e458d49", "scanner": "scanner-primary", "fingerprint": "f2ca806899fe7840", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7e4947154c0ed859", "level": "none", "message": {"text": "Commented-code block (14 lines) in apps/backend/src/pages/PurchaseOrderDetail.tsx:13"}, "properties": {"repobilityId": "b72ddeeca8c372f9", "scanner": "scanner-primary", "fingerprint": "7e4947154c0ed859", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-889a15b34abdae49", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/backend/src/pages/Products.tsx:4"}, "properties": {"repobilityId": "732b73fb12a47faa", "scanner": "scanner-primary", "fingerprint": "889a15b34abdae49", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c402444c19779038", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/backend/src/pages/ConsignmentReturnFromNote.tsx:1"}, "properties": {"repobilityId": "b0ffbd83bfd7332f", "scanner": "scanner-primary", "fingerprint": "c402444c19779038", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7cad4b16469e0d0e", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/backend/src/pages/Warehouse.tsx:4"}, "properties": {"repobilityId": "4d89a366f37ad57d", "scanner": "scanner-primary", "fingerprint": "7cad4b16469e0d0e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b91e7a87107aff0", "level": "none", "message": {"text": "Commented-code block (10 lines) in apps/backend/src/pages/SalesOrderDetail.tsx:4"}, "properties": {"repobilityId": "c0bda6086010f811", "scanner": "scanner-primary", "fingerprint": "4b91e7a87107aff0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1a6e92d22669e42d", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/backend/src/pages/Inventory.tsx:4"}, "properties": {"repobilityId": "48cb9dd2aadc0875", "scanner": "scanner-primary", "fingerprint": "1a6e92d22669e42d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7a8aa1a0079966a9", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/DeliveryReturnNew.tsx:142"}, "properties": {"repobilityId": "087156ea0614068a", "scanner": "scanner-primary", "fingerprint": "7a8aa1a0079966a9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3783c738a6f8357e", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/Suppliers.tsx:45"}, "properties": {"repobilityId": "0043b4a46d902d81", "scanner": "scanner-primary", "fingerprint": "3783c738a6f8357e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-28325fb60c0bd32c", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/backend/src/pages/Users.tsx:14"}, "properties": {"repobilityId": "535234ee5cd96373", "scanner": "scanner-primary", "fingerprint": "28325fb60c0bd32c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-21349a5a72033e77", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/backend/src/pages/FabricTracking.tsx:7"}, "properties": {"repobilityId": "ba9086d430b39a33", "scanner": "scanner-primary", "fingerprint": "21349a5a72033e77", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e4c5aef63822e018", "level": "none", "message": {"text": "Commented-code block (10 lines) in apps/backend/src/pages/SalesInvoiceFromDo.tsx:5"}, "properties": {"repobilityId": "262f24ccd6e5a2d0", "scanner": "scanner-primary", "fingerprint": "e4c5aef63822e018", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4f05b63a6c054c69", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/SetPassword.tsx:4"}, "properties": {"repobilityId": "3d1c5b1fcd1eeef5", "scanner": "scanner-primary", "fingerprint": "4f05b63a6c054c69", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-795fcb6a20be426c", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/StockTakeNew.tsx:4"}, "properties": {"repobilityId": "9d758e733a43191f", "scanner": "scanner-primary", "fingerprint": "795fcb6a20be426c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-311dc94930c35786", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/Drivers.tsx:1"}, "properties": {"repobilityId": "93d20121d8d410aa", "scanner": "scanner-primary", "fingerprint": "311dc94930c35786", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1b5cccc6584a24e5", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/PurchaseConsignmentReturnNew.tsx:5"}, "properties": {"repobilityId": "de146d16ef98585b", "scanner": "scanner-primary", "fingerprint": "1b5cccc6584a24e5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-75dbd39024f381d6", "level": "none", "message": {"text": "Commented-code block (14 lines) in apps/backend/src/pages/SalesOrderDetailListing.tsx:9"}, "properties": {"repobilityId": "9f0964c82a001955", "scanner": "scanner-primary", "fingerprint": "75dbd39024f381d6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ba067f62cbef41ef", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/backend/src/pages/PurchaseOrderNew.tsx:9"}, "properties": {"repobilityId": "52c02cd12b8703b6", "scanner": "scanner-primary", "fingerprint": "ba067f62cbef41ef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c2f4eb56f5e5e4f1", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/DeliveryReturnsList.tsx:1"}, "properties": {"repobilityId": "29fd408a618bfc48", "scanner": "scanner-primary", "fingerprint": "c2f4eb56f5e5e4f1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8f27401e8138914d", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/backend/src/pages/PurchaseReturnDetail.tsx:9"}, "properties": {"repobilityId": "ea019216b6649d5f", "scanner": "scanner-primary", "fingerprint": "8f27401e8138914d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e62e770ed3817301", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/Sso.tsx:4"}, "properties": {"repobilityId": "e3b5cb1ccdeacbbb", "scanner": "scanner-primary", "fingerprint": "e62e770ed3817301", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-72e3bbf03cfcb7a2", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/PurchaseConsignmentReceives.tsx:1"}, "properties": {"repobilityId": "1e2170ec62a9784a", "scanner": "scanner-primary", "fingerprint": "72e3bbf03cfcb7a2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf7e45888ac0e5fc", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/ConsignmentNotes.tsx:1"}, "properties": {"repobilityId": "3a1668fff3a37424", "scanner": "scanner-primary", "fingerprint": "bf7e45888ac0e5fc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-786120c8cca9fe61", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/ConsignmentNoteNew.tsx:4"}, "properties": {"repobilityId": "f02bdad87040e87d", "scanner": "scanner-primary", "fingerprint": "786120c8cca9fe61", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-754cd731baafa014", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/DeliveryOrderNew.tsx:9"}, "properties": {"repobilityId": "dd8bd9f096cdafb4", "scanner": "scanner-primary", "fingerprint": "754cd731baafa014", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-25d48d5f3d4e6b66", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/backend/src/pages/PurchaseConsignmentOrderNew.tsx:4"}, "properties": {"repobilityId": "528ee703c52324f6", "scanner": "scanner-primary", "fingerprint": "25d48d5f3d4e6b66", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-832cd6545f9721a3", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/ConsignmentReturnDetail.tsx:4"}, "properties": {"repobilityId": "ddefbb19ab858176", "scanner": "scanner-primary", "fingerprint": "832cd6545f9721a3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ccaa807dec268080", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/backend/src/pages/ChangePassword.tsx:1"}, "properties": {"repobilityId": "ad97ecdf8a0f6d43", "scanner": "scanner-primary", "fingerprint": "ccaa807dec268080", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b38e4c7fea05ee80", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/backend/src/pages/ProductModelDetail.tsx:9"}, "properties": {"repobilityId": "f38f2e96a2999839", "scanner": "scanner-primary", "fingerprint": "b38e4c7fea05ee80", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c4b342eda383e8e8", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/backend/src/pages/PurchaseConsignmentReturnFromReceive.tsx:1"}, "properties": {"repobilityId": "07b97e98408c1e83", "scanner": "scanner-primary", "fingerprint": "c4b342eda383e8e8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a6ce43f7ae0860ca", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/PurchaseReturnsList.tsx:1"}, "properties": {"repobilityId": "7c45ee02c5b61d4b", "scanner": "scanner-primary", "fingerprint": "a6ce43f7ae0860ca", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bcba3064b635b8fe", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/Accounting.tsx:4"}, "properties": {"repobilityId": "feb787ea9268453b", "scanner": "scanner-primary", "fingerprint": "bcba3064b635b8fe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-65fb1cc7829d2216", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/PurchaseConsignmentReturns.tsx:1"}, "properties": {"repobilityId": "694d5275cd8291a3", "scanner": "scanner-primary", "fingerprint": "65fb1cc7829d2216", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad611d8508eba600", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/PurchaseConsignmentReceiveNew.tsx:5"}, "properties": {"repobilityId": "1f578666d2d44799", "scanner": "scanner-primary", "fingerprint": "ad611d8508eba600", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d8802db04acd5fac", "level": "none", "message": {"text": "Commented-code block (10 lines) in apps/backend/src/pages/PurchaseOrderFromSo.tsx:4"}, "properties": {"repobilityId": "f35d64075787ba71", "scanner": "scanner-primary", "fingerprint": "d8802db04acd5fac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-685bbaf11af28593", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/DeliveryReturnDetailListing.tsx:1"}, "properties": {"repobilityId": "704594b6e50e414e", "scanner": "scanner-primary", "fingerprint": "685bbaf11af28593", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2ec0e68a2113faa9", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/SalesOrderMaintenance.tsx:6"}, "properties": {"repobilityId": "14e9bfe3b48b959c", "scanner": "scanner-primary", "fingerprint": "2ec0e68a2113faa9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-96102b0e826a9843", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/backend/src/pages/SupplierDetail.tsx:4"}, "properties": {"repobilityId": "c444fdbf3f1a62d2", "scanner": "scanner-primary", "fingerprint": "96102b0e826a9843", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1c1079b34c4ef02", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/backend/src/pages/DeliveryOrderFromSo.tsx:5"}, "properties": {"repobilityId": "8b957acf0d481149", "scanner": "scanner-primary", "fingerprint": "f1c1079b34c4ef02", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9ba1a6da8bb6733e", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/ConsignmentOrderNew.tsx:15"}, "properties": {"repobilityId": "d6450b3b5af17287", "scanner": "scanner-primary", "fingerprint": "9ba1a6da8bb6733e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf0c8a9e142f0936", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/StockTransferNew.tsx:4"}, "properties": {"repobilityId": "065b26658071cad6", "scanner": "scanner-primary", "fingerprint": "bf0c8a9e142f0936", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-afe099d790d53a1f", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/PurchaseConsignmentReturnDetail.tsx:5"}, "properties": {"repobilityId": "7ef167b736c60e69", "scanner": "scanner-primary", "fingerprint": "afe099d790d53a1f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-26ead9ef8094c78d", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/StockAdjustmentNew.tsx:8"}, "properties": {"repobilityId": "a9cdf4bd1b6839bc", "scanner": "scanner-primary", "fingerprint": "26ead9ef8094c78d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0a06e5fef84c8945", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/SoFromProducts.tsx:10"}, "properties": {"repobilityId": "a22072095161d1bf", "scanner": "scanner-primary", "fingerprint": "0a06e5fef84c8945", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b9aaa27b283894e1", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/ConsignmentOrderDetail.tsx:9"}, "properties": {"repobilityId": "11af0b9de7e7a96b", "scanner": "scanner-primary", "fingerprint": "b9aaa27b283894e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e5cb23d3df8a0ce0", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/ProductModels.tsx:56"}, "properties": {"repobilityId": "23d1625adf16feba", "scanner": "scanner-primary", "fingerprint": "e5cb23d3df8a0ce0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5c5652cc1c1b839b", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/StockTransferDetail.tsx:4"}, "properties": {"repobilityId": "a3052ff6b9840e48", "scanner": "scanner-primary", "fingerprint": "5c5652cc1c1b839b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1cdd9350d9b9d274", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/DocDetailPages.tsx:1"}, "properties": {"repobilityId": "3e600974c6f516bf", "scanner": "scanner-primary", "fingerprint": "1cdd9350d9b9d274", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2a6c3ce735013843", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/PurchaseInvoicesList.tsx:1"}, "properties": {"repobilityId": "664cf47cdb46e3c3", "scanner": "scanner-primary", "fingerprint": "2a6c3ce735013843", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-37720c6904dffd67", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/PurchaseConsignmentReceiveDetail.tsx:5"}, "properties": {"repobilityId": "b2c10c5a161369ea", "scanner": "scanner-primary", "fingerprint": "37720c6904dffd67", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-155628ea8f5622c7", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/MfgDeliveryOrdersList.tsx:1"}, "properties": {"repobilityId": "82336b1865d8f77d", "scanner": "scanner-primary", "fingerprint": "155628ea8f5622c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e48cf0cc868f5ad0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/backend/src/pages/MfgDeliveryOrdersList.tsx:489"}, "properties": {"repobilityId": "7c8eb9a9ceb12d79", "scanner": "scanner-primary", "fingerprint": "e48cf0cc868f5ad0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-9b4af174b15c176d", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/PurchaseConsignmentReceiveFromOrder.tsx:1"}, "properties": {"repobilityId": "b6a5097ff5574e8b", "scanner": "scanner-primary", "fingerprint": "9b4af174b15c176d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e4b47b4eaf30fb60", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/PurchaseInvoiceFromGrn.tsx:4"}, "properties": {"repobilityId": "1106d40f2c79639d", "scanner": "scanner-primary", "fingerprint": "e4b47b4eaf30fb60", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-317119f5b46b97e9", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/SalesOrderNew.tsx:4"}, "properties": {"repobilityId": "34030c5f1383bd93", "scanner": "scanner-primary", "fingerprint": "317119f5b46b97e9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-166a08b5fc45aeaf", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/DeliveryOrderDetail.tsx:4"}, "properties": {"repobilityId": "87c75b7e4aef12c0", "scanner": "scanner-primary", "fingerprint": "166a08b5fc45aeaf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c3e3f813b11a991", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/backend/src/pages/SalesInvoicesList.tsx:1"}, "properties": {"repobilityId": "d4d0d42e18dce36c", "scanner": "scanner-primary", "fingerprint": "7c3e3f813b11a991", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-05b20713d8dc5e0c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 apps/backend/src/pages/SalesInvoicesList.tsx:450"}, "properties": {"repobilityId": "a16b6fa646615458", "scanner": "scanner-primary", "fingerprint": "05b20713d8dc5e0c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7fec36e75eba42e1", "level": "none", "message": {"text": "Commented-code block (9 lines) in apps/backend/src/pages/DeliveryReturnFromDo.tsx:5"}, "properties": {"repobilityId": "d7e2a09325356d43", "scanner": "scanner-primary", "fingerprint": "7fec36e75eba42e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ff6b97b98a38650c", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/backend/src/pages/PurchaseReturnNew.tsx:6"}, "properties": {"repobilityId": "bdb22306663a5a44", "scanner": "scanner-primary", "fingerprint": "ff6b97b98a38650c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-06fd7c1cf4a914ac", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/backend/src/pages/StockCard.tsx:11"}, "properties": {"repobilityId": "b80661439acf1b70", "scanner": "scanner-primary", "fingerprint": "06fd7c1cf4a914ac", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e8e9bc5b890c8e39", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/GoodsReceivedList.tsx:1"}, "properties": {"repobilityId": "cf3b98ac3cf30604", "scanner": "scanner-primary", "fingerprint": "e8e9bc5b890c8e39", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-67d8a27c1932b9b4", "level": "none", "message": {"text": "Commented-code block (8 lines) in apps/backend/src/pages/PurchaseInvoiceNew.tsx:9"}, "properties": {"repobilityId": "4360913727d55e27", "scanner": "scanner-primary", "fingerprint": "67d8a27c1932b9b4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-12e01eea4d630588", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/PurchaseConsignmentOrderDetail.tsx:4"}, "properties": {"repobilityId": "66c1cdb7e26309d9", "scanner": "scanner-primary", "fingerprint": "12e01eea4d630588", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8ff110fa406095e6", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/ConsignmentReturnNew.tsx:5"}, "properties": {"repobilityId": "e65e44a42e8d21c9", "scanner": "scanner-primary", "fingerprint": "8ff110fa406095e6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-57dfd18d1c79e480", "level": "none", "message": {"text": "Commented-code block (6 lines) in apps/backend/src/pages/ConsignmentReturns.tsx:1"}, "properties": {"repobilityId": "d1bc3eb2c5bf85ee", "scanner": "scanner-primary", "fingerprint": "57dfd18d1c79e480", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7d27bad518cead57", "level": "none", "message": {"text": "Commented-code block (7 lines) in apps/backend/src/pages/SystemHealth.tsx:4"}, "properties": {"repobilityId": "1a3e3c1e6937cf76", "scanner": "scanner-primary", "fingerprint": "7d27bad518cead57", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-362a285e9a818da6", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/sales-order/LineItemsSection.tsx:4"}, "properties": {"repobilityId": "cbacb73b1b5c65eb", "scanner": "scanner-primary", "fingerprint": "362a285e9a818da6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e419a8f07f6c7b2d", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/sales-order/HistoryPanel.tsx:1"}, "properties": {"repobilityId": "4e25a8866e13e24f", "scanner": "scanner-primary", "fingerprint": "e419a8f07f6c7b2d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-40e2f408a3288d71", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/sales-order/OverridePriceModal.tsx:1"}, "properties": {"repobilityId": "46e795e23717da69", "scanner": "scanner-primary", "fingerprint": "40e2f408a3288d71", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5aa194a905ea6ddf", "level": "none", "message": {"text": "Commented-code block (5 lines) in apps/backend/src/pages/sales-order/types.ts:4"}, "properties": {"repobilityId": "ea6a840cc774382b", "scanner": "scanner-primary", "fingerprint": "5aa194a905ea6ddf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b758e340bbfc940", "level": "none", "message": {"text": "Commented-code block (19 lines) in scripts/db-migrate.mjs:8"}, "properties": {"repobilityId": "f617d4072791f91c", "scanner": "scanner-primary", "fingerprint": "4b758e340bbfc940", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cf7c1de1f96e668a", "level": "none", "message": {"text": "Commented-code block (7 lines) in scripts/check-vite-api-url.mjs:5"}, "properties": {"repobilityId": "71a5000f0f64ddd2", "scanner": "scanner-primary", "fingerprint": "cf7c1de1f96e668a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-91a27d439d934fff", "level": "none", "message": {"text": "Commented-code block (7 lines) in prototype/backend-orders.jsx:214"}, "properties": {"repobilityId": "c3fdfe56eb479aad", "scanner": "scanner-primary", "fingerprint": "91a27d439d934fff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f1869aed690fb807", "level": "none", "message": {"text": "Commented-code block (7 lines) in prototype/pos-data.jsx:45"}, "properties": {"repobilityId": "8c8788542f118173", "scanner": "scanner-primary", "fingerprint": "f1869aed690fb807", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c916adc876777a6", "level": "none", "message": {"text": "Commented-code block (6 lines) in prototype/pos-sofa-config.jsx:6"}, "properties": {"repobilityId": "2a94f7c89e1ca03a", "scanner": "scanner-primary", "fingerprint": "0c916adc876777a6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8f182c4d00217f6d", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototype/pos-app.jsx:151"}, "properties": {"repobilityId": "9db95446cc115585", "scanner": "scanner-primary", "fingerprint": "8f182c4d00217f6d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9c9869a93f0465e0", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototype/pos-handover.jsx:5"}, "properties": {"repobilityId": "528e53ed7678e019", "scanner": "scanner-primary", "fingerprint": "9c9869a93f0465e0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eaa28e608fbe942e", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototype/pos-order-status.jsx:1"}, "properties": {"repobilityId": "4d167691b1d513f8", "scanner": "scanner-primary", "fingerprint": "eaa28e608fbe942e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-88708c345e8dfa23", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototype/pos-order-modal.jsx:3"}, "properties": {"repobilityId": "e683b90a20858648", "scanner": "scanner-primary", "fingerprint": "88708c345e8dfa23", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3404b2d98658515e", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototype/pos-configurator.jsx:6"}, "properties": {"repobilityId": "3dfce725321584fa", "scanner": "scanner-primary", "fingerprint": "3404b2d98658515e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5e1f32120cb25efe", "level": "none", "message": {"text": "Commented-code block (5 lines) in prototype/pos-quote.jsx:6"}, "properties": {"repobilityId": "53749d09f912e88d", "scanner": "scanner-primary", "fingerprint": "5e1f32120cb25efe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-eab9bb0473dbe19a", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/shared/src/mfg-pricing.ts:7"}, "properties": {"repobilityId": "741157dad8d7eca4", "scanner": "scanner-primary", "fingerprint": "eab9bb0473dbe19a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6a0211f627127910", "level": "none", "message": {"text": "Commented-code block (9 lines) in packages/shared/src/so-sofa-split.ts:4"}, "properties": {"repobilityId": "0304b5768ecec3ed", "scanner": "scanner-primary", "fingerprint": "6a0211f627127910", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-729c146e4cbdb553", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/shared/src/sofa-combo-pricing.ts:4"}, "properties": {"repobilityId": "b0b775470786898f", "scanner": "scanner-primary", "fingerprint": "729c146e4cbdb553", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a14a8f362ba40138", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/shared/src/sofa-build.ts:156"}, "properties": {"repobilityId": "2333f328bb466722", "scanner": "scanner-primary", "fingerprint": "a14a8f362ba40138", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bbdf5d796da91a4e", "level": "none", "message": {"text": "Commented-code block (10 lines) in packages/shared/src/maintenance-pools.ts:4"}, "properties": {"repobilityId": "98963a7a32043d24", "scanner": "scanner-primary", "fingerprint": "bbdf5d796da91a4e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9d22613f7ca1c583", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/shared/src/sofa-tier.ts:4"}, "properties": {"repobilityId": "5eaa475079c59b0d", "scanner": "scanner-primary", "fingerprint": "9d22613f7ca1c583", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9109b81db9437af5", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/shared/src/so-line-display.ts:4"}, "properties": {"repobilityId": "751465a5cb4728c1", "scanner": "scanner-primary", "fingerprint": "9109b81db9437af5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-be4a0f681034febb", "level": "none", "message": {"text": "Commented-code block (9 lines) in packages/shared/src/mfg-pricing.test.ts:3"}, "properties": {"repobilityId": "5bd9aa1b7d3458f3", "scanner": "scanner-primary", "fingerprint": "be4a0f681034febb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-07162871af98dc54", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/shared/src/sofa-quick-presets.ts:4"}, "properties": {"repobilityId": "5b0cc7b539e17efd", "scanner": "scanner-primary", "fingerprint": "07162871af98dc54", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0ce94964cbc0d782", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/shared/src/pwp.ts:12"}, "properties": {"repobilityId": "fdad8e607fe9f166", "scanner": "scanner-primary", "fingerprint": "0ce94964cbc0d782", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-458b19233f19ea39", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/shared/src/variant-summary.ts:1"}, "properties": {"repobilityId": "778640b7703bab94", "scanner": "scanner-primary", "fingerprint": "458b19233f19ea39", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2f5219dee4ec8c4d", "level": "none", "message": {"text": "Commented-code block (10 lines) in packages/shared/src/service-sku.ts:4"}, "properties": {"repobilityId": "ce3429b1ec62404c", "scanner": "scanner-primary", "fingerprint": "2f5219dee4ec8c4d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-82126f94c353efdd", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/shared/src/free-gift.ts:1"}, "properties": {"repobilityId": "f5a2e497b37e0abe", "scanner": "scanner-primary", "fingerprint": "82126f94c353efdd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0257baf5d26ea3f6", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/shared/src/pricing.ts:1"}, "properties": {"repobilityId": "abee7d0be8f7cfbf", "scanner": "scanner-primary", "fingerprint": "0257baf5d26ea3f6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5d372d88108ade49", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/shared/src/fabric-tier-addon.ts:1"}, "properties": {"repobilityId": "4867df451c24c219", "scanner": "scanner-primary", "fingerprint": "5d372d88108ade49", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b9e398a336dd85f6", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/shared/src/inventory-adjustment.ts:1"}, "properties": {"repobilityId": "35482454bba523f0", "scanner": "scanner-primary", "fingerprint": "b9e398a336dd85f6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-35e4db5a0e3ce289", "level": "none", "message": {"text": "Commented-code block (9 lines) in packages/shared/src/so-variant-rule.ts:5"}, "properties": {"repobilityId": "92d0907273814d34", "scanner": "scanner-primary", "fingerprint": "35e4db5a0e3ce289", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-98823f81108b0b93", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/shared/src/variant-key.ts:13"}, "properties": {"repobilityId": "d28153f570f2a8d2", "scanner": "scanner-primary", "fingerprint": "98823f81108b0b93", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-37502055ecfa0399", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/shared/src/phone.ts:4"}, "properties": {"repobilityId": "9b8710ba8b1c07ab", "scanner": "scanner-primary", "fingerprint": "37502055ecfa0399", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ed9fd4860ade29c", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/shared/src/__tests__/sofa-selling.test.ts:3"}, "properties": {"repobilityId": "2416b87b13988a54", "scanner": "scanner-primary", "fingerprint": "1ed9fd4860ade29c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6b77f372abef8686", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/shared/src/__tests__/sofa-build.test.ts:572"}, "properties": {"repobilityId": "7630f3472bd7aebd", "scanner": "scanner-primary", "fingerprint": "6b77f372abef8686", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9bfc0518cc15c0fe", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/shared/src/schemas/product.ts:114"}, "properties": {"repobilityId": "5ca4c07087b0b2ef", "scanner": "scanner-primary", "fingerprint": "9bfc0518cc15c0fe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-08135d2d5ad01400", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/db/src/schema.ts:6"}, "properties": {"repobilityId": "da316540aec5ff8f", "scanner": "scanner-primary", "fingerprint": "08135d2d5ad01400", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ad1f2c0971b89ce0", "level": "note", "message": {"text": "10 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "3bfdc60c61f1870e", "scanner": "scanner-primary", "fingerprint": "ad1f2c0971b89ce0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-aa2bddf443f826a7", "level": "error", "message": {"text": "Dangling fetch: GET /mfg-sales-orders/customer-search?name=${encodeURIComponent(name)} (apps/api/src/routes/mfg-sales-orders.customer-search.test.ts:77)"}, "properties": {"repobilityId": "bfe1106c9263ac94", "scanner": "scanner-primary", "fingerprint": "aa2bddf443f826a7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-fc0d3b97e481c8dd", "level": "error", "message": {"text": "Dangling fetch: GET /admin/audit-log (apps/api/src/routes/audit-log.test.ts:116)"}, "properties": {"repobilityId": "e71e2b3f2de34fed", "scanner": "scanner-primary", "fingerprint": "fc0d3b97e481c8dd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bb268e92b863a820", "level": "error", "message": {"text": "Dangling fetch: GET /admin/audit-log (apps/api/src/routes/audit-log.test.ts:122)"}, "properties": {"repobilityId": "d876bbe8f0274119", "scanner": "scanner-primary", "fingerprint": "bb268e92b863a820", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-160778977180390b", "level": "error", "message": {"text": "Dangling fetch: GET /admin/audit-log (apps/api/src/routes/audit-log.test.ts:128)"}, "properties": {"repobilityId": "70967a9b245ba1a3", "scanner": "scanner-primary", "fingerprint": "160778977180390b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6964d8f31a01b88c", "level": "error", "message": {"text": "Dangling fetch: GET /admin/audit-log (apps/api/src/routes/audit-log.test.ts:137)"}, "properties": {"repobilityId": "d44a31b4eeee40c9", "scanner": "scanner-primary", "fingerprint": "6964d8f31a01b88c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-dda986c9d8a1ec8b", "level": "error", "message": {"text": "Dangling fetch: GET /admin/audit-log (apps/api/src/routes/audit-log.test.ts:144)"}, "properties": {"repobilityId": "d457cace7d3e85af", "scanner": "scanner-primary", "fingerprint": "dda986c9d8a1ec8b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4c51c36b59752bf8", "level": "error", "message": {"text": "Dangling fetch: GET /admin/audit-log (apps/api/src/routes/audit-log.test.ts:170)"}, "properties": {"repobilityId": "1351b1b7d93ecb2e", "scanner": "scanner-primary", "fingerprint": "4c51c36b59752bf8", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e22e77eff2ada3f0", "level": "error", "message": {"text": "Dangling fetch: GET /admin/audit-log?amountMin=abc (apps/api/src/routes/audit-log.test.ts:180)"}, "properties": {"repobilityId": "7c67b4847e624de4", "scanner": "scanner-primary", "fingerprint": "e22e77eff2ada3f0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6a50376bd726f7c1", "level": "error", "message": {"text": "Dangling fetch: GET /admin/audit-log?paymentMethod=credit (apps/api/src/routes/audit-log.test.ts:186)"}, "properties": {"repobilityId": "3fc810fa18fc9a2b", "scanner": "scanner-primary", "fingerprint": "6a50376bd726f7c1", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9fbb19ca148a137d", "level": "error", "message": {"text": "Dangling fetch: GET /admin/audit-log (apps/api/src/routes/audit-log.test.ts:198)"}, "properties": {"repobilityId": "ab4b3c40941b8b65", "scanner": "scanner-primary", "fingerprint": "9fbb19ca148a137d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-df907b89beca8a9b", "level": "error", "message": {"text": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:89)"}, "properties": {"repobilityId": "882f48e8981a958c", "scanner": "scanner-primary", "fingerprint": "df907b89beca8a9b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-dd4606a499cda413", "level": "error", "message": {"text": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:119)"}, "properties": {"repobilityId": "ae8cd853142aac7f", "scanner": "scanner-primary", "fingerprint": "dd4606a499cda413", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-e803d16b74aad8bf", "level": "error", "message": {"text": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:144)"}, "properties": {"repobilityId": "122be62021d658ee", "scanner": "scanner-primary", "fingerprint": "e803d16b74aad8bf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d527de909632ea40", "level": "error", "message": {"text": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:162)"}, "properties": {"repobilityId": "1d0a2e45b6e0f868", "scanner": "scanner-primary", "fingerprint": "d527de909632ea40", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-618f28f2b0a81d4e", "level": "error", "message": {"text": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:177)"}, "properties": {"repobilityId": "1a259f033a61c80c", "scanner": "scanner-primary", "fingerprint": "618f28f2b0a81d4e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-90acd1fe95fcb2fd", "level": "error", "message": {"text": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:192)"}, "properties": {"repobilityId": "d0cb60df14efcf9c", "scanner": "scanner-primary", "fingerprint": "90acd1fe95fcb2fd", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cfcb69398ffe3527", "level": "error", "message": {"text": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:211)"}, "properties": {"repobilityId": "4b3e3b3777bb5ae8", "scanner": "scanner-primary", "fingerprint": "cfcb69398ffe3527", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ef76723daef5d6a2", "level": "error", "message": {"text": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:235)"}, "properties": {"repobilityId": "2acd5a186934c27e", "scanner": "scanner-primary", "fingerprint": "ef76723daef5d6a2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6736ff5d2faac64e", "level": "error", "message": {"text": "Dangling fetch: PATCH /admin/staff/${TARGET_ID}/pin (apps/api/src/routes/admin.test.ts:280)"}, "properties": {"repobilityId": "04ae87e140d698ea", "scanner": "scanner-primary", "fingerprint": "6736ff5d2faac64e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-dfea5f4ec351dc91", "level": "error", "message": {"text": "Dangling fetch: PATCH /admin/staff/${TARGET_ID}/pin (apps/api/src/routes/admin.test.ts:289)"}, "properties": {"repobilityId": "043dfd18a570fece", "scanner": "scanner-primary", "fingerprint": "dfea5f4ec351dc91", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-730e1287913ce967", "level": "error", "message": {"text": "Dangling fetch: PATCH /admin/staff/${TARGET_ID}/pin (apps/api/src/routes/admin.test.ts:299)"}, "properties": {"repobilityId": "dfd1003cb6ae5ff7", "scanner": "scanner-primary", "fingerprint": "730e1287913ce967", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-99b83c0f43596148", "level": "error", "message": {"text": "Dangling fetch: PATCH /admin/staff/${TARGET_ID}/pin (apps/api/src/routes/admin.test.ts:321)"}, "properties": {"repobilityId": "9c01a9e5d8e6f308", "scanner": "scanner-primary", "fingerprint": "99b83c0f43596148", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-73674016f37b2173", "level": "error", "message": {"text": "Dangling fetch: PATCH /admin/staff/${TARGET_ID}/pin (apps/api/src/routes/admin.test.ts:345)"}, "properties": {"repobilityId": "690f4ea1f93f83e3", "scanner": "scanner-primary", "fingerprint": "73674016f37b2173", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-25fe8f5e93654688", "level": "error", "message": {"text": "Dangling fetch: PATCH /admin/staff/${TARGET_ID}/pin (apps/api/src/routes/admin.test.ts:355)"}, "properties": {"repobilityId": "cd002e46fbf9b494", "scanner": "scanner-primary", "fingerprint": "25fe8f5e93654688", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f2902a8796de6bbb", "level": "error", "message": {"text": "Dangling fetch: PATCH /admin/staff/not-a-uuid/pin (apps/api/src/routes/admin.test.ts:364)"}, "properties": {"repobilityId": "2838869537764dc6", "scanner": "scanner-primary", "fingerprint": "f2902a8796de6bbb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4a935495a77a7780", "level": "error", "message": {"text": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:380)"}, "properties": {"repobilityId": "28d89686e3878211", "scanner": "scanner-primary", "fingerprint": "4a935495a77a7780", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-669cd28f391f38e4", "level": "error", "message": {"text": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:394)"}, "properties": {"repobilityId": "acb82e3e0fcc4889", "scanner": "scanner-primary", "fingerprint": "669cd28f391f38e4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-6a1711d60d68f42f", "level": "error", "message": {"text": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:408)"}, "properties": {"repobilityId": "22dd4bb30edb521d", "scanner": "scanner-primary", "fingerprint": "6a1711d60d68f42f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-08cce024d4a6f3b6", "level": "error", "message": {"text": "Dangling fetch: POST /admin/staff (apps/api/src/routes/admin.test.ts:428)"}, "properties": {"repobilityId": "164cc41e21c63c67", "scanner": "scanner-primary", "fingerprint": "08cce024d4a6f3b6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-9691cf344355abee", "level": "error", "message": {"text": "Dangling fetch: PATCH /admin/staff/${TARGET_ID} (apps/api/src/routes/admin.test.ts:479)"}, "properties": {"repobilityId": "2555af146341c52e", "scanner": "scanner-primary", "fingerprint": "9691cf344355abee", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f2f5902035879c57", "level": "error", "message": {"text": "Dangling fetch: PATCH /admin/staff/${TARGET_ID} (apps/api/src/routes/admin.test.ts:489)"}, "properties": {"repobilityId": "1a4a84862dd39922", "scanner": "scanner-primary", "fingerprint": "f2f5902035879c57", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-29b716595659a136", "level": "error", "message": {"text": "Dangling fetch: PATCH /admin/staff/${TARGET_ID} (apps/api/src/routes/admin.test.ts:500)"}, "properties": {"repobilityId": "6303a2d0a228666a", "scanner": "scanner-primary", "fingerprint": "29b716595659a136", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3ade7a32bf88c98c", "level": "error", "message": {"text": "Dangling fetch: PATCH /admin/staff/${TARGET_ID} (apps/api/src/routes/admin.test.ts:510)"}, "properties": {"repobilityId": "729f9bdc8b7454e2", "scanner": "scanner-primary", "fingerprint": "3ade7a32bf88c98c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-448af40edb787e25", "level": "error", "message": {"text": "Dangling fetch: GET /model-free-gifts (apps/api/src/routes/model-free-gifts.test.ts:110)"}, "properties": {"repobilityId": "7b11a548fe6e851b", "scanner": "scanner-primary", "fingerprint": "448af40edb787e25", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7572f67dcb1190c7", "level": "error", "message": {"text": "Dangling fetch: GET /model-free-gifts (apps/api/src/routes/model-free-gifts.test.ts:146)"}, "properties": {"repobilityId": "b790e2f3473fea4a", "scanner": "scanner-primary", "fingerprint": "7572f67dcb1190c7", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c24e45ae3e940fb2", "level": "error", "message": {"text": "Dangling fetch: PUT /model-free-gifts (apps/api/src/routes/model-free-gifts.test.ts:161)"}, "properties": {"repobilityId": "0e3042acb2c82f71", "scanner": "scanner-primary", "fingerprint": "c24e45ae3e940fb2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-13c69f9266d94a96", "level": "error", "message": {"text": "Dangling fetch: PUT /model-free-gifts (apps/api/src/routes/model-free-gifts.test.ts:173)"}, "properties": {"repobilityId": "59df2799325d8412", "scanner": "scanner-primary", "fingerprint": "13c69f9266d94a96", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-bc319b1a887bf1e0", "level": "error", "message": {"text": "Dangling fetch: PUT /model-free-gifts (apps/api/src/routes/model-free-gifts.test.ts:208)"}, "properties": {"repobilityId": "f3f63b3cee8fd54e", "scanner": "scanner-primary", "fingerprint": "bc319b1a887bf1e0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5d566a3ead511c61", "level": "error", "message": {"text": "Dangling fetch: PUT /model-free-gifts (apps/api/src/routes/model-free-gifts.test.ts:236)"}, "properties": {"repobilityId": "bc85746997370d4d", "scanner": "scanner-primary", "fingerprint": "5d566a3ead511c61", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-01bd594a786997cb", "level": "error", "message": {"text": "Dangling fetch: PUT /model-free-gifts (apps/api/src/routes/model-free-gifts.test.ts:259)"}, "properties": {"repobilityId": "ac0376addae7ecfc", "scanner": "scanner-primary", "fingerprint": "01bd594a786997cb", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-cc9ea8f1fda55e8d", "level": "error", "message": {"text": "Dangling fetch: PUT /model-free-gifts (apps/api/src/routes/model-free-gifts.test.ts:271)"}, "properties": {"repobilityId": "5db2635f47f770db", "scanner": "scanner-primary", "fingerprint": "cc9ea8f1fda55e8d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-72a7959e5a4dc91a", "level": "error", "message": {"text": "Dangling fetch: PUT /model-free-gifts (apps/api/src/routes/model-free-gifts.test.ts:283)"}, "properties": {"repobilityId": "f833b46481d8b02b", "scanner": "scanner-primary", "fingerprint": "72a7959e5a4dc91a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-15db389c0c973e75", "level": "error", "message": {"text": "Dangling fetch: PUT /model-free-gifts (apps/api/src/routes/model-free-gifts.test.ts:295)"}, "properties": {"repobilityId": "96419af38687a1c0", "scanner": "scanner-primary", "fingerprint": "15db389c0c973e75", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-f3ebd66073aa13ae", "level": "error", "message": {"text": "Dangling fetch: DELETE /model-free-gifts/${MODEL_ID} (apps/api/src/routes/model-free-gifts.test.ts:330)"}, "properties": {"repobilityId": "162a80568c57369f", "scanner": "scanner-primary", "fingerprint": "f3ebd66073aa13ae", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-4176ba364bd1f305", "level": "error", "message": {"text": "Dangling fetch: DELETE /model-free-gifts/${MODEL_ID} (apps/api/src/routes/model-free-gifts.test.ts:352)"}, "properties": {"repobilityId": "afd77019a8fc6459", "scanner": "scanner-primary", "fingerprint": "4176ba364bd1f305", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-17467b1a2f66c95a", "level": "error", "message": {"text": "Dangling fetch: DELETE /model-free-gifts/${MODEL_ID} (apps/api/src/routes/model-free-gifts.test.ts:358)"}, "properties": {"repobilityId": "348b681efb337248", "scanner": "scanner-primary", "fingerprint": "17467b1a2f66c95a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-7a96fdce63673db5", "level": "error", "message": {"text": "Dangling fetch: DELETE /model-free-gifts/${MODEL_ID} (apps/api/src/routes/model-free-gifts.test.ts:366)"}, "properties": {"repobilityId": "be317f41380446b5", "scanner": "scanner-primary", "fingerprint": "7a96fdce63673db5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-71d4717b8f7bb8a5", "level": "error", "message": {"text": "Dangling fetch: POST /mfg-products/${SKU_ID}/activate-one-shot (apps/api/src/routes/mfg-products.test.ts:81)"}, "properties": {"repobilityId": "1c74e3dfb1a78e81", "scanner": "scanner-primary", "fingerprint": "71d4717b8f7bb8a5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-22dc814dd6109d84", "level": "error", "message": {"text": "Dangling fetch: POST /mfg-products/${SKU_ID}/activate-one-shot (apps/api/src/routes/mfg-products.test.ts:134)"}, "properties": {"repobilityId": "edf66486d43a2845", "scanner": "scanner-primary", "fingerprint": "22dc814dd6109d84", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-aeed63d68e1bb184", "level": "error", "message": {"text": "Dangling fetch: POST /mfg-products/${SKU_ID}/activate-one-shot (apps/api/src/routes/mfg-products.test.ts:191)"}, "properties": {"repobilityId": "cae124f44daaa254", "scanner": "scanner-primary", "fingerprint": "aeed63d68e1bb184", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-18b9181c4d648e8a", "level": "error", "message": {"text": "Dangling fetch: POST /mfg-products/${SKU_ID}/activate-one-shot (apps/api/src/routes/mfg-products.test.ts:199)"}, "properties": {"repobilityId": "ca283bdd5b20ee98", "scanner": "scanner-primary", "fingerprint": "18b9181c4d648e8a", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-261e9a1b24605cc4", "level": "error", "message": {"text": "Dangling fetch: POST /slips/init (apps/api/src/routes/slips.test.ts:86)"}, "properties": {"repobilityId": "691f0ff6bc95e532", "scanner": "scanner-primary", "fingerprint": "261e9a1b24605cc4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-b5ff8ceb96a5ef19", "level": "error", "message": {"text": "Dangling fetch: POST /slips/init (apps/api/src/routes/slips.test.ts:102)"}, "properties": {"repobilityId": "991106750889de2b", "scanner": "scanner-primary", "fingerprint": "b5ff8ceb96a5ef19", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-78636f8fcc7da921", "level": "error", "message": {"text": "Dangling fetch: POST /slips/init (apps/api/src/routes/slips.test.ts:116)"}, "properties": {"repobilityId": "877e7af010899a3a", "scanner": "scanner-primary", "fingerprint": "78636f8fcc7da921", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-45ef4527d0da3263", "level": "error", "message": {"text": "Dangling fetch: POST /slips/${sessionId}/confirm (apps/api/src/routes/slips.test.ts:169)"}, "properties": {"repobilityId": "d7ed09cef87553f9", "scanner": "scanner-primary", "fingerprint": "45ef4527d0da3263", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-c6855ad988c1fbcf", "level": "error", "message": {"text": "Dangling fetch: POST /slips/${sessionId}/confirm (apps/api/src/routes/slips.test.ts:182)"}, "properties": {"repobilityId": "6f31973f1eb0162b", "scanner": "scanner-primary", "fingerprint": "c6855ad988c1fbcf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1b0522a966c4180d", "level": "error", "message": {"text": "Dangling fetch: POST /slips/${sessionId}/confirm (apps/api/src/routes/slips.test.ts:196)"}, "properties": {"repobilityId": "31a991a295925032", "scanner": "scanner-primary", "fingerprint": "1b0522a966c4180d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-3ca8e5fd7e69f513", "level": "error", "message": {"text": "Dangling fetch: POST /slips/${sessionId}/confirm (apps/api/src/routes/slips.test.ts:222)"}, "properties": {"repobilityId": "ed70b05d78fe6ef6", "scanner": "scanner-primary", "fingerprint": "3ca8e5fd7e69f513", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8fc2ecabc743734c", "level": "error", "message": {"text": "Dangling fetch: POST /slips/${sessionId}/confirm (apps/api/src/routes/slips.test.ts:245)"}, "properties": {"repobilityId": "f9e7a98ba16e70ec", "scanner": "scanner-primary", "fingerprint": "8fc2ecabc743734c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-56eeb2410b776d3d", "level": "error", "message": {"text": "Dangling fetch: GET /pos/sales-staff?showroomId=kl (apps/api/src/routes/pos.test.ts:63)"}, "properties": {"repobilityId": "d83a066ebf7db1cf", "scanner": "scanner-primary", "fingerprint": "56eeb2410b776d3d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-74bc54707acbc644", "level": "error", "message": {"text": "Dangling fetch: GET /pos/sales-staff (apps/api/src/routes/pos.test.ts:76)"}, "properties": {"repobilityId": "0243e4d5f8d9dcd6", "scanner": "scanner-primary", "fingerprint": "74bc54707acbc644", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5a1e3e85bac91102", "level": "error", "message": {"text": "Dangling fetch: POST /pos/pin-login (apps/api/src/routes/pos.test.ts:114)"}, "properties": {"repobilityId": "34670cf3bbc3b9a4", "scanner": "scanner-primary", "fingerprint": "5a1e3e85bac91102", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-980975b3f50178af", "level": "error", "message": {"text": "Dangling fetch: POST /pos/pin-login (apps/api/src/routes/pos.test.ts:126)"}, "properties": {"repobilityId": "1ce09299556e0e2e", "scanner": "scanner-primary", "fingerprint": "980975b3f50178af", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-5059c3eb6307ba75", "level": "error", "message": {"text": "Dangling fetch: POST /pos/pin-login (apps/api/src/routes/pos.test.ts:141)"}, "properties": {"repobilityId": "bad505bf64a536c6", "scanner": "scanner-primary", "fingerprint": "5059c3eb6307ba75", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-da758b5536ffcaa2", "level": "error", "message": {"text": "Dangling fetch: POST /pos/pin-login (apps/api/src/routes/pos.test.ts:147)"}, "properties": {"repobilityId": "c538774fd6bce57e", "scanner": "scanner-primary", "fingerprint": "da758b5536ffcaa2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-d317702a32a7b4c2", "level": "error", "message": {"text": "Dangling fetch: POST /pos/pin-login (apps/api/src/routes/pos.test.ts:161)"}, "properties": {"repobilityId": "b680c714a9a5e124", "scanner": "scanner-primary", "fingerprint": "d317702a32a7b4c2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-ea4634f785eafd3c", "level": "error", "message": {"text": "Dangling fetch: POST /pos/pin-login (apps/api/src/routes/pos.test.ts:173)"}, "properties": {"repobilityId": "e16c22efbe9da80a", "scanner": "scanner-primary", "fingerprint": "ea4634f785eafd3c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8924d2660224aed5", "level": "error", "message": {"text": "Dangling fetch: POST /pos/pin-login (apps/api/src/routes/pos.test.ts:184)"}, "properties": {"repobilityId": "7124074db29defbb", "scanner": "scanner-primary", "fingerprint": "8924d2660224aed5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-8577c807a0b7767f", "level": "error", "message": {"text": "Dangling fetch: POST /pos/pin-login (apps/api/src/routes/pos.test.ts:194)"}, "properties": {"repobilityId": "fa5dfe5fd4ebe40c", "scanner": "scanner-primary", "fingerprint": "8577c807a0b7767f", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "helper:request"]}}, {"ruleId": "scanner-1bcf943a679811e7", "level": "note", "message": {"text": "Unused endpoint: USE /slips/*"}, "properties": {"repobilityId": "827bc6f73a6c6a35", "scanner": "scanner-primary", "fingerprint": "1bcf943a679811e7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5baa8971ebe192a1", "level": "note", "message": {"text": "Unused endpoint: GET /"}, "properties": {"repobilityId": "3cd513f066d592bb", "scanner": "scanner-primary", "fingerprint": "5baa8971ebe192a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-afc064028ae39ea9", "level": "note", "message": {"text": "Unused endpoint: GET /history"}, "properties": {"repobilityId": "197072fdba382c3f", "scanner": "scanner-primary", "fingerprint": "afc064028ae39ea9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7a009b1a56794f45", "level": "note", "message": {"text": "Unused endpoint: POST /"}, "properties": {"repobilityId": "44d57f5466c3f7f8", "scanner": "scanner-primary", "fingerprint": "7a009b1a56794f45", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8d5b2b188d08ca82", "level": "note", "message": {"text": "Unused endpoint: PUT /:id"}, "properties": {"repobilityId": "b9cb56c0052da3c5", "scanner": "scanner-primary", "fingerprint": "8d5b2b188d08ca82", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7a61c112b611f4bb", "level": "note", "message": {"text": "Unused endpoint: DELETE /:id"}, "properties": {"repobilityId": "ef590a7b7f16b0cb", "scanner": "scanner-primary", "fingerprint": "7a61c112b611f4bb", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-acce01e31336da4c", "level": "note", "message": {"text": "Unused endpoint: GET /deliverable-order-lines"}, "properties": {"repobilityId": "c6156a13a6193670", "scanner": "scanner-primary", "fingerprint": "acce01e31336da4c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ca5756175765b49d", "level": "note", "message": {"text": "Unused endpoint: GET /:id"}, "properties": {"repobilityId": "f641f4961f7ad6f6", "scanner": "scanner-primary", "fingerprint": "ca5756175765b49d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5fbc954f63526821", "level": "note", "message": {"text": "Unused endpoint: PATCH /:id"}, "properties": {"repobilityId": "93032ff14f090189", "scanner": "scanner-primary", "fingerprint": "5fbc954f63526821", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3668ab769cd681f5", "level": "note", "message": {"text": "Unused endpoint: POST /:id/items"}, "properties": {"repobilityId": "18c38f9e3022d041", "scanner": "scanner-primary", "fingerprint": "3668ab769cd681f5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0adec3e9b570b1e7", "level": "note", "message": {"text": "Unused endpoint: PATCH /:id/items/:itemId"}, "properties": {"repobilityId": "41dbb0486140732d", "scanner": "scanner-primary", "fingerprint": "0adec3e9b570b1e7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-06a686925186f013", "level": "note", "message": {"text": "Unused endpoint: DELETE /:id/items/:itemId"}, "properties": {"repobilityId": "c57a7e7b216dbc7b", "scanner": "scanner-primary", "fingerprint": "06a686925186f013", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-2829b186ab04fbc9", "level": "note", "message": {"text": "Unused endpoint: GET /:id/payments"}, "properties": {"repobilityId": "4deaffde2bb2d2bb", "scanner": "scanner-primary", "fingerprint": "2829b186ab04fbc9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a155f25bc26208ce", "level": "note", "message": {"text": "Unused endpoint: POST /:id/payments"}, "properties": {"repobilityId": "9997c08f9116d515", "scanner": "scanner-primary", "fingerprint": "a155f25bc26208ce", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-05aa5e4bc4977a13", "level": "note", "message": {"text": "Unused endpoint: DELETE /:id/payments/:paymentId"}, "properties": {"repobilityId": "37769d7629d81048", "scanner": "scanner-primary", "fingerprint": "05aa5e4bc4977a13", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f39249a345a19765", "level": "note", "message": {"text": "Unused endpoint: PATCH /:id/status"}, "properties": {"repobilityId": "bec2bbf345e0a3de", "scanner": "scanner-primary", "fingerprint": "f39249a345a19765", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ebb0a0dd7da50d32", "level": "note", "message": {"text": "Unused endpoint: GET /deliverable-so-lines"}, "properties": {"repobilityId": "cb022af7540dd2f7", "scanner": "scanner-primary", "fingerprint": "ebb0a0dd7da50d32", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-23b8d11ef5fe705b", "level": "note", "message": {"text": "Unused endpoint: POST /from-sos"}, "properties": {"repobilityId": "257a4c060da13ccc", "scanner": "scanner-primary", "fingerprint": "23b8d11ef5fe705b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9518731de244fe73", "level": "note", "message": {"text": "Unused endpoint: GET /resolved"}, "properties": {"repobilityId": "25030586d6b4a668", "scanner": "scanner-primary", "fingerprint": "9518731de244fe73", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e1e1bcfcd2dd7548", "level": "note", "message": {"text": "Unused endpoint: POST /changes"}, "properties": {"repobilityId": "2127974eefda17bd", "scanner": "scanner-primary", "fingerprint": "e1e1bcfcd2dd7548", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3ca94e7a2afa7f24", "level": "note", "message": {"text": "Unused endpoint: POST /sofa-compartments/rename"}, "properties": {"repobilityId": "5d75222ca717746c", "scanner": "scanner-primary", "fingerprint": "3ca94e7a2afa7f24", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-b4d82495ad031b6a", "level": "note", "message": {"text": "Unused endpoint: DELETE /changes/:id"}, "properties": {"repobilityId": "eac97154e4a7d322", "scanner": "scanner-primary", "fingerprint": "b4d82495ad031b6a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8898aa559b66a54b", "level": "note", "message": {"text": "Unused endpoint: GET /returnable-note-lines"}, "properties": {"repobilityId": "6c185658f2294141", "scanner": "scanner-primary", "fingerprint": "8898aa559b66a54b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ba87dd2b2d4c60f3", "level": "note", "message": {"text": "Unused endpoint: POST /bulk-upsert"}, "properties": {"repobilityId": "d4260161eacbbad4", "scanner": "scanner-primary", "fingerprint": "ba87dd2b2d4c60f3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a218cf2b25a35214", "level": "note", "message": {"text": "Unused endpoint: PATCH /:id/active"}, "properties": {"repobilityId": "0f53a3d9256b1158", "scanner": "scanner-primary", "fingerprint": "a218cf2b25a35214", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-234791b49988ecd6", "level": "note", "message": {"text": "Unused endpoint: PATCH /:id/series"}, "properties": {"repobilityId": "f5b195cc58cfcaad", "scanner": "scanner-primary", "fingerprint": "234791b49988ecd6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-81ca53dea5dbf0a4", "level": "note", "message": {"text": "Unused endpoint: PATCH /:id/supplier-code"}, "properties": {"repobilityId": "44d88d2e5bfe9d6b", "scanner": "scanner-primary", "fingerprint": "81ca53dea5dbf0a4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c1b05c5f3fcd6c16", "level": "note", "message": {"text": "Unused endpoint: PATCH /:id/description"}, "properties": {"repobilityId": "60999ed92f511507", "scanner": "scanner-primary", "fingerprint": "c1b05c5f3fcd6c16", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c7cb6b490cef36ac", "level": "note", "message": {"text": "Unused endpoint: PATCH /:id/tier"}, "properties": {"repobilityId": "736fac45885ba247", "scanner": "scanner-primary", "fingerprint": "c7cb6b490cef36ac", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-539968b6f62bba8c", "level": "note", "message": {"text": "Unused endpoint: GET /:id/bindings"}, "properties": {"repobilityId": "706e1ae37429acd7", "scanner": "scanner-primary", "fingerprint": "539968b6f62bba8c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f6cf2fe34c4dde93", "level": "note", "message": {"text": "Unused endpoint: POST /:id/bindings"}, "properties": {"repobilityId": "cbd944666dba30a3", "scanner": "scanner-primary", "fingerprint": "f6cf2fe34c4dde93", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f0f7a7e0170d3f3f", "level": "note", "message": {"text": "Unused endpoint: POST /:id/bindings/batch"}, "properties": {"repobilityId": "9e0833123c3daff6", "scanner": "scanner-primary", "fingerprint": "f0f7a7e0170d3f3f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0a2fa8022b1e565f", "level": "note", "message": {"text": "Unused endpoint: PATCH /:id/bindings/:bindingId"}, "properties": {"repobilityId": "0f7b28f0ca5834be", "scanner": "scanner-primary", "fingerprint": "0a2fa8022b1e565f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-46d082d658d97d6f", "level": "note", "message": {"text": "Unused endpoint: DELETE /:id/bindings/:bindingId"}, "properties": {"repobilityId": "dec6125e7398b206", "scanner": "scanner-primary", "fingerprint": "46d082d658d97d6f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-aaa5fc3479650583", "level": "note", "message": {"text": "Unused endpoint: GET /:id/scorecard"}, "properties": {"repobilityId": "0ae279808cd46ec0", "scanner": "scanner-primary", "fingerprint": "aaa5fc3479650583", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c2d525cea2b0428d", "level": "note", "message": {"text": "Unused endpoint: GET /material/:kind/:code"}, "properties": {"repobilityId": "173c046d6c43b319", "scanner": "scanner-primary", "fingerprint": "c2d525cea2b0428d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-21c7ff7b8ef22c44", "level": "note", "message": {"text": "Unused endpoint: GET /accounts"}, "properties": {"repobilityId": "637beaa887b57b0f", "scanner": "scanner-primary", "fingerprint": "21c7ff7b8ef22c44", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fcb87da63eff9d52", "level": "note", "message": {"text": "Unused endpoint: GET /journal-entries"}, "properties": {"repobilityId": "5612b49eb62689ac", "scanner": "scanner-primary", "fingerprint": "fcb87da63eff9d52", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-41a1b4e615256180", "level": "note", "message": {"text": "Unused endpoint: GET /journal-entries/:id"}, "properties": {"repobilityId": "489e3fb889559aa3", "scanner": "scanner-primary", "fingerprint": "41a1b4e615256180", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6cc7cd5608b16436", "level": "note", "message": {"text": "Unused endpoint: POST /journal-entries"}, "properties": {"repobilityId": "f84b926825348abc", "scanner": "scanner-primary", "fingerprint": "6cc7cd5608b16436", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-819a3820a961d11d", "level": "note", "message": {"text": "Unused endpoint: POST /journal-entries/:id/post"}, "properties": {"repobilityId": "db354bf20bcc5bbb", "scanner": "scanner-primary", "fingerprint": "819a3820a961d11d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-265a6a3214544a44", "level": "note", "message": {"text": "Unused endpoint: POST /post/si/:invoiceNumber"}, "properties": {"repobilityId": "d93733b8b9605a83", "scanner": "scanner-primary", "fingerprint": "265a6a3214544a44", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7d5fce5930ed728e", "level": "note", "message": {"text": "Unused endpoint: POST /post/pi/:invoiceNumber"}, "properties": {"repobilityId": "aaab57df6f4e5682", "scanner": "scanner-primary", "fingerprint": "7d5fce5930ed728e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-52a115bcd17a5fc5", "level": "note", "message": {"text": "Unused endpoint: GET /gl"}, "properties": {"repobilityId": "86fe04edf0925ef4", "scanner": "scanner-primary", "fingerprint": "52a115bcd17a5fc5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-17743c3df234a428", "level": "note", "message": {"text": "Unused endpoint: GET /balances"}, "properties": {"repobilityId": "33b152b360bf11f4", "scanner": "scanner-primary", "fingerprint": "17743c3df234a428", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cf56d2978d45bc62", "level": "note", "message": {"text": "Unused endpoint: GET /ar-aging"}, "properties": {"repobilityId": "ebc5e1ecf640d9a1", "scanner": "scanner-primary", "fingerprint": "cf56d2978d45bc62", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f197ed2ec62b6aff", "level": "note", "message": {"text": "Unused endpoint: GET /ap-aging"}, "properties": {"repobilityId": "e69220a37162cdc8", "scanner": "scanner-primary", "fingerprint": "f197ed2ec62b6aff", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-67d28fa8cd6bb12f", "level": "note", "message": {"text": "Unused endpoint: PUT /"}, "properties": {"repobilityId": "97e9987b7e3d2bfa", "scanner": "scanner-primary", "fingerprint": "67d28fa8cd6bb12f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-92db9a379bb63a73", "level": "note", "message": {"text": "Unused endpoint: GET /:id/linked"}, "properties": {"repobilityId": "c8025fe1a5f8425a", "scanner": "scanner-primary", "fingerprint": "92db9a379bb63a73", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-dfe885b7dde97865", "level": "note", "message": {"text": "Unused endpoint: PATCH /:id/submit"}, "properties": {"repobilityId": "90962b6a75477c00", "scanner": "scanner-primary", "fingerprint": "dfe885b7dde97865", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}