{"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-bead75b0f9233e05", "name": "No API endpoints detected", "shortDescription": {"text": "No API endpoints detected"}, "fullDescription": {"text": "The scanner did not find FastAPI/Flask/Express/NestJS/GraphQL/gRPC routes. If this repo exposes APIs, the framework may be unsupported."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "info", "confidence": 1.0}}, {"id": "scanner-68cfbb65d3af1765", "name": "Stray `console.log` in TS/JS \u2014 tests/user-data-persistence.test.ts:27", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/user-data-persistence.test.ts:27"}, "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-6a534529e4b728f3", "name": "Stray `console.log` in TS/JS \u2014 tests/e2e/orders/full-order-flow.spec.ts:406", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 tests/e2e/orders/full-order-flow.spec.ts:406"}, "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-b1a431694f6fc93a", "name": "Stray `console.log` in TS/JS \u2014 scripts/build-fiscal-cerere-pdf-template.ts:62", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-fiscal-cerere-pdf-template.ts:62"}, "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-f207091cd23e4ea1", "name": "Stray `console.log` in TS/JS \u2014 scripts/configure-s3-cors.ts:64", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/configure-s3-cors.ts:64"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d47206dcfe2349b8", "name": "Stray `console.log` in TS/JS \u2014 src/components/orders/modular-order-wizard.tsx:346", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/orders/modular-order-wizard.tsx:346"}, "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-8f9502cccb872a3d", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/orders/steps-modular/contact-step.tsx:262", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/orders/steps-modular/contact-step.tsx:262"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-319031675c3189d8", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/orders/steps-modular/delivery-step.tsx:1564", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/orders/steps-modular/delivery-step.tsx:1564"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-176d2f59083dc279", "name": "Stray `console.log` in TS/JS \u2014 src/components/orders/steps/personal-data-step.tsx:300", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/orders/steps/personal-data-step.tsx:300"}, "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-df016cfe20a64fc3", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/orders/modules/company-kyc/CompanyDocumentsStep.tsx:", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/orders/modules/company-kyc/CompanyDocumentsStep.tsx:339"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6e6e469fc2da4bd9", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/orders/modules/signature/ContractPreview.tsx:163", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/orders/modules/signature/ContractPreview.tsx:163"}, "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-6326afc15d9d93d7", "name": "Stray `console.log` in TS/JS \u2014 src/components/orders/modules/personal-kyc/KYCDocumentsStep.tsx:269", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/orders/modules/personal-kyc/KYCDocumentsStep.tsx:269"}, "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-ee8cb42889a87e05", "name": "Stray `console.log` in TS/JS \u2014 src/components/orders/modules/personal-kyc/PersonalDataStep.tsx:246", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/orders/modules/personal-kyc/PersonalDataStep.tsx:246"}, "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-cf34b89aa1feb5c6", "name": "Stray `console.log` in TS/JS \u2014 src/components/shared/IdScanner.tsx:248", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/shared/IdScanner.tsx:248"}, "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-5a9cf808b76ffd08", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/shared/SearchableSelect.tsx:287", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/shared/SearchableSelect.tsx:287"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6d35af60fdcd1e23", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/shared/header.tsx:217", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/shared/header.tsx:217"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a0ff17ad3106e5d5", "name": "Icon-only button without accessible name \u2014 src/components/examples/ColorSystemDemo.tsx:186", "shortDescription": {"text": "Icon-only button without accessible name \u2014 src/components/examples/ColorSystemDemo.tsx:186"}, "fullDescription": {"text": "A `<button>` whose only child is a single glyph or symbol needs `title=` or `aria-label=` so screen readers (and tooltips on hover) work.\n\nWhy: P3 in CHECKLIST.md \u2014 icon-only buttons skipped a title.\nRule id: fq.button.no-label"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8871b54fb17b7822", "name": "Stray `console.log` in TS/JS \u2014 src/components/account/KYCTab.tsx:191", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/components/account/KYCTab.tsx:191"}, "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-f1cb3e4913f1a8d3", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/payment/PaymentProofUpload.tsx:131", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/payment/PaymentProofUpload.tsx:131"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-96ca0e80b6b970e9", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/payment/OrderSummaryCard.tsx:70", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/payment/OrderSummaryCard.tsx:70"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9a7751db9c0b549e", "name": "`truncate` class without `title=` for hover reveal \u2014 src/components/payment/CouponInput.tsx:99", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/payment/CouponInput.tsx:99"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8233094809602f45", "name": "Stray `console.log` in TS/JS \u2014 src/providers/modular-wizard-provider.tsx:1033", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/providers/modular-wizard-provider.tsx:1033"}, "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-e43389638b7f2961", "name": "TODO/FIXME marker in shipping code \u2014 src/providers/order-wizard-provider.tsx:418", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/providers/order-wizard-provider.tsx:418"}, "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-5c038664ea33b1f6", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/page.tsx:104", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/page.tsx:104"}, "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-343b57f66b5c73b9", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/cazier-auto-online/page.tsx:126", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/cazier-auto-online/page.tsx:126"}, "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-9ebc8c7468d74afe", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/eliberare-certificat-de-celibat/page.tsx:118", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/eliberare-certificat-de-celibat/page.tsx:118"}, "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-66096da9454af212", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/extras-de-carte-funciara/page.tsx:125", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/extras-de-carte-funciara/page.tsx:125"}, "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-71d299fa7fafe902", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/eliberare-certificat-de-casatorie/page.tsx:118", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/eliberare-certificat-de-casatorie/page.tsx:118"}, "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-35a91c7c87ef7c14", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/eliberare-certificat-de-nastere/page.tsx:118", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/eliberare-certificat-de-nastere/page.tsx:118"}, "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-82eb1c018e514eea", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/certificat-de-integritate-comportamentala/page.ts", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/certificat-de-integritate-comportamentala/page.tsx:139"}, "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-404d493c26c88102", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/servicii/cazier-judiciar-online/page.tsx:872", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/servicii/cazier-judiciar-online/page.tsx:872"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5647e87156358b08", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/cazier-judiciar-online/page.tsx:307", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/cazier-judiciar-online/page.tsx:307"}, "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-513be990c362b6e2", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/cazier-judiciar-online/persoana-juridica/page.tsx", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/cazier-judiciar-online/persoana-juridica/page.tsx:162"}, "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-f0faf5f6cf1cce28", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/cazier-judiciar-online/persoana-fizica/page.tsx:1", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/cazier-judiciar-online/persoana-fizica/page.tsx:153"}, "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-051bc40a27369773", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/certificat-constatator-online/page.tsx:127", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/certificat-constatator-online/page.tsx:127"}, "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-7f989e9627ee4fff", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/cazier-fiscal-online/page.tsx:120", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/cazier-fiscal-online/page.tsx:120"}, "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-b00071fc6745f34c", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/[slug]/page.tsx:272", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/[slug]/page.tsx:272"}, "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-79efa7639f011f90", "name": "Stray `console.log` in TS/JS \u2014 src/app/comanda/success/[orderId]/page.tsx:161", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/comanda/success/[orderId]/page.tsx:161"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-86bb989ad2bf5ab9", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/comanda/checkout/[orderId]/page.tsx:521", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/comanda/checkout/[orderId]/page.tsx:521"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2a81234011ecdbf1", "name": "Stray `console.log` in TS/JS \u2014 src/app/api/orders/draft/route.ts:206", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/orders/draft/route.ts:206"}, "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-67e32688a23af071", "name": "Stray `console.log` in TS/JS \u2014 src/app/api/orders/[id]/submit/route.ts:319", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/orders/[id]/submit/route.ts:319"}, "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-7ca8c825da440120", "name": "Stray `console.log` in TS/JS \u2014 src/app/api/orders/[id]/confirm-payment/route.ts:110", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/orders/[id]/confirm-payment/route.ts:110"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0984601b3ebf567a", "name": "TODO/FIXME marker in shipping code \u2014 src/app/api/orders/[id]/bank-transfer/route.ts:112", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/app/api/orders/[id]/bank-transfer/route.ts:112"}, "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-326833cd06fcee74", "name": "Stray `console.log` in TS/JS \u2014 src/app/api/auth/register-from-order/route.ts:306", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/auth/register-from-order/route.ts:306"}, "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-abdede40adeedcae", "name": "TODO/FIXME marker in shipping code \u2014 src/app/api/admin/orders/[id]/verify-payment/route.ts:110", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 src/app/api/admin/orders/[id]/verify-payment/route.ts:110"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5af9412a8ddeed76", "name": "Stray `console.log` in TS/JS \u2014 src/app/api/admin/orders/[id]/verify-payment/route.ts:138", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/admin/orders/[id]/verify-payment/route.ts:138"}, "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-88363a51e6829d76", "name": "Stray `console.log` in TS/JS \u2014 src/app/api/cron/update-tracking/route.ts:82", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/cron/update-tracking/route.ts:82"}, "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-b2f543c3a6b15c2f", "name": "Stray `console.log` in TS/JS \u2014 src/app/api/webhooks/stripe/route.ts:112", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/webhooks/stripe/route.ts:112"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a6e64369a602b22b", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/admin/page.tsx:647", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/admin/page.tsx:647"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4fc9521099e1efa1", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/admin/layout.tsx:262", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/admin/layout.tsx:262"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-819b33b608570730", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/admin/settings/page.tsx:337", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/admin/settings/page.tsx:337"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aac7bddd967e54d6", "name": "`truncate` class without `title=` for hover reveal \u2014 src/app/admin/orders/page.tsx:410", "shortDescription": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/admin/orders/page.tsx:410"}, "fullDescription": {"text": "A truncated value should reveal the full text on hover. Pass the full string via `title={...}` so the user can read it.\n\nWhy: P2 in CHECKLIST.md \u2014 truncate without hover-reveal.\nRule id: fq.truncate.no-title"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1fe8bf48d3767ae1", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/tools/verificare-rovinieta-online/page.tsx:66", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/tools/verificare-rovinieta-online/page.tsx:66"}, "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-6510432bebeaf529", "name": "Stray `console.log` in TS/JS \u2014 src/lib/security/audit-logger.ts:52", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/security/audit-logger.ts:52"}, "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-3631a35a68170d49", "name": "Stray `console.log` in TS/JS \u2014 src/lib/onrc/ensure-onrc-job.ts:96", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/onrc/ensure-onrc-job.ts:96"}, "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-e9cb260cdf8dd1ad", "name": "Stray `console.log` in TS/JS \u2014 src/lib/oblio/ensure-invoice.ts:184", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/oblio/ensure-invoice.ts:184"}, "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-25701062f769c9b7", "name": "Stray `console.log` in TS/JS \u2014 src/lib/services/infocui.ts:118", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/services/infocui.ts:118"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f5b173ab33b4810d", "name": "Stray `console.log` in TS/JS \u2014 src/lib/services/courier/fancourier.ts:98", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/services/courier/fancourier.ts:98"}, "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-19dc13aebbe4388e", "name": "Stray `console.log` in TS/JS \u2014 src/lib/services/courier/sameday.ts:92", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/services/courier/sameday.ts:92"}, "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-ec36e50b6a6e98fc", "name": "Stray `console.log` in TS/JS \u2014 src/lib/documents/auto-generate.ts:380", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/documents/auto-generate.ts:380"}, "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-7d6499354520c75b", "name": "Insecure pattern 'node_child_process' in scripts/test-delivery-integration.mjs:23", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/test-delivery-integration.mjs:23"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ee17a54859493044", "name": "Insecure pattern 'node_child_process' in scripts/test-delivery-calculator.mjs:20", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/test-delivery-calculator.mjs:20"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6547bfeb0c503b50", "name": "Insecure pattern 'node_child_process' in scripts/test-cetatean-strain.mjs:19", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/test-cetatean-strain.mjs:19"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-90fcb44d9b461505", "name": "Possible secret in .claude/settings.local.json", "shortDescription": {"text": "Possible secret in .claude/settings.local.json"}, "fullDescription": {"text": "Detected pattern matching aws_secret. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-6257b8bfd88cba9a", "name": "Insecure pattern 'dangerous_innerhtml' in src/components/orders/modules/signature/ContractPreview.tsx:163", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/components/orders/modules/signature/ContractPreview.tsx:163"}, "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-b50f3f602c8365e5", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/page.tsx:104", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/page.tsx:104"}, "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-f8efa59e3c507a86", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/cazier-auto-online/page.tsx:126", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/cazier-auto-online/page.tsx:126"}, "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-af9aa482a3f5daec", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/eliberare-certificat-de-celibat/page.tsx:118", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/eliberare-certificat-de-celibat/page.tsx:118"}, "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-d49ac1e8c7ea16a7", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/extras-de-carte-funciara/page.tsx:125", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/extras-de-carte-funciara/page.tsx:125"}, "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-f7d8725040805ca4", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/eliberare-certificat-de-casatorie/page.tsx:118", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/eliberare-certificat-de-casatorie/page.tsx:118"}, "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-31175e9525dacfa1", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/eliberare-certificat-de-nastere/page.tsx:118", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/eliberare-certificat-de-nastere/page.tsx:118"}, "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-0efbe07857cf413c", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/certificat-de-integritate-comportamentala/page.tsx:139", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/certificat-de-integritate-comportamentala/page.tsx:139"}, "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-5ece9e9f9428b49e", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/cazier-judiciar-online/page.tsx:307", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/cazier-judiciar-online/page.tsx:307"}, "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-28d0ed0e1cfa370d", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/cazier-judiciar-online/persoana-juridica/page.tsx:162", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/cazier-judiciar-online/persoana-juridica/page.tsx:162"}, "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-549f0673275eb574", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/cazier-judiciar-online/persoana-fizica/page.tsx:153", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/cazier-judiciar-online/persoana-fizica/page.tsx:153"}, "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-72783e87f1440bfb", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/certificat-constatator-online/page.tsx:127", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/certificat-constatator-online/page.tsx:127"}, "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-e9bba47c77569e9f", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/cazier-fiscal-online/page.tsx:120", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/cazier-fiscal-online/page.tsx:120"}, "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-47c13a06262aab29", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/[slug]/page.tsx:272", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/[slug]/page.tsx:272"}, "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-3146d6331f9fd480", "name": "Insecure pattern 'dangerous_innerhtml' in src/app/tools/verificare-rovinieta-online/page.tsx:66", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/tools/verificare-rovinieta-online/page.tsx:66"}, "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-2e8c52e1abc0c21d", "name": "Insecure pattern 'node_child_process' in src/lib/documents/docx-to-pdf.ts:18", "shortDescription": {"text": "Insecure pattern 'node_child_process' in src/lib/documents/docx-to-pdf.ts:18"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7efbda965f283c17", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v5 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-46cfa21613e21b11", "name": "Very large file: src/components/orders/steps-modular/delivery-step.tsx (1998 lines)", "shortDescription": {"text": "Very large file: src/components/orders/steps-modular/delivery-step.tsx (1998 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-494aec92d1949077", "name": "Very large file: src/components/orders/modules/personal-kyc/PersonalDataStep.tsx (2069 lines)", "shortDescription": {"text": "Very large file: src/components/orders/modules/personal-kyc/PersonalDataStep.tsx (2069 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-33c073286dfe62e8", "name": "Very large file: src/providers/modular-wizard-provider.tsx (1822 lines)", "shortDescription": {"text": "Very large file: src/providers/modular-wizard-provider.tsx (1822 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-5fd37acfe12b3474", "name": "Very large file: src/app/servicii/cazier-judiciar-online/page.tsx (1317 lines)", "shortDescription": {"text": "Very large file: src/app/servicii/cazier-judiciar-online/page.tsx (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-5f6c142cba3be90d", "name": "Very large file: src/app/admin/settings/page.tsx (2720 lines)", "shortDescription": {"text": "Very large file: src/app/admin/settings/page.tsx (2720 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-615becce9de97023", "name": "Very large file: src/app/admin/users/page.tsx (1607 lines)", "shortDescription": {"text": "Very large file: src/app/admin/users/page.tsx (1607 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-e7d408a13284bada", "name": "Very large file: src/app/admin/orders/[id]/page.tsx (3134 lines)", "shortDescription": {"text": "Very large file: src/app/admin/orders/[id]/page.tsx (3134 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-98684d1aaaec8f18", "name": "Very large file: src/lib/services/document-ocr.ts (1373 lines)", "shortDescription": {"text": "Very large file: src/lib/services/document-ocr.ts (1373 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-141b30a41e03817b", "name": "No license file detected", "shortDescription": {"text": "No license file detected"}, "fullDescription": {"text": "No LICENSE/COPYING/NOTICE file was found. Generated repositories often omit licensing, which blocks reuse and automated intake."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 182 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 324 placeholder/mock markers across 58 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9d79c4077342a7d0", "name": "Runtime service client appears to use placeholder configuration", "shortDescription": {"text": "Runtime service client appears to use placeholder configuration"}, "fullDescription": {"text": "A runtime source file appears to wire Supabase/Firebase/AI/payment-style clients to placeholder URLs, keys, or fallback values. In the Fable corpus this often means the UI/API shape is present while the backend service is not actually configured."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing license. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-17d866d91a7c451e", "name": "Agent instruction/config may expose a secret: CLAUDE.md", "shortDescription": {"text": "Agent instruction/config may expose a secret: CLAUDE.md"}, "fullDescription": {"text": "Agent-facing files are routinely pasted into LLM/tool contexts. Move literal tokens, keys, and passwords into a secret manager or document them as placeholders only."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-62d348e5634ecbfa", "name": "Agent authority lacks a verifier contract: .claude/agents/api-designer.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/api-designer.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d6a57e14d5e66285", "name": "Agent authority lacks a verifier contract: .claude/agents/design-system-builder.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/design-system-builder.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-23bc11d130ccb89e", "name": "Agent authority lacks a verifier contract: .claude/agents/seo-optimizer.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/seo-optimizer.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1fc01625099d6536", "name": "Agent authority lacks a verifier contract: .claude/agents/typography-expert.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/typography-expert.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-962425dd51f15665", "name": "Agent authority lacks a verifier contract: .claude/agents/brand-designer.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/brand-designer.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-81a6c78a56c3c49b", "name": "Agent authority lacks a verifier contract: .claude/agents/system-designer.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/system-designer.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-65335e855df5307a", "name": "Agent authority lacks a verifier contract: .claude/agents/tech-stack-advisor.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/tech-stack-advisor.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-19f18bdc1ea8040d", "name": "Agent authority lacks a verifier contract: .claude/agents/security-auditor.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/security-auditor.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a7c16440763ec993", "name": "Agent authority lacks a verifier contract: .claude/agents/trend-analyst.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/trend-analyst.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1cd03ee8035be109", "name": "Agent authority lacks a verifier contract: .claude/agents/ui-designer.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/ui-designer.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5bc98193fb17b248", "name": "Agent authority lacks a verifier contract: .claude/agents/database-planner.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/database-planner.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d9f49c5ae6d19b37", "name": "Agent authority lacks a verifier contract: .claude/agents/feature-spec-writer.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/feature-spec-writer.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d419cfff4c079fd2", "name": "Agent authority lacks a verifier contract: .claude/agents/performance-optimizer.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/performance-optimizer.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3cc4d4c4c65eae29", "name": "Agent authority lacks a verifier contract: .claude/agents/icon-designer.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/icon-designer.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e97f9691ff4615fd", "name": "Agent authority lacks a verifier contract: .claude/agents/project-manager.md", "shortDescription": {"text": "Agent authority lacks a verifier contract: .claude/agents/project-manager.md"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-746f9fd246b6ea17", "name": "Commented-code block (5 lines) in vitest.config.ts:4", "shortDescription": {"text": "Commented-code block (5 lines) in vitest.config.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-b0d3521763395bbc", "name": "Commented-code block (5 lines) in tests/integration/kyc-face-match.test.mjs:86", "shortDescription": {"text": "Commented-code block (5 lines) in tests/integration/kyc-face-match.test.mjs:86"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0dff1cfb5a4b219e", "name": "Commented-code block (7 lines) in tests/unit/lib/delivery-calculator-options.test.ts:12", "shortDescription": {"text": "Commented-code block (7 lines) in tests/unit/lib/delivery-calculator-options.test.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-3c12f9f11f469e8e", "name": "Commented-code block (8 lines) in tests/unit/lib/delivery-estimate-helper.test.ts:4", "shortDescription": {"text": "Commented-code block (8 lines) in tests/unit/lib/delivery-estimate-helper.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-fe2637752e170cdf", "name": "Commented-code block (5 lines) in tests/unit/lib/coupons/recovery-code.test.ts:8", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/lib/coupons/recovery-code.test.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-cd6873c84d3ba72e", "name": "Commented-code block (6 lines) in tests/unit/lib/services/document-ocr-passport-mrz.test.ts:79", "shortDescription": {"text": "Commented-code block (6 lines) in tests/unit/lib/services/document-ocr-passport-mrz.test.ts:79"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7fca37cf324cac71", "name": "Commented-code block (5 lines) in tests/unit/lib/services/document-ocr-mrz-parser.test.ts:82", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/lib/services/document-ocr-mrz-parser.test.ts:82"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-746a110c37865636", "name": "Commented-code block (8 lines) in tests/unit/lib/services/infocui.test.ts:45", "shortDescription": {"text": "Commented-code block (8 lines) in tests/unit/lib/services/infocui.test.ts: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-e16f3c40add83e96", "name": "Commented-code block (5 lines) in tests/unit/lib/documents/contract-breakdown.test.ts:17", "shortDescription": {"text": "Commented-code block (5 lines) in tests/unit/lib/documents/contract-breakdown.test.ts:17"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-85f2e38193a585e6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-kyc-face-match.mjs:24", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-kyc-face-match.mjs:24"}, "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-ff11b6d0e35b7449", "name": "Commented-code block (5 lines) in scripts/test-delivery-integration.mjs:62", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/test-delivery-integration.mjs: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-3f6d14b8073ac081", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/sync-constatator-pf-istoric.mjs:32", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/sync-constatator-pf-istoric.mjs:32"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b86269f576311622", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/sync-constatator-purposes.mjs:38", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/sync-constatator-purposes.mjs:38"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ed22d7865deaa821", "name": "Commented-code block (10 lines) in scripts/test-delivery-calculator.mjs:149", "shortDescription": {"text": "Commented-code block (10 lines) in scripts/test-delivery-calculator.mjs: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-43aa069eda8e5c7b", "name": "Commented-code block (5 lines) in scripts/test-cetatean-strain.mjs:159", "shortDescription": {"text": "Commented-code block (5 lines) in scripts/test-cetatean-strain.mjs:159"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e9b9b2d8dc4d007d", "name": "Commented-code block (5 lines) in src/types/verification-modules.ts:679", "shortDescription": {"text": "Commented-code block (5 lines) in src/types/verification-modules.ts:679"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-26e5f6bd53473a99", "name": "Commented-code block (5 lines) in src/components/orders/price-sidebar-modular.tsx:60", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/orders/price-sidebar-modular.tsx: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-3c5a303cfe8606d7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/orders/tracking-timeline.tsx:157", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/orders/tracking-timeline.tsx:157"}, "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-8dee2fa1dfa4848e", "name": "Legacy-named symbol `hasDeprecated` in src/components/orders/steps-modular/options-step.tsx:345", "shortDescription": {"text": "Legacy-named symbol `hasDeprecated` in src/components/orders/steps-modular/options-step.tsx:345"}, "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-15e843ef7c14d474", "name": "Commented-code block (6 lines) in src/components/orders/steps-modular/options-step.tsx:885", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/orders/steps-modular/options-step.tsx:885"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fe7b6c7975adecd8", "name": "Commented-code block (5 lines) in src/components/orders/steps-modular/contact-step.tsx:510", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/orders/steps-modular/contact-step.tsx:510"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e37f6ecf08538fc2", "name": "Commented-code block (6 lines) in src/components/orders/steps-modular/delivery-step.tsx:67", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/orders/steps-modular/delivery-step.tsx:67"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3684c1039681c276", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/orders/steps-modular/delivery-step.tsx:380", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/orders/steps-modular/delivery-step.tsx:380"}, "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-4a7d11f8decd3860", "name": "Commented-code block (5 lines) in src/components/orders/steps-modular/review-step.tsx:85", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/orders/steps-modular/review-step.tsx:85"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ec0584ef483504fa", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/orders/steps-modular/review-step.tsx:55", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/orders/steps-modular/review-step.tsx:55"}, "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-f5c07f71246b68dc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/orders/steps/kyc-step.tsx:230", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/orders/steps/kyc-step.tsx:230"}, "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-499f578e04728349", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/orders/steps/personal-data-step.tsx:391", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/orders/steps/personal-data-step.tsx:391"}, "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-b84a23bf1a1ba9bd", "name": "Commented-code block (6 lines) in src/components/orders/modules/signature/SignatureStep.tsx:144", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/orders/modules/signature/SignatureStep.tsx:144"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6121c6e014855905", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/orders/modules/signature/ContractPreview.tsx:80", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/orders/modules/signature/ContractPreview.tsx: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-53bfe27009e5050b", "name": "Commented-code block (6 lines) in src/components/orders/modules/personal-kyc/KYCDocumentsStep.tsx:277", "shortDescription": {"text": "Commented-code block (6 lines) in src/components/orders/modules/personal-kyc/KYCDocumentsStep.tsx:277"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c77257f16a7f2669", "name": "Commented-code block (5 lines) in src/components/orders/modules/personal-kyc/PersonalDataStep.tsx:178", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/orders/modules/personal-kyc/PersonalDataStep.tsx:178"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9ac0523f3b17fc1b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/shared/IdScanner.tsx:258", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/shared/IdScanner.tsx:258"}, "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-609d20ef04048896", "name": "Commented-code block (8 lines) in src/components/shared/header.tsx:46", "shortDescription": {"text": "Commented-code block (8 lines) in src/components/shared/header.tsx:46"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7fc0ba6f839a12de", "name": "Commented-code block (5 lines) in src/components/admin/modify-order-dialog.tsx:235", "shortDescription": {"text": "Commented-code block (5 lines) in src/components/admin/modify-order-dialog.tsx:235"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4fb63ee346f74437", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/account/ProfileTab.tsx:227", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/account/ProfileTab.tsx:227"}, "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-605fc204f9d4cfe3", "name": "Commented-code block (5 lines) in src/providers/modular-wizard-provider.tsx:332", "shortDescription": {"text": "Commented-code block (5 lines) in src/providers/modular-wizard-provider.tsx:332"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7878bd0301e9a152", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/providers/modular-wizard-provider.tsx:976", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/providers/modular-wizard-provider.tsx:976"}, "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-41c54df523f8953c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/providers/order-wizard-provider.tsx:486", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/providers/order-wizard-provider.tsx:486"}, "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-fe5d194e378971b8", "name": "Commented-code block (10 lines) in src/app/servicii/cazier-judiciar-online/page.tsx:1308", "shortDescription": {"text": "Commented-code block (10 lines) in src/app/servicii/cazier-judiciar-online/page.tsx:1308"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0c022ab46c9e1366", "name": "Commented-code block (7 lines) in src/app/comanda/success/[orderId]/page.tsx:152", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/comanda/success/[orderId]/page.tsx:152"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9cd7d1ff0cc0fe5f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/comanda/success/[orderId]/page.tsx:140", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/comanda/success/[orderId]/page.tsx:140"}, "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-fa006134ec979577", "name": "Commented-code block (5 lines) in src/app/api/orders/draft/route.ts:611", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/orders/draft/route.ts:611"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1e2dd3a4082e4b73", "name": "Commented-code block (5 lines) in src/app/api/orders/[id]/submit/route.ts:86", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/orders/[id]/submit/route.ts:86"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2980b5d58cab1419", "name": "Commented-code block (7 lines) in src/app/api/orders/[id]/confirm-payment/route.ts:66", "shortDescription": {"text": "Commented-code block (7 lines) in src/app/api/orders/[id]/confirm-payment/route.ts:66"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d79e6576c279a7c2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/orders/[id]/documents/[docId]/preview/route.ts:63", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/orders/[id]/documents/[docId]/preview/route.ts:63"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8314d404f0f722f6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/admin/orders/[id]/awb-label/route.ts:153", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/admin/orders/[id]/awb-label/route.ts:153"}, "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-aa1d23b626925e0e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/admin/orders/[id]/preview-document/route.ts:123", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/admin/orders/[id]/preview-document/route.ts:123"}, "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-d768285cad12f58a", "name": "Commented-code block (5 lines) in src/app/api/admin/orders/[id]/available-options/route.ts:115", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/admin/orders/[id]/available-options/route.ts:115"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7f91922382c17fb9", "name": "Legacy-named symbol `days_old` in src/app/api/admin/cleanup/route.ts:210", "shortDescription": {"text": "Legacy-named symbol `days_old` in src/app/api/admin/cleanup/route.ts:210"}, "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-694a3e1a3575f2f2", "name": "Commented-code block (5 lines) in src/app/api/onrc/result/route.ts:58", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/onrc/result/route.ts:58"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-379724725f365fcf", "name": "Commented-code block (5 lines) in src/app/api/cron/recovery-emails/route.ts:62", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/cron/recovery-emails/route.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-fe078f6b15d9af5a", "name": "Commented-code block (5 lines) in src/app/api/webhooks/stripe/route.ts:125", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/api/webhooks/stripe/route.ts: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-c7ff0d64c5b3e05d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/admin/settings/page.tsx:562", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/admin/settings/page.tsx:562"}, "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-e3cdd66dee535cdc", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/admin/users/page.tsx:1007", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/admin/users/page.tsx:1007"}, "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-ffaa3bfd0bd41d9f", "name": "Commented-code block (5 lines) in src/app/admin/orders/[id]/page.tsx:1185", "shortDescription": {"text": "Commented-code block (5 lines) in src/app/admin/orders/[id]/page.tsx:1185"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a69a6fe4ae56d0d5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/admin/coupons/page.tsx:143", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/admin/coupons/page.tsx:143"}, "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-17c57d8eed9ff838", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/admin/registru/page.tsx:232", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/admin/registru/page.tsx:232"}, "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-c7cbd0c6ee7f37ed", "name": "Commented-code block (5 lines) in src/lib/delivery-estimate-helper.ts:169", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/delivery-estimate-helper.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-b8a6c0c170a72145", "name": "Commented-code block (5 lines) in src/lib/security/audit-logger.ts:112", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/security/audit-logger.ts:112"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-50e315c7c175888d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/email/resend.ts:60", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/email/resend.ts:60"}, "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-b5401994704d02a3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/aws/upload-client.ts:64", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/aws/upload-client.ts:64"}, "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-ebc84f7f216f8aba", "name": "Commented-code block (6 lines) in src/lib/courier/auto-finalize.ts:1", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/courier/auto-finalize.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-de3b742ac31c8fd4", "name": "Commented-code block (7 lines) in src/lib/verification-modules/step-builder.ts:289", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/verification-modules/step-builder.ts:289"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e1fda411e81e4a5d", "name": "Commented-code block (7 lines) in src/lib/oblio/ensure-invoice.ts:64", "shortDescription": {"text": "Commented-code block (7 lines) in src/lib/oblio/ensure-invoice.ts:64"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-63870487354923f2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/oblio/client.ts:63", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/oblio/client.ts:63"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b579296795f3c999", "name": "Commented-code block (12 lines) in src/lib/supabase/middleware.ts:72", "shortDescription": {"text": "Commented-code block (12 lines) in src/lib/supabase/middleware.ts:72"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d78d8a1870ad40da", "name": "Commented-code block (11 lines) in src/lib/services/document-ocr.ts:961", "shortDescription": {"text": "Commented-code block (11 lines) in src/lib/services/document-ocr.ts:961"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-278dceaf4c92b274", "name": "Commented-code block (6 lines) in src/lib/services/infocui.ts:35", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/services/infocui.ts:35"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-64f9197a7a7e1f0e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/services/courier/fancourier.ts:344", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/services/courier/fancourier.ts:344"}, "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-3d50f47255728533", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/services/courier/sameday.ts:329", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/services/courier/sameday.ts:329"}, "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-5a57401b86963eee", "name": "Commented-code block (6 lines) in src/lib/documents/auto-generate.ts:102", "shortDescription": {"text": "Commented-code block (6 lines) in src/lib/documents/auto-generate.ts:102"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0f5efa063e054b87", "name": "Commented-code block (5 lines) in src/lib/documents/generator.ts:673", "shortDescription": {"text": "Commented-code block (5 lines) in src/lib/documents/generator.ts:673"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f547036c54749881", "name": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/documents/docx-to-pdf.ts:38", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/documents/docx-to-pdf.ts:38"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a260e355ea7d9f89", "name": "32 env vars used in code but missing from .env.example", "shortDescription": {"text": "32 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `BASE_URL`, `CI`, `CLOUDCONVERT_API_KEY`, `CRON_SECRET`, `FANCOURIER_CLIENT_ID`, `FANCOURIER_PASSWORD`, `FANCOURIER_USERNAME`, `GOOGLE_AI_API_KEY` + 24 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/18250"}, "properties": {"repository": "rlutas/eghiseul.ro", "repoUrl": "https://github.com/rlutas/eghiseul.ro", "branch": "main"}, "results": [{"ruleId": "scanner-bead75b0f9233e05", "level": "none", "message": {"text": "No API endpoints detected"}, "properties": {"repobilityId": "0f8bb852027c38f8", "scanner": "scanner-primary", "fingerprint": "bead75b0f9233e05", "layer": "api", "severity": "info", "confidence": 1.0, "tags": ["coverage"]}}, {"ruleId": "scanner-68cfbb65d3af1765", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/user-data-persistence.test.ts:27"}, "properties": {"repobilityId": "f8c160937e793ef2", "scanner": "scanner-primary", "fingerprint": "68cfbb65d3af1765", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6a534529e4b728f3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 tests/e2e/orders/full-order-flow.spec.ts:406"}, "properties": {"repobilityId": "15b1b38aca135744", "scanner": "scanner-primary", "fingerprint": "6a534529e4b728f3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b1a431694f6fc93a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/build-fiscal-cerere-pdf-template.ts:62"}, "properties": {"repobilityId": "3e9091395b64f3ff", "scanner": "scanner-primary", "fingerprint": "b1a431694f6fc93a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f207091cd23e4ea1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/configure-s3-cors.ts:64"}, "properties": {"repobilityId": "13caee5a547afe46", "scanner": "scanner-primary", "fingerprint": "f207091cd23e4ea1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d47206dcfe2349b8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/orders/modular-order-wizard.tsx:346"}, "properties": {"repobilityId": "3c3a83221d4c81b0", "scanner": "scanner-primary", "fingerprint": "d47206dcfe2349b8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8f9502cccb872a3d", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/orders/steps-modular/contact-step.tsx:262"}, "properties": {"repobilityId": "767d4834ee39397b", "scanner": "scanner-primary", "fingerprint": "8f9502cccb872a3d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-319031675c3189d8", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/orders/steps-modular/delivery-step.tsx:1564"}, "properties": {"repobilityId": "a813946c01c2301c", "scanner": "scanner-primary", "fingerprint": "319031675c3189d8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-176d2f59083dc279", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/orders/steps/personal-data-step.tsx:300"}, "properties": {"repobilityId": "fd8375d681aff50f", "scanner": "scanner-primary", "fingerprint": "176d2f59083dc279", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-df016cfe20a64fc3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/orders/modules/company-kyc/CompanyDocumentsStep.tsx:339"}, "properties": {"repobilityId": "f9a969cbcf7e8c8e", "scanner": "scanner-primary", "fingerprint": "df016cfe20a64fc3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6e6e469fc2da4bd9", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/components/orders/modules/signature/ContractPreview.tsx:163"}, "properties": {"repobilityId": "75d1f7186cde772e", "scanner": "scanner-primary", "fingerprint": "6e6e469fc2da4bd9", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-6326afc15d9d93d7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/orders/modules/personal-kyc/KYCDocumentsStep.tsx:269"}, "properties": {"repobilityId": "32dacf38c0bc73ec", "scanner": "scanner-primary", "fingerprint": "6326afc15d9d93d7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ee8cb42889a87e05", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/orders/modules/personal-kyc/PersonalDataStep.tsx:246"}, "properties": {"repobilityId": "e4b6c9f871944095", "scanner": "scanner-primary", "fingerprint": "ee8cb42889a87e05", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-cf34b89aa1feb5c6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/shared/IdScanner.tsx:248"}, "properties": {"repobilityId": "00cec378334f3987", "scanner": "scanner-primary", "fingerprint": "cf34b89aa1feb5c6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5a9cf808b76ffd08", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/shared/SearchableSelect.tsx:287"}, "properties": {"repobilityId": "c3f6acee15878cd4", "scanner": "scanner-primary", "fingerprint": "5a9cf808b76ffd08", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-6d35af60fdcd1e23", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/shared/header.tsx:217"}, "properties": {"repobilityId": "3f767d70d1cd73d7", "scanner": "scanner-primary", "fingerprint": "6d35af60fdcd1e23", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-a0ff17ad3106e5d5", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 src/components/examples/ColorSystemDemo.tsx:186"}, "properties": {"repobilityId": "840a3bd5e81c362a", "scanner": "scanner-primary", "fingerprint": "a0ff17ad3106e5d5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-8871b54fb17b7822", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/components/account/KYCTab.tsx:191"}, "properties": {"repobilityId": "791c10e5aaa064f0", "scanner": "scanner-primary", "fingerprint": "8871b54fb17b7822", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f1cb3e4913f1a8d3", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/payment/PaymentProofUpload.tsx:131"}, "properties": {"repobilityId": "4f01268ca6fba85e", "scanner": "scanner-primary", "fingerprint": "f1cb3e4913f1a8d3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-96ca0e80b6b970e9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/payment/OrderSummaryCard.tsx:70"}, "properties": {"repobilityId": "ff03402fbed5f477", "scanner": "scanner-primary", "fingerprint": "96ca0e80b6b970e9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-9a7751db9c0b549e", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/components/payment/CouponInput.tsx:99"}, "properties": {"repobilityId": "acf57780b18bd11d", "scanner": "scanner-primary", "fingerprint": "9a7751db9c0b549e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-8233094809602f45", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/providers/modular-wizard-provider.tsx:1033"}, "properties": {"repobilityId": "91deda373137e485", "scanner": "scanner-primary", "fingerprint": "8233094809602f45", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e43389638b7f2961", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/providers/order-wizard-provider.tsx:418"}, "properties": {"repobilityId": "27cd0ffda9f20c44", "scanner": "scanner-primary", "fingerprint": "e43389638b7f2961", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-5c038664ea33b1f6", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/page.tsx:104"}, "properties": {"repobilityId": "0c02dd92dd33048e", "scanner": "scanner-primary", "fingerprint": "5c038664ea33b1f6", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-343b57f66b5c73b9", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/cazier-auto-online/page.tsx:126"}, "properties": {"repobilityId": "aa1c5ccc0b7683f1", "scanner": "scanner-primary", "fingerprint": "343b57f66b5c73b9", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-9ebc8c7468d74afe", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/eliberare-certificat-de-celibat/page.tsx:118"}, "properties": {"repobilityId": "24b94b3a8f486660", "scanner": "scanner-primary", "fingerprint": "9ebc8c7468d74afe", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-66096da9454af212", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/extras-de-carte-funciara/page.tsx:125"}, "properties": {"repobilityId": "856a7fed3ecf8845", "scanner": "scanner-primary", "fingerprint": "66096da9454af212", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-71d299fa7fafe902", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/eliberare-certificat-de-casatorie/page.tsx:118"}, "properties": {"repobilityId": "9c972dfb051fadec", "scanner": "scanner-primary", "fingerprint": "71d299fa7fafe902", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-35a91c7c87ef7c14", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/eliberare-certificat-de-nastere/page.tsx:118"}, "properties": {"repobilityId": "a25fa27cb2d96f87", "scanner": "scanner-primary", "fingerprint": "35a91c7c87ef7c14", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-82eb1c018e514eea", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/certificat-de-integritate-comportamentala/page.tsx:139"}, "properties": {"repobilityId": "39040b80c56106af", "scanner": "scanner-primary", "fingerprint": "82eb1c018e514eea", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-404d493c26c88102", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/servicii/cazier-judiciar-online/page.tsx:872"}, "properties": {"repobilityId": "0f0c9c92bb0b343b", "scanner": "scanner-primary", "fingerprint": "404d493c26c88102", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-5647e87156358b08", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/cazier-judiciar-online/page.tsx:307"}, "properties": {"repobilityId": "061e80ed7598de4d", "scanner": "scanner-primary", "fingerprint": "5647e87156358b08", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-513be990c362b6e2", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/cazier-judiciar-online/persoana-juridica/page.tsx:162"}, "properties": {"repobilityId": "d1dc531bc7569cff", "scanner": "scanner-primary", "fingerprint": "513be990c362b6e2", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-f0faf5f6cf1cce28", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/cazier-judiciar-online/persoana-fizica/page.tsx:153"}, "properties": {"repobilityId": "2f238ec97c0a7ae0", "scanner": "scanner-primary", "fingerprint": "f0faf5f6cf1cce28", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-051bc40a27369773", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/certificat-constatator-online/page.tsx:127"}, "properties": {"repobilityId": "86845e6804f775d9", "scanner": "scanner-primary", "fingerprint": "051bc40a27369773", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-7f989e9627ee4fff", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/cazier-fiscal-online/page.tsx:120"}, "properties": {"repobilityId": "9a73416db5a3e865", "scanner": "scanner-primary", "fingerprint": "7f989e9627ee4fff", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-b00071fc6745f34c", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/servicii/[slug]/page.tsx:272"}, "properties": {"repobilityId": "d62b5348871dab9a", "scanner": "scanner-primary", "fingerprint": "b00071fc6745f34c", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-79efa7639f011f90", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/comanda/success/[orderId]/page.tsx:161"}, "properties": {"repobilityId": "fa559dab39a13146", "scanner": "scanner-primary", "fingerprint": "79efa7639f011f90", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-86bb989ad2bf5ab9", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/comanda/checkout/[orderId]/page.tsx:521"}, "properties": {"repobilityId": "57218c5cf95504d8", "scanner": "scanner-primary", "fingerprint": "86bb989ad2bf5ab9", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-2a81234011ecdbf1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/orders/draft/route.ts:206"}, "properties": {"repobilityId": "3cd55e5b048c54bd", "scanner": "scanner-primary", "fingerprint": "2a81234011ecdbf1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-67e32688a23af071", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/orders/[id]/submit/route.ts:319"}, "properties": {"repobilityId": "801a11f4c5588746", "scanner": "scanner-primary", "fingerprint": "67e32688a23af071", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7ca8c825da440120", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/orders/[id]/confirm-payment/route.ts:110"}, "properties": {"repobilityId": "fd073dbf1dc8b3ef", "scanner": "scanner-primary", "fingerprint": "7ca8c825da440120", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0984601b3ebf567a", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/app/api/orders/[id]/bank-transfer/route.ts:112"}, "properties": {"repobilityId": "fcc64d699ea01e42", "scanner": "scanner-primary", "fingerprint": "0984601b3ebf567a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-326833cd06fcee74", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/auth/register-from-order/route.ts:306"}, "properties": {"repobilityId": "0e9e73e5915dc8d7", "scanner": "scanner-primary", "fingerprint": "326833cd06fcee74", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-abdede40adeedcae", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 src/app/api/admin/orders/[id]/verify-payment/route.ts:110"}, "properties": {"repobilityId": "10b4a7349fc8d8d5", "scanner": "scanner-primary", "fingerprint": "abdede40adeedcae", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-5af9412a8ddeed76", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/admin/orders/[id]/verify-payment/route.ts:138"}, "properties": {"repobilityId": "33dfebf587b11512", "scanner": "scanner-primary", "fingerprint": "5af9412a8ddeed76", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-88363a51e6829d76", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/cron/update-tracking/route.ts:82"}, "properties": {"repobilityId": "2bc98b223d83175d", "scanner": "scanner-primary", "fingerprint": "88363a51e6829d76", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b2f543c3a6b15c2f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/app/api/webhooks/stripe/route.ts:112"}, "properties": {"repobilityId": "d219e3c7fea8c39b", "scanner": "scanner-primary", "fingerprint": "b2f543c3a6b15c2f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a6e64369a602b22b", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/admin/page.tsx:647"}, "properties": {"repobilityId": "8d313b2589100140", "scanner": "scanner-primary", "fingerprint": "a6e64369a602b22b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-4fc9521099e1efa1", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/admin/layout.tsx:262"}, "properties": {"repobilityId": "aeed608b5795820a", "scanner": "scanner-primary", "fingerprint": "4fc9521099e1efa1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-819b33b608570730", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/admin/settings/page.tsx:337"}, "properties": {"repobilityId": "84039c68432f8b90", "scanner": "scanner-primary", "fingerprint": "819b33b608570730", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-aac7bddd967e54d6", "level": "none", "message": {"text": "`truncate` class without `title=` for hover reveal \u2014 src/app/admin/orders/page.tsx:410"}, "properties": {"repobilityId": "d20ea50383aaf89d", "scanner": "scanner-primary", "fingerprint": "aac7bddd967e54d6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.truncate.no-title"]}}, {"ruleId": "scanner-1fe8bf48d3767ae1", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 src/app/tools/verificare-rovinieta-online/page.tsx:66"}, "properties": {"repobilityId": "f6891a6d494d0525", "scanner": "scanner-primary", "fingerprint": "1fe8bf48d3767ae1", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-6510432bebeaf529", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/security/audit-logger.ts:52"}, "properties": {"repobilityId": "0990f464cdd87ede", "scanner": "scanner-primary", "fingerprint": "6510432bebeaf529", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3631a35a68170d49", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/onrc/ensure-onrc-job.ts:96"}, "properties": {"repobilityId": "130c6f7d1b2e5367", "scanner": "scanner-primary", "fingerprint": "3631a35a68170d49", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e9cb260cdf8dd1ad", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/oblio/ensure-invoice.ts:184"}, "properties": {"repobilityId": "2d1319940525fb9e", "scanner": "scanner-primary", "fingerprint": "e9cb260cdf8dd1ad", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-25701062f769c9b7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/services/infocui.ts:118"}, "properties": {"repobilityId": "ebebfe0b0814f440", "scanner": "scanner-primary", "fingerprint": "25701062f769c9b7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f5b173ab33b4810d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/services/courier/fancourier.ts:98"}, "properties": {"repobilityId": "5e102098cbe3ba7b", "scanner": "scanner-primary", "fingerprint": "f5b173ab33b4810d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-19dc13aebbe4388e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/services/courier/sameday.ts:92"}, "properties": {"repobilityId": "60bf2d75ff7d470f", "scanner": "scanner-primary", "fingerprint": "19dc13aebbe4388e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ec36e50b6a6e98fc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 src/lib/documents/auto-generate.ts:380"}, "properties": {"repobilityId": "00a2192b1d5977d1", "scanner": "scanner-primary", "fingerprint": "ec36e50b6a6e98fc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7d6499354520c75b", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/test-delivery-integration.mjs:23"}, "properties": {"repobilityId": "2f953c23667ca8e7", "scanner": "scanner-primary", "fingerprint": "7d6499354520c75b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/test-delivery-integration.mjs"}, "region": {"startLine": 23}}}]}, {"ruleId": "scanner-ee17a54859493044", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/test-delivery-calculator.mjs:20"}, "properties": {"repobilityId": "42f1a67ee9a68a09", "scanner": "scanner-primary", "fingerprint": "ee17a54859493044", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/test-delivery-calculator.mjs"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-6547bfeb0c503b50", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/test-cetatean-strain.mjs:19"}, "properties": {"repobilityId": "4991be0491ceab48", "scanner": "scanner-primary", "fingerprint": "6547bfeb0c503b50", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/test-cetatean-strain.mjs"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-90fcb44d9b461505", "level": "error", "message": {"text": "Possible secret in .claude/settings.local.json"}, "properties": {"repobilityId": "a28352c741a276f8", "scanner": "scanner-primary", "fingerprint": "90fcb44d9b461505", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/settings.local.json"}, "region": {"startLine": 104}}}]}, {"ruleId": "scanner-90fcb44d9b461505", "level": "error", "message": {"text": "Possible secret in .claude/settings.local.json"}, "properties": {"repobilityId": "31609f8f1b78960c", "scanner": "scanner-primary", "fingerprint": "90fcb44d9b461505", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/settings.local.json"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-90fcb44d9b461505", "level": "error", "message": {"text": "Possible secret in .claude/settings.local.json"}, "properties": {"repobilityId": "31609f8f1b78960c", "scanner": "scanner-primary", "fingerprint": "90fcb44d9b461505", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/settings.local.json"}, "region": {"startLine": 51}}}]}, {"ruleId": "scanner-6257b8bfd88cba9a", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/components/orders/modules/signature/ContractPreview.tsx:163"}, "properties": {"repobilityId": "665a04a4155510b4", "scanner": "scanner-primary", "fingerprint": "6257b8bfd88cba9a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/components/orders/modules/signature/ContractPreview.tsx"}, "region": {"startLine": 163}}}]}, {"ruleId": "scanner-b50f3f602c8365e5", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/page.tsx:104"}, "properties": {"repobilityId": "fcd85750efb69bfa", "scanner": "scanner-primary", "fingerprint": "b50f3f602c8365e5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/servicii/page.tsx"}, "region": {"startLine": 104}}}]}, {"ruleId": "scanner-f8efa59e3c507a86", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/cazier-auto-online/page.tsx:126"}, "properties": {"repobilityId": "e30f71d47aef8703", "scanner": "scanner-primary", "fingerprint": "f8efa59e3c507a86", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/servicii/cazier-auto-online/page.tsx"}, "region": {"startLine": 126}}}]}, {"ruleId": "scanner-af9aa482a3f5daec", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/eliberare-certificat-de-celibat/page.tsx:118"}, "properties": {"repobilityId": "1cfc892d57d4380d", "scanner": "scanner-primary", "fingerprint": "af9aa482a3f5daec", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/servicii/eliberare-certificat-de-celibat/page.tsx"}, "region": {"startLine": 118}}}]}, {"ruleId": "scanner-d49ac1e8c7ea16a7", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/extras-de-carte-funciara/page.tsx:125"}, "properties": {"repobilityId": "c89f18cfa139e92b", "scanner": "scanner-primary", "fingerprint": "d49ac1e8c7ea16a7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/servicii/extras-de-carte-funciara/page.tsx"}, "region": {"startLine": 125}}}]}, {"ruleId": "scanner-f7d8725040805ca4", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/eliberare-certificat-de-casatorie/page.tsx:118"}, "properties": {"repobilityId": "71a958e31ceb7a83", "scanner": "scanner-primary", "fingerprint": "f7d8725040805ca4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/servicii/eliberare-certificat-de-casatorie/page.tsx"}, "region": {"startLine": 118}}}]}, {"ruleId": "scanner-31175e9525dacfa1", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/eliberare-certificat-de-nastere/page.tsx:118"}, "properties": {"repobilityId": "c007a08af04ead3a", "scanner": "scanner-primary", "fingerprint": "31175e9525dacfa1", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/servicii/eliberare-certificat-de-nastere/page.tsx"}, "region": {"startLine": 118}}}]}, {"ruleId": "scanner-0efbe07857cf413c", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/certificat-de-integritate-comportamentala/page.tsx:139"}, "properties": {"repobilityId": "6a2aa1b0244434e1", "scanner": "scanner-primary", "fingerprint": "0efbe07857cf413c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/servicii/certificat-de-integritate-comportamentala/page.tsx"}, "region": {"startLine": 139}}}]}, {"ruleId": "scanner-5ece9e9f9428b49e", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/cazier-judiciar-online/page.tsx:307"}, "properties": {"repobilityId": "b64d031567dd8612", "scanner": "scanner-primary", "fingerprint": "5ece9e9f9428b49e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/servicii/cazier-judiciar-online/page.tsx"}, "region": {"startLine": 307}}}]}, {"ruleId": "scanner-28d0ed0e1cfa370d", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/cazier-judiciar-online/persoana-juridica/page.tsx:162"}, "properties": {"repobilityId": "9d420d15a63204f5", "scanner": "scanner-primary", "fingerprint": "28d0ed0e1cfa370d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/servicii/cazier-judiciar-online/persoana-juridica/page.tsx"}, "region": {"startLine": 162}}}]}, {"ruleId": "scanner-549f0673275eb574", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/cazier-judiciar-online/persoana-fizica/page.tsx:153"}, "properties": {"repobilityId": "a04134831c4764d1", "scanner": "scanner-primary", "fingerprint": "549f0673275eb574", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/servicii/cazier-judiciar-online/persoana-fizica/page.tsx"}, "region": {"startLine": 153}}}]}, {"ruleId": "scanner-72783e87f1440bfb", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/certificat-constatator-online/page.tsx:127"}, "properties": {"repobilityId": "baf1e295091fca32", "scanner": "scanner-primary", "fingerprint": "72783e87f1440bfb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/servicii/certificat-constatator-online/page.tsx"}, "region": {"startLine": 127}}}]}, {"ruleId": "scanner-e9bba47c77569e9f", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/cazier-fiscal-online/page.tsx:120"}, "properties": {"repobilityId": "d25e0276d87af49b", "scanner": "scanner-primary", "fingerprint": "e9bba47c77569e9f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/servicii/cazier-fiscal-online/page.tsx"}, "region": {"startLine": 120}}}]}, {"ruleId": "scanner-47c13a06262aab29", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/servicii/[slug]/page.tsx:272"}, "properties": {"repobilityId": "87e8f3b16cee2f87", "scanner": "scanner-primary", "fingerprint": "47c13a06262aab29", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/servicii/[slug]/page.tsx"}, "region": {"startLine": 272}}}]}, {"ruleId": "scanner-3146d6331f9fd480", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in src/app/tools/verificare-rovinieta-online/page.tsx:66"}, "properties": {"repobilityId": "55343fcdfbcd8222", "scanner": "scanner-primary", "fingerprint": "3146d6331f9fd480", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/app/tools/verificare-rovinieta-online/page.tsx"}, "region": {"startLine": 66}}}]}, {"ruleId": "scanner-2e8c52e1abc0c21d", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in src/lib/documents/docx-to-pdf.ts:18"}, "properties": {"repobilityId": "6f9627dd255a9c26", "scanner": "scanner-primary", "fingerprint": "2e8c52e1abc0c21d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "src/lib/documents/docx-to-pdf.ts"}, "region": {"startLine": 18}}}]}, {"ruleId": "scanner-7efbda965f283c17", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "3bc3b4fe4a919063", "scanner": "scanner-primary", "fingerprint": "7efbda965f283c17", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/test.yml"}, "region": {"startLine": 28}}}]}, {"ruleId": "scanner-7efbda965f283c17", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "31abe471e20f8800", "scanner": "scanner-primary", "fingerprint": "7efbda965f283c17", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/test.yml"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-7efbda965f283c17", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "8f70c54785315f8c", "scanner": "scanner-primary", "fingerprint": "7efbda965f283c17", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/test.yml"}, "region": {"startLine": 57}}}]}, {"ruleId": "scanner-7efbda965f283c17", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "3bc3b4fe4a919063", "scanner": "scanner-primary", "fingerprint": "7efbda965f283c17", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/test.yml"}, "region": {"startLine": 72}}}]}, {"ruleId": "scanner-7efbda965f283c17", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "31abe471e20f8800", "scanner": "scanner-primary", "fingerprint": "7efbda965f283c17", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/test.yml"}, "region": {"startLine": 75}}}]}, {"ruleId": "scanner-46cfa21613e21b11", "level": "note", "message": {"text": "Very large file: src/components/orders/steps-modular/delivery-step.tsx (1998 lines)"}, "properties": {"repobilityId": "cc1d6ac9f03403d8", "scanner": "scanner-primary", "fingerprint": "46cfa21613e21b11", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-494aec92d1949077", "level": "note", "message": {"text": "Very large file: src/components/orders/modules/personal-kyc/PersonalDataStep.tsx (2069 lines)"}, "properties": {"repobilityId": "db8e5a18ed1d6146", "scanner": "scanner-primary", "fingerprint": "494aec92d1949077", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-33c073286dfe62e8", "level": "note", "message": {"text": "Very large file: src/providers/modular-wizard-provider.tsx (1822 lines)"}, "properties": {"repobilityId": "92528614ad13835c", "scanner": "scanner-primary", "fingerprint": "33c073286dfe62e8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5fd37acfe12b3474", "level": "note", "message": {"text": "Very large file: src/app/servicii/cazier-judiciar-online/page.tsx (1317 lines)"}, "properties": {"repobilityId": "f2fbfe422924615a", "scanner": "scanner-primary", "fingerprint": "5fd37acfe12b3474", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5f6c142cba3be90d", "level": "note", "message": {"text": "Very large file: src/app/admin/settings/page.tsx (2720 lines)"}, "properties": {"repobilityId": "c7252deb7b7ff1e5", "scanner": "scanner-primary", "fingerprint": "5f6c142cba3be90d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-615becce9de97023", "level": "note", "message": {"text": "Very large file: src/app/admin/users/page.tsx (1607 lines)"}, "properties": {"repobilityId": "3c038f10bce36e60", "scanner": "scanner-primary", "fingerprint": "615becce9de97023", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e7d408a13284bada", "level": "note", "message": {"text": "Very large file: src/app/admin/orders/[id]/page.tsx (3134 lines)"}, "properties": {"repobilityId": "a13dd9928fc18409", "scanner": "scanner-primary", "fingerprint": "e7d408a13284bada", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-98684d1aaaec8f18", "level": "note", "message": {"text": "Very large file: src/lib/services/document-ocr.ts (1373 lines)"}, "properties": {"repobilityId": "cdd14457bc4cbebb", "scanner": "scanner-primary", "fingerprint": "98684d1aaaec8f18", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-141b30a41e03817b", "level": "note", "message": {"text": "No license file detected"}, "properties": {"repobilityId": "817a1f9b2651d4c5", "scanner": "scanner-primary", "fingerprint": "141b30a41e03817b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["license", "repo-hardening", "generated-repo-pattern"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "be2a6445ced89577", "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": "0863bb4ff3618e6e", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-9d79c4077342a7d0", "level": "warning", "message": {"text": "Runtime service client appears to use placeholder configuration"}, "properties": {"repobilityId": "4a893a18b2d7dbf2", "scanner": "scanner-primary", "fingerprint": "9d79c4077342a7d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "runtime-config", "service-client", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "beded5b0784d4874", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-749d4bc1bd66df5f", "level": "warning", "message": {"text": "Agent instructions exist but release-hardening basics are missing"}, "properties": {"repobilityId": "041a8b0ee97c234e", "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": "9cfb813ed74db2d3", "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": "ba2846198397bc64", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-17d866d91a7c451e", "level": "error", "message": {"text": "Agent instruction/config may expose a secret: CLAUDE.md"}, "properties": {"repobilityId": "ccce5984e58a48f0", "scanner": "scanner-primary", "fingerprint": "17d866d91a7c451e", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["agent-instructions", "secrets", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "CLAUDE.md"}, "region": {"startLine": 168}}}]}, {"ruleId": "scanner-62d348e5634ecbfa", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/api-designer.md"}, "properties": {"repobilityId": "2bbe9818e55c41d5", "scanner": "scanner-primary", "fingerprint": "62d348e5634ecbfa", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/api-designer.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d6a57e14d5e66285", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/design-system-builder.md"}, "properties": {"repobilityId": "7e3398841defbe41", "scanner": "scanner-primary", "fingerprint": "d6a57e14d5e66285", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/design-system-builder.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-23bc11d130ccb89e", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/seo-optimizer.md"}, "properties": {"repobilityId": "ac05455dc504b7a8", "scanner": "scanner-primary", "fingerprint": "23bc11d130ccb89e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/seo-optimizer.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1fc01625099d6536", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/typography-expert.md"}, "properties": {"repobilityId": "7381173009e0212d", "scanner": "scanner-primary", "fingerprint": "1fc01625099d6536", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/typography-expert.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-962425dd51f15665", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/brand-designer.md"}, "properties": {"repobilityId": "26948b9f5dc0918a", "scanner": "scanner-primary", "fingerprint": "962425dd51f15665", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/brand-designer.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-81a6c78a56c3c49b", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/system-designer.md"}, "properties": {"repobilityId": "652e6639e36f3051", "scanner": "scanner-primary", "fingerprint": "81a6c78a56c3c49b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/system-designer.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-65335e855df5307a", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/tech-stack-advisor.md"}, "properties": {"repobilityId": "e4432cd1a5edf082", "scanner": "scanner-primary", "fingerprint": "65335e855df5307a", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/tech-stack-advisor.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-19f18bdc1ea8040d", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/security-auditor.md"}, "properties": {"repobilityId": "41fc5f6dc929e898", "scanner": "scanner-primary", "fingerprint": "19f18bdc1ea8040d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/security-auditor.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a7c16440763ec993", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/trend-analyst.md"}, "properties": {"repobilityId": "ae2db36d703c78ad", "scanner": "scanner-primary", "fingerprint": "a7c16440763ec993", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/trend-analyst.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1cd03ee8035be109", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/ui-designer.md"}, "properties": {"repobilityId": "d713dff6c52f88a5", "scanner": "scanner-primary", "fingerprint": "1cd03ee8035be109", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/ui-designer.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5bc98193fb17b248", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/database-planner.md"}, "properties": {"repobilityId": "473500d98a6069f3", "scanner": "scanner-primary", "fingerprint": "5bc98193fb17b248", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/database-planner.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d9f49c5ae6d19b37", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/feature-spec-writer.md"}, "properties": {"repobilityId": "36b4571b00f9d115", "scanner": "scanner-primary", "fingerprint": "d9f49c5ae6d19b37", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/feature-spec-writer.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d419cfff4c079fd2", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/performance-optimizer.md"}, "properties": {"repobilityId": "6a9a24e72873591c", "scanner": "scanner-primary", "fingerprint": "d419cfff4c079fd2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/performance-optimizer.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3cc4d4c4c65eae29", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/icon-designer.md"}, "properties": {"repobilityId": "f70208fc83b82270", "scanner": "scanner-primary", "fingerprint": "3cc4d4c4c65eae29", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/icon-designer.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e97f9691ff4615fd", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: .claude/agents/project-manager.md"}, "properties": {"repobilityId": "26fd0d6f2c6b794a", "scanner": "scanner-primary", "fingerprint": "e97f9691ff4615fd", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".claude/agents/project-manager.md"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-746f9fd246b6ea17", "level": "none", "message": {"text": "Commented-code block (5 lines) in vitest.config.ts:4"}, "properties": {"repobilityId": "b034d4f09331cb6e", "scanner": "scanner-primary", "fingerprint": "746f9fd246b6ea17", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b0d3521763395bbc", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/integration/kyc-face-match.test.mjs:86"}, "properties": {"repobilityId": "4c457c19f48d19ab", "scanner": "scanner-primary", "fingerprint": "b0d3521763395bbc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0dff1cfb5a4b219e", "level": "none", "message": {"text": "Commented-code block (7 lines) in tests/unit/lib/delivery-calculator-options.test.ts:12"}, "properties": {"repobilityId": "a1c18131504ba8cf", "scanner": "scanner-primary", "fingerprint": "0dff1cfb5a4b219e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c12f9f11f469e8e", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/unit/lib/delivery-estimate-helper.test.ts:4"}, "properties": {"repobilityId": "97943d0c1dcb986c", "scanner": "scanner-primary", "fingerprint": "3c12f9f11f469e8e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fe2637752e170cdf", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/lib/coupons/recovery-code.test.ts:8"}, "properties": {"repobilityId": "dfaab91eeeee589e", "scanner": "scanner-primary", "fingerprint": "fe2637752e170cdf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cd6873c84d3ba72e", "level": "none", "message": {"text": "Commented-code block (6 lines) in tests/unit/lib/services/document-ocr-passport-mrz.test.ts:79"}, "properties": {"repobilityId": "685fb47d29b8866c", "scanner": "scanner-primary", "fingerprint": "cd6873c84d3ba72e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7fca37cf324cac71", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/lib/services/document-ocr-mrz-parser.test.ts:82"}, "properties": {"repobilityId": "1a6b932458ffce71", "scanner": "scanner-primary", "fingerprint": "7fca37cf324cac71", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-746a110c37865636", "level": "none", "message": {"text": "Commented-code block (8 lines) in tests/unit/lib/services/infocui.test.ts:45"}, "properties": {"repobilityId": "b5dbbc932e9f1442", "scanner": "scanner-primary", "fingerprint": "746a110c37865636", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e16f3c40add83e96", "level": "none", "message": {"text": "Commented-code block (5 lines) in tests/unit/lib/documents/contract-breakdown.test.ts:17"}, "properties": {"repobilityId": "60b6be2ec871fb3c", "scanner": "scanner-primary", "fingerprint": "e16f3c40add83e96", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-85f2e38193a585e6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/test-kyc-face-match.mjs:24"}, "properties": {"repobilityId": "61bf5586ff745585", "scanner": "scanner-primary", "fingerprint": "85f2e38193a585e6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ff11b6d0e35b7449", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/test-delivery-integration.mjs:62"}, "properties": {"repobilityId": "7034c9ac2570b884", "scanner": "scanner-primary", "fingerprint": "ff11b6d0e35b7449", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3f6d14b8073ac081", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/sync-constatator-pf-istoric.mjs:32"}, "properties": {"repobilityId": "967c353e2a563dc0", "scanner": "scanner-primary", "fingerprint": "3f6d14b8073ac081", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b86269f576311622", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/sync-constatator-purposes.mjs:38"}, "properties": {"repobilityId": "9bdc3a6938d6045e", "scanner": "scanner-primary", "fingerprint": "b86269f576311622", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ed22d7865deaa821", "level": "none", "message": {"text": "Commented-code block (10 lines) in scripts/test-delivery-calculator.mjs:149"}, "properties": {"repobilityId": "05fab8ea46e04b25", "scanner": "scanner-primary", "fingerprint": "ed22d7865deaa821", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-43aa069eda8e5c7b", "level": "none", "message": {"text": "Commented-code block (5 lines) in scripts/test-cetatean-strain.mjs:159"}, "properties": {"repobilityId": "bc56bc36f1622125", "scanner": "scanner-primary", "fingerprint": "43aa069eda8e5c7b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e9b9b2d8dc4d007d", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/types/verification-modules.ts:679"}, "properties": {"repobilityId": "b49df0d705c67ea9", "scanner": "scanner-primary", "fingerprint": "e9b9b2d8dc4d007d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-26e5f6bd53473a99", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/orders/price-sidebar-modular.tsx:60"}, "properties": {"repobilityId": "ab7ee8675afa3a75", "scanner": "scanner-primary", "fingerprint": "26e5f6bd53473a99", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3c5a303cfe8606d7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/orders/tracking-timeline.tsx:157"}, "properties": {"repobilityId": "0b944d82aff5a8a2", "scanner": "scanner-primary", "fingerprint": "3c5a303cfe8606d7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8dee2fa1dfa4848e", "level": "note", "message": {"text": "Legacy-named symbol `hasDeprecated` in src/components/orders/steps-modular/options-step.tsx:345"}, "properties": {"repobilityId": "75f2d65a1fc7db91", "scanner": "scanner-primary", "fingerprint": "8dee2fa1dfa4848e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-15e843ef7c14d474", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/orders/steps-modular/options-step.tsx:885"}, "properties": {"repobilityId": "9e2b962c2f7bb80c", "scanner": "scanner-primary", "fingerprint": "15e843ef7c14d474", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fe7b6c7975adecd8", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/orders/steps-modular/contact-step.tsx:510"}, "properties": {"repobilityId": "5e4e4ad164c313ff", "scanner": "scanner-primary", "fingerprint": "fe7b6c7975adecd8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e37f6ecf08538fc2", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/orders/steps-modular/delivery-step.tsx:67"}, "properties": {"repobilityId": "9e6f2f714e5cc155", "scanner": "scanner-primary", "fingerprint": "e37f6ecf08538fc2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3684c1039681c276", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/orders/steps-modular/delivery-step.tsx:380"}, "properties": {"repobilityId": "cd92560eb0a23801", "scanner": "scanner-primary", "fingerprint": "3684c1039681c276", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4a7d11f8decd3860", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/orders/steps-modular/review-step.tsx:85"}, "properties": {"repobilityId": "0cc69955ebbcfce3", "scanner": "scanner-primary", "fingerprint": "4a7d11f8decd3860", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ec0584ef483504fa", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/orders/steps-modular/review-step.tsx:55"}, "properties": {"repobilityId": "aa7aa95b085b6c0a", "scanner": "scanner-primary", "fingerprint": "ec0584ef483504fa", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f5c07f71246b68dc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/orders/steps/kyc-step.tsx:230"}, "properties": {"repobilityId": "a2dbd494edd27c73", "scanner": "scanner-primary", "fingerprint": "f5c07f71246b68dc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-499f578e04728349", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/orders/steps/personal-data-step.tsx:391"}, "properties": {"repobilityId": "37942996a2def233", "scanner": "scanner-primary", "fingerprint": "499f578e04728349", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b84a23bf1a1ba9bd", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/orders/modules/signature/SignatureStep.tsx:144"}, "properties": {"repobilityId": "94abddac7c3a6520", "scanner": "scanner-primary", "fingerprint": "b84a23bf1a1ba9bd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6121c6e014855905", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/orders/modules/signature/ContractPreview.tsx:80"}, "properties": {"repobilityId": "bdb3b63cfee85ef5", "scanner": "scanner-primary", "fingerprint": "6121c6e014855905", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-53bfe27009e5050b", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/components/orders/modules/personal-kyc/KYCDocumentsStep.tsx:277"}, "properties": {"repobilityId": "4677f41d66328071", "scanner": "scanner-primary", "fingerprint": "53bfe27009e5050b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c77257f16a7f2669", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/orders/modules/personal-kyc/PersonalDataStep.tsx:178"}, "properties": {"repobilityId": "1fa8d4e947b26461", "scanner": "scanner-primary", "fingerprint": "c77257f16a7f2669", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9ac0523f3b17fc1b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/shared/IdScanner.tsx:258"}, "properties": {"repobilityId": "a99e0e4084f24037", "scanner": "scanner-primary", "fingerprint": "9ac0523f3b17fc1b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-609d20ef04048896", "level": "none", "message": {"text": "Commented-code block (8 lines) in src/components/shared/header.tsx:46"}, "properties": {"repobilityId": "2e48567e6a2decaf", "scanner": "scanner-primary", "fingerprint": "609d20ef04048896", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7fc0ba6f839a12de", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/components/admin/modify-order-dialog.tsx:235"}, "properties": {"repobilityId": "e9449caebcb2ef21", "scanner": "scanner-primary", "fingerprint": "7fc0ba6f839a12de", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4fb63ee346f74437", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/components/account/ProfileTab.tsx:227"}, "properties": {"repobilityId": "76532d5a965d27aa", "scanner": "scanner-primary", "fingerprint": "4fb63ee346f74437", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-605fc204f9d4cfe3", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/providers/modular-wizard-provider.tsx:332"}, "properties": {"repobilityId": "26b20c350eac1c22", "scanner": "scanner-primary", "fingerprint": "605fc204f9d4cfe3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7878bd0301e9a152", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/providers/modular-wizard-provider.tsx:976"}, "properties": {"repobilityId": "03245fbba430bd84", "scanner": "scanner-primary", "fingerprint": "7878bd0301e9a152", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-41c54df523f8953c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/providers/order-wizard-provider.tsx:486"}, "properties": {"repobilityId": "60dc37a2e3285fd5", "scanner": "scanner-primary", "fingerprint": "41c54df523f8953c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fe5d194e378971b8", "level": "none", "message": {"text": "Commented-code block (10 lines) in src/app/servicii/cazier-judiciar-online/page.tsx:1308"}, "properties": {"repobilityId": "93e2b4e68bf7bcf6", "scanner": "scanner-primary", "fingerprint": "fe5d194e378971b8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c022ab46c9e1366", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/comanda/success/[orderId]/page.tsx:152"}, "properties": {"repobilityId": "a8fd7e582edeeecb", "scanner": "scanner-primary", "fingerprint": "0c022ab46c9e1366", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9cd7d1ff0cc0fe5f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/comanda/success/[orderId]/page.tsx:140"}, "properties": {"repobilityId": "98be6872436c8ad6", "scanner": "scanner-primary", "fingerprint": "9cd7d1ff0cc0fe5f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fa006134ec979577", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/orders/draft/route.ts:611"}, "properties": {"repobilityId": "24aee656a18ac133", "scanner": "scanner-primary", "fingerprint": "fa006134ec979577", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1e2dd3a4082e4b73", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/orders/[id]/submit/route.ts:86"}, "properties": {"repobilityId": "4d0e0d6e2a2a880a", "scanner": "scanner-primary", "fingerprint": "1e2dd3a4082e4b73", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2980b5d58cab1419", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/app/api/orders/[id]/confirm-payment/route.ts:66"}, "properties": {"repobilityId": "e5aaa73c30c3506e", "scanner": "scanner-primary", "fingerprint": "2980b5d58cab1419", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d79e6576c279a7c2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/orders/[id]/documents/[docId]/preview/route.ts:63"}, "properties": {"repobilityId": "e83a4d24ee514198", "scanner": "scanner-primary", "fingerprint": "d79e6576c279a7c2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8314d404f0f722f6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/admin/orders/[id]/awb-label/route.ts:153"}, "properties": {"repobilityId": "2f3835077e80c975", "scanner": "scanner-primary", "fingerprint": "8314d404f0f722f6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-aa1d23b626925e0e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/api/admin/orders/[id]/preview-document/route.ts:123"}, "properties": {"repobilityId": "d1fe82617334df95", "scanner": "scanner-primary", "fingerprint": "aa1d23b626925e0e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-d768285cad12f58a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/admin/orders/[id]/available-options/route.ts:115"}, "properties": {"repobilityId": "72a047be746a8518", "scanner": "scanner-primary", "fingerprint": "d768285cad12f58a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7f91922382c17fb9", "level": "note", "message": {"text": "Legacy-named symbol `days_old` in src/app/api/admin/cleanup/route.ts:210"}, "properties": {"repobilityId": "f79de6bcf23d154a", "scanner": "scanner-primary", "fingerprint": "7f91922382c17fb9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-694a3e1a3575f2f2", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/onrc/result/route.ts:58"}, "properties": {"repobilityId": "8c4fca6562359e0e", "scanner": "scanner-primary", "fingerprint": "694a3e1a3575f2f2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-379724725f365fcf", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/cron/recovery-emails/route.ts:62"}, "properties": {"repobilityId": "00ea353622e001a5", "scanner": "scanner-primary", "fingerprint": "379724725f365fcf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fe078f6b15d9af5a", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/api/webhooks/stripe/route.ts:125"}, "properties": {"repobilityId": "b9f97f031250fe7d", "scanner": "scanner-primary", "fingerprint": "fe078f6b15d9af5a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c7ff0d64c5b3e05d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/admin/settings/page.tsx:562"}, "properties": {"repobilityId": "cfa32f80bde0502d", "scanner": "scanner-primary", "fingerprint": "c7ff0d64c5b3e05d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-e3cdd66dee535cdc", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/admin/users/page.tsx:1007"}, "properties": {"repobilityId": "54033bff8b4c6cc2", "scanner": "scanner-primary", "fingerprint": "e3cdd66dee535cdc", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ffaa3bfd0bd41d9f", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/app/admin/orders/[id]/page.tsx:1185"}, "properties": {"repobilityId": "dd109503c6de0116", "scanner": "scanner-primary", "fingerprint": "ffaa3bfd0bd41d9f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a69a6fe4ae56d0d5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/admin/coupons/page.tsx:143"}, "properties": {"repobilityId": "90464a999882429c", "scanner": "scanner-primary", "fingerprint": "a69a6fe4ae56d0d5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-17c57d8eed9ff838", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/app/admin/registru/page.tsx:232"}, "properties": {"repobilityId": "4fdaa3707ca1a87b", "scanner": "scanner-primary", "fingerprint": "17c57d8eed9ff838", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-c7cbd0c6ee7f37ed", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/delivery-estimate-helper.ts:169"}, "properties": {"repobilityId": "fd8d92d4f405570d", "scanner": "scanner-primary", "fingerprint": "c7cbd0c6ee7f37ed", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b8a6c0c170a72145", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/security/audit-logger.ts:112"}, "properties": {"repobilityId": "5ecf5f35366c5d01", "scanner": "scanner-primary", "fingerprint": "b8a6c0c170a72145", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-50e315c7c175888d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/email/resend.ts:60"}, "properties": {"repobilityId": "9527712b05c5ed34", "scanner": "scanner-primary", "fingerprint": "50e315c7c175888d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b5401994704d02a3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/aws/upload-client.ts:64"}, "properties": {"repobilityId": "ab51c54576394a75", "scanner": "scanner-primary", "fingerprint": "b5401994704d02a3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ebc84f7f216f8aba", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/courier/auto-finalize.ts:1"}, "properties": {"repobilityId": "3fb2720f07f041f9", "scanner": "scanner-primary", "fingerprint": "ebc84f7f216f8aba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de3b742ac31c8fd4", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/verification-modules/step-builder.ts:289"}, "properties": {"repobilityId": "f6009d97690c643e", "scanner": "scanner-primary", "fingerprint": "de3b742ac31c8fd4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e1fda411e81e4a5d", "level": "none", "message": {"text": "Commented-code block (7 lines) in src/lib/oblio/ensure-invoice.ts:64"}, "properties": {"repobilityId": "980ebab2523928f7", "scanner": "scanner-primary", "fingerprint": "e1fda411e81e4a5d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-63870487354923f2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/oblio/client.ts:63"}, "properties": {"repobilityId": "55ffc175e2fcb9fb", "scanner": "scanner-primary", "fingerprint": "63870487354923f2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b579296795f3c999", "level": "none", "message": {"text": "Commented-code block (12 lines) in src/lib/supabase/middleware.ts:72"}, "properties": {"repobilityId": "df45254fe929ffad", "scanner": "scanner-primary", "fingerprint": "b579296795f3c999", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d78d8a1870ad40da", "level": "none", "message": {"text": "Commented-code block (11 lines) in src/lib/services/document-ocr.ts:961"}, "properties": {"repobilityId": "8d0e7737be49edec", "scanner": "scanner-primary", "fingerprint": "d78d8a1870ad40da", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-278dceaf4c92b274", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/services/infocui.ts:35"}, "properties": {"repobilityId": "a5e82f8b6f9e4645", "scanner": "scanner-primary", "fingerprint": "278dceaf4c92b274", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-64f9197a7a7e1f0e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/services/courier/fancourier.ts:344"}, "properties": {"repobilityId": "1e0482c79d691db3", "scanner": "scanner-primary", "fingerprint": "64f9197a7a7e1f0e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-3d50f47255728533", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/services/courier/sameday.ts:329"}, "properties": {"repobilityId": "80e84478a5f57a4c", "scanner": "scanner-primary", "fingerprint": "3d50f47255728533", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-5a57401b86963eee", "level": "none", "message": {"text": "Commented-code block (6 lines) in src/lib/documents/auto-generate.ts:102"}, "properties": {"repobilityId": "5f1cfb4586bfdbcd", "scanner": "scanner-primary", "fingerprint": "5a57401b86963eee", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f5efa063e054b87", "level": "none", "message": {"text": "Commented-code block (5 lines) in src/lib/documents/generator.ts:673"}, "properties": {"repobilityId": "6fd64ee77a063143", "scanner": "scanner-primary", "fingerprint": "0f5efa063e054b87", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f547036c54749881", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 src/lib/documents/docx-to-pdf.ts:38"}, "properties": {"repobilityId": "42707839f910a7f9", "scanner": "scanner-primary", "fingerprint": "f547036c54749881", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a260e355ea7d9f89", "level": "note", "message": {"text": "32 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "e735cee6f43259c2", "scanner": "scanner-primary", "fingerprint": "a260e355ea7d9f89", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}]}]}