{"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-b0787232c0bf65d0", "name": "Possibly dead Python function: fetch_lotteon_credential", "shortDescription": {"text": "Possibly dead Python function: fetch_lotteon_credential"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-87d1ad769e2b49b6", "name": "Possibly dead Python function: lotteon_auto_login", "shortDescription": {"text": "Possibly dead Python function: lotteon_auto_login"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e255385f8066066e", "name": "Possibly dead Python function: ensure_logged_in", "shortDescription": {"text": "Possibly dead Python function: ensure_logged_in"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a960a60f06d4d08a", "name": "Possibly dead Python function: extract_lotteon_pdp", "shortDescription": {"text": "Possibly dead Python function: extract_lotteon_pdp"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f317fcb2a3a77bf2", "name": "Possibly dead Python function: log_message", "shortDescription": {"text": "Possibly dead Python function: log_message"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-db5b95e135f5075c", "name": "Possibly dead Python function: do_OPTIONS", "shortDescription": {"text": "Possibly dead Python function: do_OPTIONS"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3e735f41fc540173", "name": "Possibly dead Python function: do_GET", "shortDescription": {"text": "Possibly dead Python function: do_GET"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d70cd83aa31ffb6b", "name": "Possibly dead Python function: forward", "shortDescription": {"text": "Possibly dead Python function: forward"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1b111cf359ee5522", "name": "Possibly dead Python function: remove_watermark", "shortDescription": {"text": "Possibly dead Python function: remove_watermark"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-67030537f1f13b40", "name": "Possibly dead Python function: do_run_migrations", "shortDescription": {"text": "Possibly dead Python function: do_run_migrations"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d35f6cf55c5e1d97", "name": "Possibly dead Python function: upgrade", "shortDescription": {"text": "Possibly dead Python function: upgrade"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a126bd2b7a71b639", "name": "Possibly dead Python function: downgrade", "shortDescription": {"text": "Possibly dead Python function: downgrade"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c838b63c56a16382", "name": "Possibly dead Python function: upgrade", "shortDescription": {"text": "Possibly dead Python function: upgrade"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7705da39e0c51e3e", "name": "Possibly dead Python function: downgrade", "shortDescription": {"text": "Possibly dead Python function: downgrade"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bdd47d72edcf25c1", "name": "Possibly dead Python function: upgrade", "shortDescription": {"text": "Possibly dead Python function: upgrade"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d80a643c5277c1f6", "name": "Possibly dead Python function: downgrade", "shortDescription": {"text": "Possibly dead Python function: downgrade"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-02762ba3f34ca17d", "name": "Possibly dead Python function: upgrade", "shortDescription": {"text": "Possibly dead Python function: upgrade"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c198721f19184fc9", "name": "Possibly dead Python function: downgrade", "shortDescription": {"text": "Possibly dead Python function: downgrade"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-797eda5d3a8a22ca", "name": "Possibly dead Python function: upgrade", "shortDescription": {"text": "Possibly dead Python function: upgrade"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-97b2186298e92014", "name": "Possibly dead Python function: downgrade", "shortDescription": {"text": "Possibly dead Python function: downgrade"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8060ae98957fc800", "name": "Possibly dead Python function: upgrade", "shortDescription": {"text": "Possibly dead Python function: upgrade"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1b00d77e9f27bceb", "name": "Possibly dead Python function: downgrade", "shortDescription": {"text": "Possibly dead Python function: downgrade"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1fa08b796f84e19f", "name": "Possibly dead Python function: upgrade", "shortDescription": {"text": "Possibly dead Python function: upgrade"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-46b05b67d620c7e0", "name": "Possibly dead Python function: downgrade", "shortDescription": {"text": "Possibly dead Python function: downgrade"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-178b7fa437d3a6a1", "name": "Possibly dead Python function: upgrade", "shortDescription": {"text": "Possibly dead Python function: upgrade"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1253a424a95ef0ba", "name": "Possibly dead Python function: downgrade", "shortDescription": {"text": "Possibly dead Python function: downgrade"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ce9895d7006c4b5c", "name": "Possibly dead Python function: upgrade", "shortDescription": {"text": "Possibly dead Python function: upgrade"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-85066e7a1bb7c530", "name": "Possibly dead Python function: downgrade", "shortDescription": {"text": "Possibly dead Python function: downgrade"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ca9512b8d482472a", "name": "Possibly dead Python function: upgrade", "shortDescription": {"text": "Possibly dead Python function: upgrade"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4944aa4476e30566", "name": "Possibly dead Python function: downgrade", "shortDescription": {"text": "Possibly dead Python function: downgrade"}, "fullDescription": {"text": "No callers detected by AST scan in this repo. Could be exported for external callers or a framework handler."}, "properties": {"scanner": "scanner-primary", "layer": "software", "severity": "low", "confidence": 1.0}}, {"id": "scanner-69593712da2b023f", "name": "Icon-only button without accessible name \u2014 frontend/src/app/samba/orders/components/UrlInputModal.tsx:25", "shortDescription": {"text": "Icon-only button without accessible name \u2014 frontend/src/app/samba/orders/components/UrlInputModal.tsx:25"}, "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-e1699fbd95910007", "name": "Icon-only button without accessible name \u2014 frontend/src/app/samba/orders/components/AlarmSettingModal.tsx:58", "shortDescription": {"text": "Icon-only button without accessible name \u2014 frontend/src/app/samba/orders/components/AlarmSettingModal.tsx:58"}, "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-8face3ee809f52f0", "name": "Icon-only button without accessible name \u2014 frontend/src/app/samba/orders/components/TrackingModal.tsx:99", "shortDescription": {"text": "Icon-only button without accessible name \u2014 frontend/src/app/samba/orders/components/TrackingModal.tsx:99"}, "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-2213bff8bfcc5ebc", "name": "Icon-only button without accessible name \u2014 frontend/src/app/samba/orders/components/OrderEditModal.tsx:38", "shortDescription": {"text": "Icon-only button without accessible name \u2014 frontend/src/app/samba/orders/components/OrderEditModal.tsx:38"}, "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-6d5378c4f2304343", "name": "Icon-only button without accessible name \u2014 frontend/src/app/samba/orders/components/PriceHistoryModal.tsx:47", "shortDescription": {"text": "Icon-only button without accessible name \u2014 frontend/src/app/samba/orders/components/PriceHistoryModal.tsx:47"}, "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-c5d5ef41e8250e70", "name": "Icon-only button without accessible name \u2014 frontend/src/app/samba/manual-products/components/ImageManagerModal.tsx:83", "shortDescription": {"text": "Icon-only button without accessible name \u2014 frontend/src/app/samba/manual-products/components/ImageManagerModal.tsx:83"}, "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-03999ad36010be89", "name": "Icon-only button without accessible name \u2014 frontend/src/app/samba/collector/components/DuplicatesModal.tsx:222", "shortDescription": {"text": "Icon-only button without accessible name \u2014 frontend/src/app/samba/collector/components/DuplicatesModal.tsx:222"}, "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-8a0253d48eaa7791", "name": "Icon-only button without accessible name \u2014 frontend/src/app/samba/collector/components/AiSourcingModal.tsx:69", "shortDescription": {"text": "Icon-only button without accessible name \u2014 frontend/src/app/samba/collector/components/AiSourcingModal.tsx:69"}, "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-1543f0a5b3a06c7f", "name": "Icon-only button without accessible name \u2014 frontend/src/app/samba/returns/components/ReturnDetailModal.tsx:22", "shortDescription": {"text": "Icon-only button without accessible name \u2014 frontend/src/app/samba/returns/components/ReturnDetailModal.tsx:22"}, "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-ebb77f10d94a47fc", "name": "Stray `console.log` in TS/JS \u2014 extension/background.js:37", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension/background.js:37"}, "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-20421cfc555bdf6f", "name": "Stray `console.log` in TS/JS \u2014 extension/background-messages.js:51", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension/background-messages.js:51"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7f3976403f552e1b", "name": "Stray `console.log` in TS/JS \u2014 extension/background-autologin.js:96", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension/background-autologin.js: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-43a9a2dcf0388f72", "name": "Stray `console.log` in TS/JS \u2014 extension/content-review-musinsa.js:166", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension/content-review-musinsa.js:166"}, "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-081fcb5da6da6078", "name": "Stray `console.log` in TS/JS \u2014 extension/content-review-gs.js:155", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension/content-review-gs.js:155"}, "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-d6c252aea83b5c74", "name": "Stray `console.log` in TS/JS \u2014 extension/content-review-kream.js:206", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension/content-review-kream.js: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-69f12a249c814076", "name": "Stray `console.log` in TS/JS \u2014 extension/content-musinsa-claimlist.js:69", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension/content-musinsa-claimlist.js:69"}, "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-c2d3695714a1e67d", "name": "Stray `console.log` in TS/JS \u2014 extension/content-ssg-dialog-suppress.js:10", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension/content-ssg-dialog-suppress.js:10"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-05a0c32455a941ea", "name": "Stray `console.log` in TS/JS \u2014 extension/content-reward-musinsa-snap.js:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension/content-reward-musinsa-snap.js:23"}, "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-c1faf03b265c058b", "name": "Stray `console.log` in TS/JS \u2014 extension/content-review-abcmart.js:252", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension/content-review-abcmart.js:252"}, "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-02bda329e316c647", "name": "Stray `console.log` in TS/JS \u2014 extension/content-review-ssg.js:168", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension/content-review-ssg.js:168"}, "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-c47ab45445c47a76", "name": "Stray `console.log` in TS/JS \u2014 extension/background-sourcing.js:10", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension/background-sourcing.js:10"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d515034da5050177", "name": "Stray `console.log` in TS/JS \u2014 extension/background-bootstrap.js:7", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension/background-bootstrap.js:7"}, "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-d825ca7316f1d4c4", "name": "Stray `console.log` in TS/JS \u2014 extension/content-musinsa-orderlist.js:55", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension/content-musinsa-orderlist.js:55"}, "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-b14eaeba03a3a8b0", "name": "Stray `console.log` in TS/JS \u2014 extension/kream-collect.js:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension/kream-collect.js:21"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-baa9155a8e580554", "name": "Stray `console.log` in TS/JS \u2014 extension/create-icons.js:30", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension/create-icons.js:30"}, "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-b04a5d06426a5aa0", "name": "Stray `console.log` in TS/JS \u2014 extension/content-reward-abcmart-attend.js:19", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension/content-reward-abcmart-attend.js:19"}, "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-15f0e88964a391b6", "name": "Stray `console.log` in TS/JS \u2014 extension/content-review-lotteon.js:211", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension/content-review-lotteon.js:211"}, "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-a1d1069e8d5bf059", "name": "Stray `console.log` in TS/JS \u2014 extension/content-review-naver.js:168", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension/content-review-naver.js:168"}, "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-eaf35ca9a1dbdf07", "name": "Stray `console.log` in TS/JS \u2014 extension/background-kream.js:10", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension/background-kream.js:10"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c553568ded58d4ef", "name": "Stray `console.log` in TS/JS \u2014 extension/recipe-cache.js:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension/recipe-cache.js:23"}, "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-ba24c4b24c71466b", "name": "Stray `console.log` in TS/JS \u2014 extension/content-musinsa-balance.js:10", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension/content-musinsa-balance.js:10"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-dfc4b0a93a65fef8", "name": "Stray `console.log` in TS/JS \u2014 extension/content-reward-musinsa-attendance.js:22", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extension/content-reward-musinsa-attendance.js:22"}, "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-686984e3ddebd3ae", "name": "Docker base image is tag-pinned but not digest-pinned: python:3.12.3-slim", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.12.3-slim"}, "fullDescription": {"text": "Container tags can be retagged upstream. Pin production base images to a reviewed digest (`image@sha256:...`) when reproducibility and supply-chain integrity matter."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-aa5acaa49eb8315b", "name": "Containers defined but no K8s/orchestration manifest found", "shortDescription": {"text": "Containers defined but no K8s/orchestration manifest found"}, "fullDescription": {"text": "Repo has Dockerfiles/compose but no Kubernetes/Nomad manifests. If the target deployment is K8s, the manifests may live in a separate ops repo."}, "properties": {"scanner": "scanner-primary", "layer": "hardware", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a399389f5f17b106", "name": "Runtime dotenv file present in repo: frontend/.env.production", "shortDescription": {"text": "Runtime dotenv file present in repo: frontend/.env.production"}, "fullDescription": {"text": "`frontend/.env.production` looks like a runtime dotenv file. No high-confidence secret value was matched, but runtime dotenv files often drift into live credentials. Move real values to a secret manager and keep only `.env.example` style templates in source control."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c58f0b478d430506", "name": "Insecure pattern 'local_storage_auth_token' in frontend/src/app/samba/login/page.tsx:29", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in frontend/src/app/samba/login/page.tsx:29"}, "fullDescription": {"text": "Found a known-risky pattern (local_storage_auth_token). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-82f9ee370d767cc7", "name": "Insecure pattern 'direct_innerhtml_assignment' in extension/background-sourcing.js:3831", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in extension/background-sourcing.js:3831"}, "fullDescription": {"text": "Found a known-risky pattern (direct_innerhtml_assignment). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ebd4a495968b7d03", "name": "Insecure pattern 'eval_used' in extension/recipe-executor.js:112", "shortDescription": {"text": "Insecure pattern 'eval_used' in extension/recipe-executor.js:112"}, "fullDescription": {"text": "Found a known-risky pattern (eval_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-67eedaff4545d81b", "name": "Insecure pattern 'cors_wildcard' in tools/lotteon_daemon/daemon.py:2558", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in tools/lotteon_daemon/daemon.py:2558"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0a2b216c6e9d633d", "name": "Possible secret in backend/scripts/check_missing_tables.py", "shortDescription": {"text": "Possible secret in backend/scripts/check_missing_tables.py"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-5b31b21129fdd4a6", "name": "Possible secret in backend/scripts/fill_missing_category_mappings.py", "shortDescription": {"text": "Possible secret in backend/scripts/fill_missing_category_mappings.py"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-bf85d9431572e63c", "name": "Possible secret in backend/scripts/create_samba_jobs.py", "shortDescription": {"text": "Possible secret in backend/scripts/create_samba_jobs.py"}, "fullDescription": {"text": "Detected pattern matching password_literal. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-a13c997d886c14ee", "name": "Insecure pattern 'cors_wildcard' in backend/backend/api/v1/routers/samba/proxy/config.py:217", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in backend/backend/api/v1/routers/samba/proxy/config.py:217"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e52e117896ce98c0", "name": "Insecure pattern 'cors_wildcard' in backend/backend/api/v1/routers/samba/proxy/kream.py:294", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in backend/backend/api/v1/routers/samba/proxy/kream.py:294"}, "fullDescription": {"text": "Found a known-risky pattern (cors_wildcard). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-72b0b6092668566e", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "google-github-actions/auth@v2 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-97b9d30ff8fc41a5", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "astral-sh/setup-uv@v3 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fe22acd41e38e015", "name": "Very large file: frontend/src/app/samba/settings/config.ts (859 lines)", "shortDescription": {"text": "Very large file: frontend/src/app/samba/settings/config.ts (859 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-71bba60d38c3ddba", "name": "Very large file: frontend/src/app/samba/orders/page.tsx (1258 lines)", "shortDescription": {"text": "Very large file: frontend/src/app/samba/orders/page.tsx (1258 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-c8ea2f01745ce60b", "name": "Very large file: frontend/src/app/samba/warroom/page.tsx (1418 lines)", "shortDescription": {"text": "Very large file: frontend/src/app/samba/warroom/page.tsx (1418 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-8eb9ea381da7f8a3", "name": "Very large file: frontend/src/app/samba/cs/page.tsx (1172 lines)", "shortDescription": {"text": "Very large file: frontend/src/app/samba/cs/page.tsx (1172 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-c983757472508f91", "name": "Very large file: frontend/src/app/samba/returns/page.tsx (1030 lines)", "shortDescription": {"text": "Very large file: frontend/src/app/samba/returns/page.tsx (1030 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-fb31458232da1301", "name": "Very large file: frontend/src/app/samba/categories/page.tsx (2117 lines)", "shortDescription": {"text": "Very large file: frontend/src/app/samba/categories/page.tsx (2117 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-9221eb8ec3680fc1", "name": "Very large file: frontend/src/app/samba/policies/page.tsx (2511 lines)", "shortDescription": {"text": "Very large file: frontend/src/app/samba/policies/page.tsx (2511 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-3efccfe70c9b1d78", "name": "Very large file: frontend/src/app/samba/products/page.tsx (3083 lines)", "shortDescription": {"text": "Very large file: frontend/src/app/samba/products/page.tsx (3083 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-5390d2cadf682b01", "name": "Very large file: frontend/src/app/samba/products/components/ProductCard.tsx (2305 lines)", "shortDescription": {"text": "Very large file: frontend/src/app/samba/products/components/ProductCard.tsx (2305 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-bdf9842979c717fc", "name": "Very large file: frontend/src/app/samba/shipments/page.tsx (1790 lines)", "shortDescription": {"text": "Very large file: frontend/src/app/samba/shipments/page.tsx (1790 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-b18865b9a14cfe6f", "name": "Very large file: frontend/src/lib/samba/legacy.ts (2826 lines)", "shortDescription": {"text": "Very large file: frontend/src/lib/samba/legacy.ts (2826 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-fb6e7295bfc9c667", "name": "Very large file: extension/background-autologin.js (1481 lines)", "shortDescription": {"text": "Very large file: extension/background-autologin.js (1481 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-2df7e52134b08e88", "name": "Very large file: extension/background-sourcing.js (4327 lines)", "shortDescription": {"text": "Very large file: extension/background-sourcing.js (4327 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-4143de6b823283fb", "name": "Very large file: tools/lotteon_daemon/daemon.py (3696 lines)", "shortDescription": {"text": "Very large file: tools/lotteon_daemon/daemon.py (3696 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-e72682b274e84600", "name": "Very large file: backend/backend/lifecycle.py (1585 lines)", "shortDescription": {"text": "Very large file: backend/backend/lifecycle.py (1585 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-d9dae8479a1e4fab", "name": "Very large file: backend/backend/api/v1/routers/samba/shipment.py (2241 lines)", "shortDescription": {"text": "Very large file: backend/backend/api/v1/routers/samba/shipment.py (2241 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-c030c3cb67a3347c", "name": "Very large file: backend/backend/api/v1/routers/samba/collector_autotune.py (5277 lines)", "shortDescription": {"text": "Very large file: backend/backend/api/v1/routers/samba/collector_autotune.py (5277 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-96ad726bc4f53db3", "name": "Very large file: backend/backend/api/v1/routers/samba/collector.py (2457 lines)", "shortDescription": {"text": "Very large file: backend/backend/api/v1/routers/samba/collector.py (2457 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-fc64a02ca788451f", "name": "Very large file: backend/backend/api/v1/routers/samba/sourcing_account.py (1606 lines)", "shortDescription": {"text": "Very large file: backend/backend/api/v1/routers/samba/sourcing_account.py (1606 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-c204a49a6be9b8e6", "name": "Very large file: backend/backend/api/v1/routers/samba/returns.py (2800 lines)", "shortDescription": {"text": "Very large file: backend/backend/api/v1/routers/samba/returns.py (2800 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-bf33a0f4f827ab85", "name": "Very large file: backend/backend/api/v1/routers/samba/cs_inquiry.py (3666 lines)", "shortDescription": {"text": "Very large file: backend/backend/api/v1/routers/samba/cs_inquiry.py (3666 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-dba1c063a782f6ba", "name": "Very large file: backend/backend/api/v1/routers/samba/order.py (10576 lines)", "shortDescription": {"text": "Very large file: backend/backend/api/v1/routers/samba/order.py (10576 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-0e1bf719bc238908", "name": "Very large file: backend/backend/api/v1/routers/samba/collector_refresh.py (1180 lines)", "shortDescription": {"text": "Very large file: backend/backend/api/v1/routers/samba/collector_refresh.py (1180 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-13c7fa2c7ee8b2f5", "name": "Very large file: backend/backend/api/v1/routers/samba/collector_collection/collect.py (1657 lines)", "shortDescription": {"text": "Very large file: backend/backend/api/v1/routers/samba/collector_collection/collect.py (1657 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-95dc99b0045d44a3", "name": "Very large file: backend/backend/api/v1/routers/samba/proxy/ai_tags.py (1668 lines)", "shortDescription": {"text": "Very large file: backend/backend/api/v1/routers/samba/proxy/ai_tags.py (1668 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-48d6078e72e6b6e4", "name": "Very large file: backend/backend/domain/samba/shipment/service.py (3554 lines)", "shortDescription": {"text": "Very large file: backend/backend/domain/samba/shipment/service.py (3554 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-5a67ba72c97532e6", "name": "Very large file: backend/backend/domain/samba/tracking_sync/service.py (1476 lines)", "shortDescription": {"text": "Very large file: backend/backend/domain/samba/tracking_sync/service.py (1476 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-c2a84243e1aa89ea", "name": "Very large file: backend/backend/domain/samba/image/service.py (2134 lines)", "shortDescription": {"text": "Very large file: backend/backend/domain/samba/image/service.py (2134 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-99d68c3faf28361a", "name": "Very large file: backend/backend/domain/samba/ai_sourcing/service.py (1527 lines)", "shortDescription": {"text": "Very large file: backend/backend/domain/samba/ai_sourcing/service.py (1527 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-cd1f81e322710f3f", "name": "Very large file: backend/backend/domain/samba/proxy/esmplus.py (2617 lines)", "shortDescription": {"text": "Very large file: backend/backend/domain/samba/proxy/esmplus.py (2617 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-7d64703d5b9e5d5f", "name": "Very large file: backend/backend/domain/samba/proxy/smartstore.py (2709 lines)", "shortDescription": {"text": "Very large file: backend/backend/domain/samba/proxy/smartstore.py (2709 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-e34af5c54bcc22f9", "name": "Very large file: backend/backend/domain/samba/proxy/ebay.py (1719 lines)", "shortDescription": {"text": "Very large file: backend/backend/domain/samba/proxy/ebay.py (1719 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-26a29090158b7d3e", "name": "Very large file: backend/backend/domain/samba/proxy/cafe24.py (1860 lines)", "shortDescription": {"text": "Very large file: backend/backend/domain/samba/proxy/cafe24.py (1860 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-fecc8a67ecb58c8a", "name": "Very large file: backend/backend/domain/samba/proxy/elevenst.py (3314 lines)", "shortDescription": {"text": "Very large file: backend/backend/domain/samba/proxy/elevenst.py (3314 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-61c1b10ae8e9a5f3", "name": "Very large file: backend/backend/domain/samba/proxy/coupang.py (2090 lines)", "shortDescription": {"text": "Very large file: backend/backend/domain/samba/proxy/coupang.py (2090 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-2e54fd7dd9684582", "name": "Very large file: backend/backend/domain/samba/proxy/musinsa.py (2254 lines)", "shortDescription": {"text": "Very large file: backend/backend/domain/samba/proxy/musinsa.py (2254 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-dec2507785308c62", "name": "Very large file: backend/backend/domain/samba/proxy/notice_utils.py (1363 lines)", "shortDescription": {"text": "Very large file: backend/backend/domain/samba/proxy/notice_utils.py (1363 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-406972825e402835", "name": "Very large file: backend/backend/domain/samba/proxy/abcmart.py (2346 lines)", "shortDescription": {"text": "Very large file: backend/backend/domain/samba/proxy/abcmart.py (2346 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-5cb72452d1b892b5", "name": "Very large file: backend/backend/domain/samba/proxy/gsshop_sourcing.py (1324 lines)", "shortDescription": {"text": "Very large file: backend/backend/domain/samba/proxy/gsshop_sourcing.py (1324 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-6f1e83444e1fcab0", "name": "Very large file: backend/backend/domain/samba/proxy/lottehome.py (1390 lines)", "shortDescription": {"text": "Very large file: backend/backend/domain/samba/proxy/lottehome.py (1390 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-dfec387d6d90417b", "name": "Very large file: backend/backend/domain/samba/proxy/ssg_sourcing.py (3026 lines)", "shortDescription": {"text": "Very large file: backend/backend/domain/samba/proxy/ssg_sourcing.py (3026 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-d8d2ffb26940dce2", "name": "Very large file: backend/backend/domain/samba/proxy/ssg.py (2681 lines)", "shortDescription": {"text": "Very large file: backend/backend/domain/samba/proxy/ssg.py (2681 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-ef8c8ed24190afbe", "name": "Very large file: backend/backend/domain/samba/proxy/lotteon/api_client.py (2482 lines)", "shortDescription": {"text": "Very large file: backend/backend/domain/samba/proxy/lotteon/api_client.py (2482 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-8841beba13104ab2", "name": "Very large file: backend/backend/domain/samba/proxy/lotteon/detail_parsers.py (1398 lines)", "shortDescription": {"text": "Very large file: backend/backend/domain/samba/proxy/lotteon/detail_parsers.py (1398 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-63880027c06a6983", "name": "Very large file: backend/backend/domain/samba/tetris/service.py (1703 lines)", "shortDescription": {"text": "Very large file: backend/backend/domain/samba/tetris/service.py (1703 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-69cc4d2c18bd9dfe", "name": "Very large file: backend/backend/domain/samba/collector/refresher.py (1725 lines)", "shortDescription": {"text": "Very large file: backend/backend/domain/samba/collector/refresher.py (1725 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-9b3303a57a0dd840", "name": "Very large file: backend/backend/domain/samba/category/seed_service.py (1848 lines)", "shortDescription": {"text": "Very large file: backend/backend/domain/samba/category/seed_service.py (1848 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-e2d4a1bcb40c9371", "name": "Very large file: backend/backend/domain/samba/category/rules.py (1623 lines)", "shortDescription": {"text": "Very large file: backend/backend/domain/samba/category/rules.py (1623 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-8f79758fb8fda940", "name": "Very large file: backend/backend/domain/samba/plugins/markets/smartstore.py (1114 lines)", "shortDescription": {"text": "Very large file: backend/backend/domain/samba/plugins/markets/smartstore.py (1114 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-e8344896a2e9910c", "name": "Very large file: backend/backend/domain/samba/plugins/markets/cafe24.py (1564 lines)", "shortDescription": {"text": "Very large file: backend/backend/domain/samba/plugins/markets/cafe24.py (1564 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-60d455f4d3d83e7d", "name": "Very large file: backend/backend/domain/samba/plugins/markets/lotteon.py (3321 lines)", "shortDescription": {"text": "Very large file: backend/backend/domain/samba/plugins/markets/lotteon.py (3321 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-18b00ba24cd25e85", "name": "Very large file: backend/backend/domain/samba/job/worker.py (6208 lines)", "shortDescription": {"text": "Very large file: backend/backend/domain/samba/job/worker.py (6208 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6893a6c8b0861585", "name": "Very low test-to-source ratio", "shortDescription": {"text": "Very low test-to-source ratio"}, "fullDescription": {"text": "39 test file(s) for 788 source file(s) (ratio 0.05). Consider adding integration or unit tests for critical paths."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b3ed68815bca2f8c", "name": "Node manifest has dependencies but no lockfile: package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 730 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 615 placeholder/mock markers across 54 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing lockfile. Treat this as a contract gap: the agent is guided, but the generated output is not yet guarded by the controls that make it repeatable."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ea8f3013f588db25", "name": "Shallow git history limits provenance confidence", "shortDescription": {"text": "Shallow git history limits provenance confidence"}, "fullDescription": {"text": "The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8424db9c75e04ba4", "name": "Very short observed git history", "shortDescription": {"text": "Very short observed git history"}, "fullDescription": {"text": "The repo has multiple source files but two or fewer visible commits. This is not a failure by itself, but it lowers confidence in evolution-based diagnosis."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-823c1821408ea6c3", "name": "Agent authority lacks a verifier contract: frontend/.claude/settings.local.json", "shortDescription": {"text": "Agent authority lacks a verifier contract: frontend/.claude/settings.local.json"}, "fullDescription": {"text": "This agent instruction grants code or shell authority but does not state the verification gate that decides promotion. The recurring safe pattern is: LLM proposes; deterministic tests/build/security checks verify; only verified code promotes."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3e5b1f2b3a603582", "name": "Commented-code block (5 lines) in frontend/src/app/samba/settings/hooks/useStoreSettings.ts:399", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/app/samba/settings/hooks/useStoreSettings.ts:399"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1c85493aa191476f", "name": "Commented-code block (5 lines) in frontend/src/app/samba/orders/page.tsx:440", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/app/samba/orders/page.tsx:440"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-70f23cb378632d8f", "name": "Commented-code block (6 lines) in frontend/src/app/samba/orders/utils/copyHelpers.tsx:53", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/app/samba/orders/utils/copyHelpers.tsx:53"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fb37b8c886c3fd7d", "name": "Commented-code block (5 lines) in frontend/src/app/samba/orders/components/OrderInfoCell.tsx:87", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/app/samba/orders/components/OrderInfoCell.tsx:87"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-481f8f4db95e7a60", "name": "Commented-code block (6 lines) in frontend/src/app/samba/orders/hooks/useOrderLinks.ts:45", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/app/samba/orders/hooks/useOrderLinks.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-3db8430f08922296", "name": "Commented-code block (7 lines) in frontend/src/app/samba/warroom/page.tsx:299", "shortDescription": {"text": "Commented-code block (7 lines) in frontend/src/app/samba/warroom/page.tsx:299"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0ceec5f2045006f3", "name": "Commented-code block (6 lines) in frontend/src/app/samba/returns/page.tsx:294", "shortDescription": {"text": "Commented-code block (6 lines) in frontend/src/app/samba/returns/page.tsx:294"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-767f45189bfc4b1a", "name": "Commented-code block (5 lines) in frontend/src/app/samba/categories/constants.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/app/samba/categories/constants.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-681fb8936ab8f879", "name": "Commented-code block (5 lines) in frontend/src/app/samba/extension-link/page.tsx:15", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/app/samba/extension-link/page.tsx:15"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cc277682bf273822", "name": "Legacy-named symbol `onRemoveLegacy` in frontend/src/app/samba/policies/tetris/AccountBlock.tsx:250", "shortDescription": {"text": "Legacy-named symbol `onRemoveLegacy` in frontend/src/app/samba/policies/tetris/AccountBlock.tsx:250"}, "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-57d86693aa48a6ac", "name": "Legacy-named symbol `onRemoveLegacy` in frontend/src/app/samba/policies/tetris/BrandBlock.tsx:19", "shortDescription": {"text": "Legacy-named symbol `onRemoveLegacy` in frontend/src/app/samba/policies/tetris/BrandBlock.tsx:19"}, "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-fc7e5df2d1e9becd", "name": "Legacy-named symbol `is_legacy` in frontend/src/app/samba/policies/tetris/UnassignedPool.tsx:113", "shortDescription": {"text": "Legacy-named symbol `is_legacy` in frontend/src/app/samba/policies/tetris/UnassignedPool.tsx:113"}, "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-038d19500bc3191d", "name": "Legacy-named symbol `is_legacy` in frontend/src/app/samba/policies/tetris/useTetris.ts:93", "shortDescription": {"text": "Legacy-named symbol `is_legacy` in frontend/src/app/samba/policies/tetris/useTetris.ts:93"}, "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-3818de597c4819e1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/lib/api.ts:171", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/lib/api.ts:171"}, "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-8d77ab9e783e4b76", "name": "Legacy-named symbol `samba_active_accounts_v1` in frontend/src/lib/samba/legacy.ts:1099", "shortDescription": {"text": "Legacy-named symbol `samba_active_accounts_v1` in frontend/src/lib/samba/legacy.ts:1099"}, "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-57affe5b217f67aa", "name": "Commented-code block (5 lines) in frontend/src/lib/samba/legacy.ts:419", "shortDescription": {"text": "Commented-code block (5 lines) in frontend/src/lib/samba/legacy.ts:419"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ea76b8b475c7c53d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/lib/samba/legacy.ts:38", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/lib/samba/legacy.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-aa09e2a5bce1d1dd", "name": "Legacy-named symbol `is_legacy` in frontend/src/lib/samba/api/tetris.ts:18", "shortDescription": {"text": "Legacy-named symbol `is_legacy` in frontend/src/lib/samba/api/tetris.ts:18"}, "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-7bcc8ffecf4c66aa", "name": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/lib/samba/api/license.ts:13", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/lib/samba/api/license.ts:13"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7c3f993bb7dc2b21", "name": "`fetch()` without try/.catch or AbortSignal \u2014 extension/background.js:268", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 extension/background.js:268"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7b0d3e41bbde336b", "name": "Commented-code block (5 lines) in extension/background-autologin.js:5", "shortDescription": {"text": "Commented-code block (5 lines) in extension/background-autologin.js:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aaa3dc6fb03177b6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 extension/background-autologin.js:89", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 extension/background-autologin.js:89"}, "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-4a3652d70d24eca8", "name": "Commented-code block (5 lines) in extension/content-samba-deviceid.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in extension/content-samba-deviceid.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9face2ff19dbee8f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 extension/content-musinsa-claimlist.js:7", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 extension/content-musinsa-claimlist.js:7"}, "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-abf6503868edbb0c", "name": "Commented-code block (6 lines) in extension/content-reward-musinsa-snap.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in extension/content-reward-musinsa-snap.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-922242247840a1dc", "name": "Commented-code block (5 lines) in extension/background-sourcing.js:314", "shortDescription": {"text": "Commented-code block (5 lines) in extension/background-sourcing.js:314"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0fb3e3cc1057c42b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 extension/background-sourcing.js:421", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 extension/background-sourcing.js:421"}, "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-89b293b69063df23", "name": "Commented-code block (6 lines) in extension/config.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in extension/config.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-77c4dd5425654bff", "name": "Commented-code block (5 lines) in extension/content-tracking-musinsa.js:179", "shortDescription": {"text": "Commented-code block (5 lines) in extension/content-tracking-musinsa.js:179"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e61dcd96a9b73292", "name": "Commented-code block (5 lines) in extension/popup.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in extension/popup.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bf4cae70ce6149bf", "name": "Commented-code block (5 lines) in extension/content-review-naver.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in extension/content-review-naver.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b4420c5b2f6f3c56", "name": "`fetch()` without try/.catch or AbortSignal \u2014 extension/offscreen-cancel.js:24", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 extension/offscreen-cancel.js: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-40e03923e4707956", "name": "`fetch()` without try/.catch or AbortSignal \u2014 extension/recipe-executor.js:109", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 extension/recipe-executor.js:109"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b53b4bd83fdce371", "name": "Commented-code block (5 lines) in extension/background-core.js:17", "shortDescription": {"text": "Commented-code block (5 lines) in extension/background-core.js: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-2be314f9776dcd0e", "name": "`fetch()` without try/.catch or AbortSignal \u2014 extension/background-core.js:70", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 extension/background-core.js:70"}, "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-6baa8152ecb804ab", "name": "Commented-code block (6 lines) in extension/content-reward-musinsa-attendance.js:1", "shortDescription": {"text": "Commented-code block (6 lines) in extension/content-reward-musinsa-attendance.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-04af34b255982c2f", "name": "`fetch()` without try/.catch or AbortSignal \u2014 extension/content-reward-musinsa-attendance.js:36", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 extension/content-reward-musinsa-attendance.js:36"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-96e74f139885c25d", "name": "Commented-code block (6 lines) in tools/lotteon_daemon/daemon.py:84", "shortDescription": {"text": "Commented-code block (6 lines) in tools/lotteon_daemon/daemon.py:84"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9901f12f09031b3a", "name": "Commented-code block (5 lines) in tools/lotteon_daemon/site_handlers.py:409", "shortDescription": {"text": "Commented-code block (5 lines) in tools/lotteon_daemon/site_handlers.py:409"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6fa550c4b95ec5f3", "name": "Network/subprocess call without timeout or try/except \u2014 backend/scripts/check_migrations.py:17", "shortDescription": {"text": "Network/subprocess call without timeout or try/except \u2014 backend/scripts/check_migrations.py:17"}, "fullDescription": {"text": "`subprocess.run(...)` here lacks both a `timeout=` arg and an enclosing try/except. This is exactly the class of bug that took down our git-clone earlier (HTTP/2 stream cancel surfaced as a fatal). Add a `timeout=` and wrap in try/except, or use a wrapper that retries."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-382f26df8485cb29", "name": "Commented-code block (7 lines) in backend/scripts/local_bg_worker.py:329", "shortDescription": {"text": "Commented-code block (7 lines) in backend/scripts/local_bg_worker.py:329"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0c216802c047cf6c", "name": "Commented-code block (5 lines) in backend/alembic/versions/zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_autotune_cycle_idx.py:36", "shortDescription": {"text": "Commented-code block (5 lines) in backend/alembic/versions/zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_autotune_cycle_idx.py:36"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7c0bec5af4d446d2", "name": "Legacy-named symbol `uq_scp_tenant_source_product_v2` in backend/alembic/versions/zzzzzzzzzzzzzzz_dedupe_collected_produ", "shortDescription": {"text": "Legacy-named symbol `uq_scp_tenant_source_product_v2` in backend/alembic/versions/zzzzzzzzzzzzzzz_dedupe_collected_product_unique.py:12"}, "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-043a78e08222de42", "name": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/4c81abda9e0e_samba_return\uc5d0_customer_", "shortDescription": {"text": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/4c81abda9e0e_samba_return\uc5d0_customer_phone_check_date_.py:24"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-61484c9b2b639f86", "name": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/z_add_return_phone_sourcing_cells.py", "shortDescription": {"text": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/z_add_return_phone_sourcing_cells.py:36"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-b3edf830ea789123", "name": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz", "shortDescription": {"text": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_backfill_market_account_esm_toss.py:98"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-81df5e87036f4c74", "name": "Stub function `upgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/zzzzzzzzzzzzzzzzzzzzzzzz_merge_heads_p", "shortDescription": {"text": "Stub function `upgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/zzzzzzzzzzzzzzzzzzzzzzzz_merge_heads_postal_sales.py:24"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-042e09b0c09a3270", "name": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/zzz_return_collect_tracking.py:64", "shortDescription": {"text": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/zzz_return_collect_tracking.py:64"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1cdd9752bd9d1954", "name": "Stub function `upgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/z_merge_upstream_ebay_heads.py:24", "shortDescription": {"text": "Stub function `upgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/z_merge_upstream_ebay_heads.py:24"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a62151953f3d790a", "name": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/w2x3y4z5a6b7_add_missing_samba_retur", "shortDescription": {"text": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/w2x3y4z5a6b7_add_missing_samba_return_columns.py:64"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c895bf06960dddf2", "name": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/z_fix_autotune_missing_columns.py:40", "shortDescription": {"text": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/z_fix_autotune_missing_columns.py:40"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d54c417f27ed4f36", "name": "Stub function `upgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/zzzzzzzzzzzz_merge_heads_lotteon_dedup", "shortDescription": {"text": "Stub function `upgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/zzzzzzzzzzzz_merge_heads_lotteon_dedup_orderer_name.py:22"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-01d2d5255ae887dc", "name": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/202605011300_fix_lotteon_exchange_st", "shortDescription": {"text": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/202605011300_fix_lotteon_exchange_status.py:39"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d61c31d2a53f47e1", "name": "Commented-code block (6 lines) in backend/alembic/versions/dd3eaff7233e_add_is_unregistered_to_collected_product.py:20", "shortDescription": {"text": "Commented-code block (6 lines) in backend/alembic/versions/dd3eaff7233e_add_is_unregistered_to_collected_product.py:20"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e728865b6f9a3adf", "name": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/add_ssg_cs_columns.py:31", "shortDescription": {"text": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/add_ssg_cs_columns.py:31"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-760c5b3c10528cb7", "name": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/z_add_return_editable_cells.py:31", "shortDescription": {"text": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/z_add_return_editable_cells.py:31"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-40886f1dbdbbec14", "name": "Legacy-named symbol `exists_old` in backend/alembic/versions/zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_order_unique_with_seq.py:41", "shortDescription": {"text": "Legacy-named symbol `exists_old` in backend/alembic/versions/zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_order_unique_with_seq.py:41"}, "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-5063461decc1bda0", "name": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/zzzzzzzz_cs_inquiry_missing_columns.", "shortDescription": {"text": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/zzzzzzzz_cs_inquiry_missing_columns.py:106"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-1c48295f1860a171", "name": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz", "shortDescription": {"text": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_dedupe_market_default.py:48"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-32702d7933cd4313", "name": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/zz_cs_automation_draft_cols.py:58", "shortDescription": {"text": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/zz_cs_automation_draft_cols.py:58"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8b3d69755f66e31c", "name": "Stub function `upgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/zz_merge_ebay_and_dedup.py:24", "shortDescription": {"text": "Stub function `upgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/zz_merge_ebay_and_dedup.py:24"}, "fullDescription": {"text": "Likely an AI scaffold that was never filled in. Remove or implement."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-02e6d59c8e428b3e", "name": "Commented-code block (7 lines) in backend/backend/app_factory.py:113", "shortDescription": {"text": "Commented-code block (7 lines) in backend/backend/app_factory.py:113"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1d8ae61b0699dfbf", "name": "Commented-code block (5 lines) in backend/backend/lifecycle.py:546", "shortDescription": {"text": "Commented-code block (5 lines) in backend/backend/lifecycle.py:546"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5d006a9e5dd25a01", "name": "Legacy-named symbol `is_legacy` in backend/backend/dtos/samba/tetris.py:21", "shortDescription": {"text": "Legacy-named symbol `is_legacy` in backend/backend/dtos/samba/tetris.py:21"}, "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-ca3b437b2521d9e0", "name": "Legacy-named symbol `regs_old` in backend/backend/api/v1/routers/samba/shipment.py:968", "shortDescription": {"text": "Legacy-named symbol `regs_old` in backend/backend/api/v1/routers/samba/shipment.py:968"}, "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-5d82bff944412037", "name": "Commented-code block (7 lines) in backend/backend/api/v1/routers/samba/collector_common.py:456", "shortDescription": {"text": "Commented-code block (7 lines) in backend/backend/api/v1/routers/samba/collector_common.py:456"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-39b1c2a7e15970b4", "name": "Legacy-named symbol `_disp_old` in backend/backend/api/v1/routers/samba/collector_autotune.py:2345", "shortDescription": {"text": "Legacy-named symbol `_disp_old` in backend/backend/api/v1/routers/samba/collector_autotune.py:2345"}, "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-04f26765629bee8b", "name": "Commented-code block (5 lines) in backend/backend/api/v1/routers/samba/collector_autotune.py:416", "shortDescription": {"text": "Commented-code block (5 lines) in backend/backend/api/v1/routers/samba/collector_autotune.py:416"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bc4d08d8ff855141", "name": "Commented-code block (5 lines) in backend/backend/api/v1/routers/samba/forbidden.py:282", "shortDescription": {"text": "Commented-code block (5 lines) in backend/backend/api/v1/routers/samba/forbidden.py:282"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d45388d8700c792c", "name": "Commented-code block (5 lines) in backend/backend/api/v1/routers/samba/sourcing_account.py:66", "shortDescription": {"text": "Commented-code block (5 lines) in backend/backend/api/v1/routers/samba/sourcing_account.py: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-a6c87eaef666f4e3", "name": "Commented-code block (6 lines) in backend/backend/api/v1/routers/samba/returns.py:2488", "shortDescription": {"text": "Commented-code block (6 lines) in backend/backend/api/v1/routers/samba/returns.py:2488"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-12855e2eabf28242", "name": "Commented-code block (6 lines) in backend/backend/api/v1/routers/samba/cs_inquiry.py:1959", "shortDescription": {"text": "Commented-code block (6 lines) in backend/backend/api/v1/routers/samba/cs_inquiry.py:1959"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7c6af8a1e04027c5", "name": "Commented-code block (5 lines) in backend/backend/api/v1/routers/samba/order.py:891", "shortDescription": {"text": "Commented-code block (5 lines) in backend/backend/api/v1/routers/samba/order.py:891"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a604dd34b92d6afd", "name": "Commented-code block (5 lines) in backend/backend/api/v1/routers/samba/collector_collection/collect.py:836", "shortDescription": {"text": "Commented-code block (5 lines) in backend/backend/api/v1/routers/samba/collector_collection/collect.py:836"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c882d707f87e4d4d", "name": "Commented-code block (5 lines) in backend/backend/api/v1/routers/samba/proxy/sourcing.py:189", "shortDescription": {"text": "Commented-code block (5 lines) in backend/backend/api/v1/routers/samba/proxy/sourcing.py:189"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7ca5fa6af8bacfee", "name": "Legacy-named symbol `female_v1` in backend/backend/api/v1/routers/samba/proxy/ai_tools.py:376", "shortDescription": {"text": "Legacy-named symbol `female_v1` in backend/backend/api/v1/routers/samba/proxy/ai_tools.py:376"}, "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-13c49e6315a1c6d1", "name": "Commented-code block (5 lines) in backend/backend/api/v1/routers/samba/proxy/ai_tools.py:393", "shortDescription": {"text": "Commented-code block (5 lines) in backend/backend/api/v1/routers/samba/proxy/ai_tools.py:393"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f6ec26feae39251a", "name": "Commented-code block (5 lines) in backend/backend/core/rate_limit.py:72", "shortDescription": {"text": "Commented-code block (5 lines) in backend/backend/core/rate_limit.py: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-b8e10fe719abde81", "name": "Commented-code block (6 lines) in backend/backend/core/sql_safe.py:5", "shortDescription": {"text": "Commented-code block (6 lines) in backend/backend/core/sql_safe.py:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-75740eb1b36e1fd3", "name": "Legacy-named symbol `_mp_copy` in backend/backend/domain/samba/shipment/service.py:1886", "shortDescription": {"text": "Legacy-named symbol `_mp_copy` in backend/backend/domain/samba/shipment/service.py:1886"}, "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-f01cfee8d9066609", "name": "Commented-code block (5 lines) in backend/backend/domain/samba/shipment/service.py:374", "shortDescription": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/shipment/service.py:374"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c788875b3374e309", "name": "Commented-code block (5 lines) in backend/backend/domain/samba/tracking_sync/service.py:305", "shortDescription": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/tracking_sync/service.py:305"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e5f4075b31e9c0f2", "name": "Legacy-named symbol `female_v1` in backend/backend/domain/samba/image/service.py:50", "shortDescription": {"text": "Legacy-named symbol `female_v1` in backend/backend/domain/samba/image/service.py:50"}, "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-43bf69b70ec2628a", "name": "Commented-code block (5 lines) in backend/backend/domain/samba/image/service.py:790", "shortDescription": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/image/service.py:790"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2217b64492eb4954", "name": "Legacy-named symbol `regs_old` in backend/backend/domain/samba/proxy/ssg_status_reconciler.py:175", "shortDescription": {"text": "Legacy-named symbol `regs_old` in backend/backend/domain/samba/proxy/ssg_status_reconciler.py:175"}, "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-749a03a08cd51354", "name": "Commented-code block (5 lines) in backend/backend/domain/samba/proxy/esmplus.py:1394", "shortDescription": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/proxy/esmplus.py:1394"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7344f933df4cef25", "name": "Commented-code block (7 lines) in backend/backend/domain/samba/proxy/smartstore.py:1441", "shortDescription": {"text": "Commented-code block (7 lines) in backend/backend/domain/samba/proxy/smartstore.py:1441"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-97542c7edfad8c4d", "name": "Commented-code block (5 lines) in backend/backend/domain/samba/proxy/naverstore_sourcing_collect_script.py:51", "shortDescription": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/proxy/naverstore_sourcing_collect_script.py:51"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a8d818284b215c96", "name": "Commented-code block (5 lines) in backend/backend/domain/samba/proxy/elevenst.py:1049", "shortDescription": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/proxy/elevenst.py:1049"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-87453e13d79fefcc", "name": "Commented-code block (5 lines) in backend/backend/domain/samba/proxy/sourcing_queue.py:433", "shortDescription": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/proxy/sourcing_queue.py:433"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b4d35b45e1ce8af5", "name": "Commented-code block (5 lines) in backend/backend/domain/samba/proxy/musinsa.py:370", "shortDescription": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/proxy/musinsa.py:370"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-75a29757b0320fbc", "name": "Commented-code block (5 lines) in backend/backend/domain/samba/proxy/notice_utils.py:193", "shortDescription": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/proxy/notice_utils.py:193"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-862f9c19cbd8a119", "name": "Legacy-named symbol `t_PDP_1280_v1` in backend/backend/domain/samba/proxy/nike.py:617", "shortDescription": {"text": "Legacy-named symbol `t_PDP_1280_v1` in backend/backend/domain/samba/proxy/nike.py:617"}, "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-2a9ae01b7b82e470", "name": "Commented-code block (7 lines) in backend/backend/domain/samba/proxy/gsshop_sourcing.py:675", "shortDescription": {"text": "Commented-code block (7 lines) in backend/backend/domain/samba/proxy/gsshop_sourcing.py:675"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-40fa4f3d3a247e55", "name": "Legacy-named symbol `regs_old` in backend/backend/domain/samba/proxy/elevenst_ghost_reconciler.py:297", "shortDescription": {"text": "Legacy-named symbol `regs_old` in backend/backend/domain/samba/proxy/elevenst_ghost_reconciler.py:297"}, "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-83b3e999b342a5f1", "name": "Commented-code block (5 lines) in backend/backend/domain/samba/proxy/ssg_sourcing.py:1788", "shortDescription": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/proxy/ssg_sourcing.py:1788"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-f093242df8c1eec6", "name": "Commented-code block (6 lines) in backend/backend/domain/samba/proxy/naverstore_sourcing_parsers.py:59", "shortDescription": {"text": "Commented-code block (6 lines) in backend/backend/domain/samba/proxy/naverstore_sourcing_parsers.py:59"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4285563602380ef5", "name": "Legacy-named symbol `get_categories_v2` in backend/backend/domain/samba/proxy/ssg.py:844", "shortDescription": {"text": "Legacy-named symbol `get_categories_v2` in backend/backend/domain/samba/proxy/ssg.py:844"}, "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-eed0631b13090174", "name": "Commented-code block (5 lines) in backend/backend/domain/samba/proxy/ssg.py:1929", "shortDescription": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/proxy/ssg.py:1929"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a448a2f041cf8c84", "name": "Commented-code block (8 lines) in backend/backend/domain/samba/proxy/lotteon/api_client.py:1780", "shortDescription": {"text": "Commented-code block (8 lines) in backend/backend/domain/samba/proxy/lotteon/api_client.py:1780"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7cd2814e54a6e322", "name": "Legacy-named symbol `v1_v2` in backend/backend/domain/samba/proxy/lotteon/detail_client.py:411", "shortDescription": {"text": "Legacy-named symbol `v1_v2` in backend/backend/domain/samba/proxy/lotteon/detail_client.py:411"}, "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-bce2a5f4b5ef12a2", "name": "Commented-code block (6 lines) in backend/backend/domain/samba/proxy/lotteon/detail_client.py:409", "shortDescription": {"text": "Commented-code block (6 lines) in backend/backend/domain/samba/proxy/lotteon/detail_client.py:409"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6fbb3851639e5aaa", "name": "Commented-code block (5 lines) in backend/backend/domain/samba/proxy/lotteon/detail_parsers.py:16", "shortDescription": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/proxy/lotteon/detail_parsers.py:16"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3f3d26314f89d617", "name": "Commented-code block (5 lines) in backend/backend/domain/samba/proxy/lotteon/search_client.py:401", "shortDescription": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/proxy/lotteon/search_client.py:401"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cd0cabd42b25f6d3", "name": "Legacy-named symbol `is_legacy` in backend/backend/domain/samba/tetris/service.py:577", "shortDescription": {"text": "Legacy-named symbol `is_legacy` in backend/backend/domain/samba/tetris/service.py:577"}, "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-e91eb4548adaf1b8", "name": "Legacy-named symbol `uq_scp_tenant_source_product_v2` in backend/backend/domain/samba/collector/model.py:141", "shortDescription": {"text": "Legacy-named symbol `uq_scp_tenant_source_product_v2` in backend/backend/domain/samba/collector/model.py:141"}, "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-95f4365e1281ad1c", "name": "Commented-code block (5 lines) in backend/backend/domain/samba/collector/service.py:299", "shortDescription": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/collector/service.py:299"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d0156dad7ba12343", "name": "Commented-code block (5 lines) in backend/backend/domain/samba/order/dispatch_service.py:419", "shortDescription": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/order/dispatch_service.py:419"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e50fbc19af7fdf29", "name": "Commented-code block (6 lines) in backend/backend/domain/samba/order/model.py:373", "shortDescription": {"text": "Commented-code block (6 lines) in backend/backend/domain/samba/order/model.py:373"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-02a88a602a4c10dc", "name": "Legacy-named symbol `get_categories_v2` in backend/backend/domain/samba/category/sync_service.py:730", "shortDescription": {"text": "Legacy-named symbol `get_categories_v2` in backend/backend/domain/samba/category/sync_service.py:730"}, "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-313bad79ef6893cf", "name": "Legacy-named symbol `product_copy` in backend/backend/domain/samba/plugins/markets/smartstore.py:136", "shortDescription": {"text": "Legacy-named symbol `product_copy` in backend/backend/domain/samba/plugins/markets/smartstore.py:136"}, "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-e339511e2b33afe8", "name": "Legacy-named symbol `product_copy` in backend/backend/domain/samba/plugins/markets/cafe24.py:204", "shortDescription": {"text": "Legacy-named symbol `product_copy` in backend/backend/domain/samba/plugins/markets/cafe24.py:204"}, "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-ea8527eec6a51e41", "name": "Commented-code block (6 lines) in backend/backend/domain/samba/plugins/markets/elevenst.py:399", "shortDescription": {"text": "Commented-code block (6 lines) in backend/backend/domain/samba/plugins/markets/elevenst.py:399"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-65a5f0f8fd39dded", "name": "Legacy-named symbol `product_copy` in backend/backend/domain/samba/plugins/markets/lotteon.py:955", "shortDescription": {"text": "Legacy-named symbol `product_copy` in backend/backend/domain/samba/plugins/markets/lotteon.py:955"}, "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-e1c830ab4bb5c52d", "name": "Commented-code block (6 lines) in backend/backend/domain/samba/plugins/markets/lotteon.py:1967", "shortDescription": {"text": "Commented-code block (6 lines) in backend/backend/domain/samba/plugins/markets/lotteon.py:1967"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2c84ee39c78327c7", "name": "Commented-code block (6 lines) in backend/backend/domain/samba/plugins/markets/coupang.py:107", "shortDescription": {"text": "Commented-code block (6 lines) in backend/backend/domain/samba/plugins/markets/coupang.py:107"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ec75b48c9a438341", "name": "Legacy-named symbol `product_copy` in backend/backend/domain/samba/plugins/markets/gmarket.py:193", "shortDescription": {"text": "Legacy-named symbol `product_copy` in backend/backend/domain/samba/plugins/markets/gmarket.py:193"}, "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-b689f7bfe77b44e4", "name": "Commented-code block (7 lines) in backend/backend/domain/samba/plugins/markets/lottehome.py:834", "shortDescription": {"text": "Commented-code block (7 lines) in backend/backend/domain/samba/plugins/markets/lottehome.py:834"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e7544c292c2edb41", "name": "Commented-code block (5 lines) in backend/backend/domain/samba/plugins/markets/playauto.py:339", "shortDescription": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/plugins/markets/playauto.py:339"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9de493f9f80a576a", "name": "Legacy-named symbol `product_copy` in backend/backend/domain/samba/plugins/markets/auction.py:192", "shortDescription": {"text": "Legacy-named symbol `product_copy` in backend/backend/domain/samba/plugins/markets/auction.py:192"}, "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-f007d1c65c887f83", "name": "Commented-code block (7 lines) in backend/backend/domain/samba/plugins/markets/ssg.py:378", "shortDescription": {"text": "Commented-code block (7 lines) in backend/backend/domain/samba/plugins/markets/ssg.py:378"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-966f9804ebc19b45", "name": "Commented-code block (6 lines) in backend/backend/domain/samba/plugins/sourcing/lotteon.py:245", "shortDescription": {"text": "Commented-code block (6 lines) in backend/backend/domain/samba/plugins/sourcing/lotteon.py:245"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6f2abb83bfe6293b", "name": "Commented-code block (5 lines) in backend/backend/domain/samba/plugins/sourcing/abcmart.py:230", "shortDescription": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/plugins/sourcing/abcmart.py:230"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-57005ea8e32158bd", "name": "Commented-code block (6 lines) in backend/backend/domain/samba/plugins/sourcing/nike.py:111", "shortDescription": {"text": "Commented-code block (6 lines) in backend/backend/domain/samba/plugins/sourcing/nike.py:111"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-802fea5190c76442", "name": "Commented-code block (7 lines) in backend/backend/domain/samba/plugins/sourcing/ssg.py:102", "shortDescription": {"text": "Commented-code block (7 lines) in backend/backend/domain/samba/plugins/sourcing/ssg.py: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-346ee6d79b011824", "name": "Commented-code block (6 lines) in backend/backend/domain/samba/job/worker.py:1317", "shortDescription": {"text": "Commented-code block (6 lines) in backend/backend/domain/samba/job/worker.py:1317"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e2e4b6dfc7e6f47d", "name": "Legacy-named symbol `t_old` in backend/backend/domain/samba/job/progress_tracker.py:41", "shortDescription": {"text": "Legacy-named symbol `t_old` in backend/backend/domain/samba/job/progress_tracker.py:41"}, "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-ac6ce0e6d1dca97a", "name": "61 env vars used in code but missing from .env.example", "shortDescription": {"text": "61 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `ALEMBIC_PRODUCTION_CONFIRMED`, `API_GATEWAY_KEY`, `APPDATA`, `AUTOTUNE_CYCLE_BATCH`, `AUTOTUNE_SOLDOUT_REASSERT_SEC`, `AUTOTUNE_TRANSMIT_MAX_CONCURRENCY`, `BACKEND_URL`, `BACKFILL_MAX` + 53 more. Add them (with a placeholder/comment) to .env.example so onboarding doesn't break."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2c04133e54348533", "name": "Near-duplicate function bodies in 2 places", "shortDescription": {"text": "Near-duplicate function bodies in 2 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\ndeploy/kill_idle.py:main, backend/scripts/backfill_tenant_isolation.py:main\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-be46ea126aa5d8dc", "name": "Near-duplicate function bodies in 3 places", "shortDescription": {"text": "Near-duplicate function bodies in 3 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\ntools/snkr_build_idx.py:main, backend/scripts/create_tetris_board_idx.py:main, backend/scripts/collect_lottehome_orders.py:main\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-49c98f7cedd9c977", "name": "Near-duplicate function bodies in 4 places", "shortDescription": {"text": "Near-duplicate function bodies in 4 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nbackend/scripts/validate_cs_classifier.py:main, backend/scripts/tracking_health_check.py:main, backend/scripts/ssg_discriminate.py:main, backend/scripts/ssg_tracking_detail.py:main\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-33a6b62e30ce7ab4", "name": "Near-duplicate function bodies in 6 places", "shortDescription": {"text": "Near-duplicate function bodies in 6 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nbackend/alembic/versions/ad3d158aae34_merge_all_heads_for_autotune_fix.py:upgrade, backend/alembic/versions/37fd18b908e6_merge_heads_before_perf_index.py:upgrade, backend/alembic/versions/b3786b6834dc_merge_coupang_and_sourcing_order_heads.py:upgrade, backend/alembic/versions/2c0a9e7fbdfe_merge_heads_for_sort_order.py:upgrade\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c54c6fb8e364daaa", "name": "Near-duplicate function bodies in 16 places", "shortDescription": {"text": "Near-duplicate function bodies in 16 places"}, "fullDescription": {"text": "Functions with the same first-5-line body hash:\nbackend/alembic/versions/4c81abda9e0e_samba_return\uc5d0_customer_phone_check_date_.py:downgrade, backend/alembic/versions/z_add_return_phone_sourcing_cells.py:downgrade, backend/alembic/versions/zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_backfill_market_account_esm_toss.py:downgrade, backend/alembic/versions/zzzzzzzzzzzzzzzzzzzzzzzz_merge_heads_postal_sales.py:downgrade\n\nThis is *the* AI-coder failure mode (4\u00d7 more duplication in vibe-coded repos \u2014 see https://jw.hn/ai-code-hygiene). Consolidate or document why they're separate."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-011c8bf50142ca80", "name": "FastAPI POST `ebay_deletion_notification` without auth dependency \u2014 backend/backend/api/v1/routers/ebay.py:51", "shortDescription": {"text": "FastAPI POST `ebay_deletion_notification` without auth dependency \u2014 backend/backend/api/v1/routers/ebay.py:51"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-2170c9226ca8ccaf", "name": "FastAPI POST `get_product_detail_with_cookies` without auth dependency \u2014 backend/backend/api/v1/routers/samba/naverstore", "shortDescription": {"text": "FastAPI POST `get_product_detail_with_cookies` without auth dependency \u2014 backend/backend/api/v1/routers/samba/naverstore_sourcing.py:130"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-4a4a80a77debe2f8", "name": "FastAPI POST `get_product_details_batch` without auth dependency \u2014 backend/backend/api/v1/routers/samba/naverstore_sourc", "shortDescription": {"text": "FastAPI POST `get_product_details_batch` without auth dependency \u2014 backend/backend/api/v1/routers/samba/naverstore_sourcing.py:148"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-063a00d5f9cbb665", "name": "FastAPI POST `analyze_full` without auth dependency \u2014 backend/backend/api/v1/routers/samba/ai_sourcing.py:76", "shortDescription": {"text": "FastAPI POST `analyze_full` without auth dependency \u2014 backend/backend/api/v1/routers/samba/ai_sourcing.py:76"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a50c34675756f434", "name": "FastAPI POST `receive_ranking_data` without auth dependency \u2014 backend/backend/api/v1/routers/samba/ai_sourcing.py:588", "shortDescription": {"text": "FastAPI POST `receive_ranking_data` without auth dependency \u2014 backend/backend/api/v1/routers/samba/ai_sourcing.py:588"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-41ff31d50388db48", "name": "FastAPI POST `receive_collect_result` without auth dependency \u2014 backend/backend/api/v1/routers/samba/ai_sourcing.py:774", "shortDescription": {"text": "FastAPI POST `receive_collect_result` without auth dependency \u2014 backend/backend/api/v1/routers/samba/ai_sourcing.py:774"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b9cc1a94dba479ea", "name": "FastAPI POST `test_collect` without auth dependency \u2014 backend/backend/api/v1/routers/samba/ai_sourcing.py:812", "shortDescription": {"text": "FastAPI POST `test_collect` without auth dependency \u2014 backend/backend/api/v1/routers/samba/ai_sourcing.py:812"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a8d286649bee56e9", "name": "FastAPI POST `clear_collect_log_buffer` without auth dependency \u2014 backend/backend/api/v1/routers/samba/job.py:411", "shortDescription": {"text": "FastAPI POST `clear_collect_log_buffer` without auth dependency \u2014 backend/backend/api/v1/routers/samba/job.py:411"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-7f56cc64c3fda92f", "name": "FastAPI POST `kill_idle_in_transaction` without auth dependency \u2014 backend/backend/api/v1/routers/samba/db_pool.py:47", "shortDescription": {"text": "FastAPI POST `kill_idle_in_transaction` without auth dependency \u2014 backend/backend/api/v1/routers/samba/db_pool.py:47"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c268d38b26cc89bf", "name": "FastAPI POST `search_issues` without auth dependency \u2014 backend/backend/api/v1/routers/samba/sns_posting.py:195", "shortDescription": {"text": "FastAPI POST `search_issues` without auth dependency \u2014 backend/backend/api/v1/routers/samba/sns_posting.py:195"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-703589af97d43295", "name": "FastAPI POST `rebuild_exported_rules_endpoint` without auth dependency \u2014 backend/backend/api/v1/routers/samba/category.p", "shortDescription": {"text": "FastAPI POST `rebuild_exported_rules_endpoint` without auth dependency \u2014 backend/backend/api/v1/routers/samba/category.py:231"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ca7bf52f3519b9a4", "name": "FastAPI POST `test_rate_limit` without auth dependency \u2014 backend/backend/api/v1/routers/samba/collector_refresh.py:900", "shortDescription": {"text": "FastAPI POST `test_rate_limit` without auth dependency \u2014 backend/backend/api/v1/routers/samba/collector_refresh.py:900"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d441a9c370fc4d60", "name": "FastAPI POST `brand_discover` without auth dependency \u2014 backend/backend/api/v1/routers/samba/collector_collection/brands", "shortDescription": {"text": "FastAPI POST `brand_discover` without auth dependency \u2014 backend/backend/api/v1/routers/samba/collector_collection/brands.py:428"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-3a8fa3ba39bf674c", "name": "FastAPI POST `test_proxy_connection` without auth dependency \u2014 backend/backend/api/v1/routers/samba/proxy/config.py:92", "shortDescription": {"text": "FastAPI POST `test_proxy_connection` without auth dependency \u2014 backend/backend/api/v1/routers/samba/proxy/config.py:92"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-02f4b4bd76951af0", "name": "FastAPI POST `kream_collect_result` without auth dependency \u2014 backend/backend/api/v1/routers/samba/proxy/kream.py:128", "shortDescription": {"text": "FastAPI POST `kream_collect_result` without auth dependency \u2014 backend/backend/api/v1/routers/samba/proxy/kream.py:128"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-6bacef5b6ba62ba3", "name": "FastAPI POST `kream_search_result` without auth dependency \u2014 backend/backend/api/v1/routers/samba/proxy/kream.py:171", "shortDescription": {"text": "FastAPI POST `kream_search_result` without auth dependency \u2014 backend/backend/api/v1/routers/samba/proxy/kream.py:171"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-8124969fab180219", "name": "FastAPI POST `upload_preset_image` without auth dependency \u2014 backend/backend/api/v1/routers/samba/proxy/preset_images.py", "shortDescription": {"text": "FastAPI POST `upload_preset_image` without auth dependency \u2014 backend/backend/api/v1/routers/samba/proxy/preset_images.py:38"}, "fullDescription": {"text": "`@router.post` decorator with no `Depends(get_current_user)` or auth-shaped dependency in its signature. Mutating endpoints should require authentication unless explicitly public."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-827665db40d3ed5b", "name": "Dangling fetch: GET https://www.musinsa.com/order-service/my/order/get_order_view/${ordNo} (extension/background-sourcin", "shortDescription": {"text": "Dangling fetch: GET https://www.musinsa.com/order-service/my/order/get_order_view/${ordNo} (extension/background-sourcing.js:1727)"}, "fullDescription": {"text": "`extension/background-sourcing.js:1727` calls `GET https://www.musinsa.com/order-service/my/order/get_order_view/${ordNo}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/www.musinsa.com/order-service/my/order/get_order_view/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-bbd39903fc921cb5", "name": "Dangling fetch: GET https://pbf.lotteon.com/product/v2/detail/search/base/sitm/${sitmNo} (extension/background-sourcing.", "shortDescription": {"text": "Dangling fetch: GET https://pbf.lotteon.com/product/v2/detail/search/base/sitm/${sitmNo} (extension/background-sourcing.js:2393)"}, "fullDescription": {"text": "`extension/background-sourcing.js:2393` calls `GET https://pbf.lotteon.com/product/v2/detail/search/base/sitm/${sitmNo}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/pbf.lotteon.com/product/v2/detail/search/base/sitm/<p>`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-1b621572580b84dc", "name": "Dangling fetch: GET https://${subdomain}/product/info?prdtNo=${productId} (extension/background-sourcing.js:2450)", "shortDescription": {"text": "Dangling fetch: GET https://${subdomain}/product/info?prdtNo=${productId} (extension/background-sourcing.js:2450)"}, "fullDescription": {"text": "`extension/background-sourcing.js:2450` calls `GET https://${subdomain}/product/info?prdtNo=${productId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/<p>/product/info`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-dca806d37a50b39d", "name": "Dangling fetch: GET https://${subdomain}/product/info?prdtNo=${productId} (extension/background-sourcing.js:2519)", "shortDescription": {"text": "Dangling fetch: GET https://${subdomain}/product/info?prdtNo=${productId} (extension/background-sourcing.js:2519)"}, "fullDescription": {"text": "`extension/background-sourcing.js:2519` calls `GET https://${subdomain}/product/info?prdtNo=${productId}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/<p>/product/info`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-add9025874184e2c", "name": "Dangling fetch: GET /product/info?prdtNo=${prdtNo} (extension/background-sourcing.js:2666)", "shortDescription": {"text": "Dangling fetch: GET /product/info?prdtNo=${prdtNo} (extension/background-sourcing.js:2666)"}, "fullDescription": {"text": "`extension/background-sourcing.js:2666` calls `GET /product/info?prdtNo=${prdtNo}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/product/info`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-620c436df9892baf", "name": "Dangling fetch: GET https://httpbin.org/ip (frontend/src/app/samba/settings/hooks/useProxySettings.ts:80)", "shortDescription": {"text": "Dangling fetch: GET https://httpbin.org/ip (frontend/src/app/samba/settings/hooks/useProxySettings.ts:80)"}, "fullDescription": {"text": "`frontend/src/app/samba/settings/hooks/useProxySettings.ts:80` calls `GET https://httpbin.org/ip` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/httpbin.org/ip`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-11e3940895a9e3f6", "name": "Dangling fetch: GET http://localhost:51425/device_id (frontend/src/app/samba/warroom/page.tsx:633)", "shortDescription": {"text": "Dangling fetch: GET http://localhost:51425/device_id (frontend/src/app/samba/warroom/page.tsx:633)"}, "fullDescription": {"text": "`frontend/src/app/samba/warroom/page.tsx:633` calls `GET http://localhost:51425/device_id` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/http:/localhost:51425/device_id`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-ec2d9bbfdc85c07b", "name": "Dangling fetch: POST /api/auth/session (frontend/src/lib/api.ts:67)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/session (frontend/src/lib/api.ts:67)"}, "fullDescription": {"text": "`frontend/src/lib/api.ts:67` calls `POST /api/auth/session` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/session`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-b6a70415309cbbf0", "name": "Dangling fetch: DELETE /api/auth/session (frontend/src/lib/api.ts:94)", "shortDescription": {"text": "Dangling fetch: DELETE /api/auth/session (frontend/src/lib/api.ts:94)"}, "fullDescription": {"text": "`frontend/src/lib/api.ts:94` calls `DELETE /api/auth/session` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/session`\nIf this points at an external API, prefix it with `https://` so the matcher skips it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5baa8971ebe192a1", "name": "Unused endpoint: GET /", "shortDescription": {"text": "Unused endpoint: GET /"}, "fullDescription": {"text": "`backend/backend/app_factory.py` declares `GET /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a436691337284d03", "name": "Unused endpoint: GET /api/v1/health", "shortDescription": {"text": "Unused endpoint: GET /api/v1/health"}, "fullDescription": {"text": "`backend/backend/app_factory.py` declares `GET /api/v1/health` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-93ca3e8f29f61978", "name": "Unused endpoint: GET /ebay/deletion-notification", "shortDescription": {"text": "Unused endpoint: GET /ebay/deletion-notification"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/ebay.py` declares `GET /ebay/deletion-notification` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4741214a900d4fb9", "name": "Unused endpoint: POST /ebay/deletion-notification", "shortDescription": {"text": "Unused endpoint: POST /ebay/deletion-notification"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/ebay.py` declares `POST /ebay/deletion-notification` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-47e8b6741e6a412e", "name": "Unused endpoint: POST /email/sign-up", "shortDescription": {"text": "Unused endpoint: POST /email/sign-up"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/auth.py` declares `POST /email/sign-up` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ef4460865d68011e", "name": "Unused endpoint: POST /email/login", "shortDescription": {"text": "Unused endpoint: POST /email/login"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/auth.py` declares `POST /email/login` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7ce17d6b092a81ca", "name": "Unused endpoint: POST /refresh", "shortDescription": {"text": "Unused endpoint: POST /refresh"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/auth.py` declares `POST /refresh` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fd1dc91abf32142d", "name": "Unused endpoint: GET /me", "shortDescription": {"text": "Unused endpoint: GET /me"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/auth.py` declares `GET /me` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c1c28814ecb17c6c", "name": "Unused endpoint: POST /license/verify", "shortDescription": {"text": "Unused endpoint: POST /license/verify"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/license.py` declares `POST /license/verify` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-627cdd6ec2c1df73", "name": "Unused endpoint: GET /{user_id}", "shortDescription": {"text": "Unused endpoint: GET /{user_id}"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/user.py` declares `GET /{user_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7a009b1a56794f45", "name": "Unused endpoint: POST /", "shortDescription": {"text": "Unused endpoint: POST /"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/user.py` declares `POST /` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-646905f54906a60a", "name": "Unused endpoint: PATCH /{user_id}", "shortDescription": {"text": "Unused endpoint: PATCH /{user_id}"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/user.py` declares `PATCH /{user_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-55c93ee7e031a509", "name": "Unused endpoint: DELETE /{user_id}", "shortDescription": {"text": "Unused endpoint: DELETE /{user_id}"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/user.py` declares `DELETE /{user_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cd8dc4599ec52a08", "name": "Unused endpoint: GET /stats", "shortDescription": {"text": "Unused endpoint: GET /stats"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/store_care.py` declares `GET /stats` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0d9abfdbc1cc9788", "name": "Unused endpoint: GET /schedules", "shortDescription": {"text": "Unused endpoint: GET /schedules"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/store_care.py` declares `GET /schedules` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bb4497b3cab9fef5", "name": "Unused endpoint: POST /schedules", "shortDescription": {"text": "Unused endpoint: POST /schedules"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/store_care.py` declares `POST /schedules` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-d7f54e5d794e82ae", "name": "Unused endpoint: PUT /schedules/{schedule_id}", "shortDescription": {"text": "Unused endpoint: PUT /schedules/{schedule_id}"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/store_care.py` declares `PUT /schedules/{schedule_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-25d5b654de45bc2c", "name": "Unused endpoint: POST /schedules/{schedule_id}/toggle", "shortDescription": {"text": "Unused endpoint: POST /schedules/{schedule_id}/toggle"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/store_care.py` declares `POST /schedules/{schedule_id}/toggle` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-de67e7a5f4f122aa", "name": "Unused endpoint: DELETE /schedules/{schedule_id}", "shortDescription": {"text": "Unused endpoint: DELETE /schedules/{schedule_id}"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/store_care.py` declares `DELETE /schedules/{schedule_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cecee4c21e264d14", "name": "Unused endpoint: GET /purchases", "shortDescription": {"text": "Unused endpoint: GET /purchases"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/store_care.py` declares `GET /purchases` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-6b4d3a1c30158c0e", "name": "Unused endpoint: POST /cancel", "shortDescription": {"text": "Unused endpoint: POST /cancel"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/shipment.py` declares `POST /cancel` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cfe62d3ce07cefda", "name": "Unused endpoint: POST /emergency-stop", "shortDescription": {"text": "Unused endpoint: POST /emergency-stop"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/shipment.py` declares `POST /emergency-stop` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e58048d2f47202da", "name": "Unused endpoint: POST /emergency-clear", "shortDescription": {"text": "Unused endpoint: POST /emergency-clear"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/shipment.py` declares `POST /emergency-clear` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7cd7b2735f400ab9", "name": "Unused endpoint: POST /smartstore/cleanup-orphans", "shortDescription": {"text": "Unused endpoint: POST /smartstore/cleanup-orphans"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/shipment.py` declares `POST /smartstore/cleanup-orphans` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-244a0703510b4366", "name": "Unused endpoint: GET /ghost-summary", "shortDescription": {"text": "Unused endpoint: GET /ghost-summary"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/shipment.py` declares `GET /ghost-summary` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-54591d9e09c66718", "name": "Unused endpoint: POST /elevenst/cleanup-orphans", "shortDescription": {"text": "Unused endpoint: POST /elevenst/cleanup-orphans"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/shipment.py` declares `POST /elevenst/cleanup-orphans` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9d9da4ae3baebbea", "name": "Unused endpoint: POST /elevenst/cleanup-missing-prdno", "shortDescription": {"text": "Unused endpoint: POST /elevenst/cleanup-missing-prdno"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/shipment.py` declares `POST /elevenst/cleanup-missing-prdno` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-da3a28d3a1cccbf5", "name": "Unused endpoint: POST /coupang/cleanup-orphans", "shortDescription": {"text": "Unused endpoint: POST /coupang/cleanup-orphans"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/shipment.py` declares `POST /coupang/cleanup-orphans` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9b0dc94f94278388", "name": "Unused endpoint: POST /coupang/clear-stale-mapping", "shortDescription": {"text": "Unused endpoint: POST /coupang/clear-stale-mapping"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/shipment.py` declares `POST /coupang/clear-stale-mapping` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0a208a4ab6fc7f09", "name": "Unused endpoint: POST /coupang/delete-orphan", "shortDescription": {"text": "Unused endpoint: POST /coupang/delete-orphan"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/shipment.py` declares `POST /coupang/delete-orphan` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-74bc897e92d388a4", "name": "Unused endpoint: POST /elevenst/cleanup-orphans-v2", "shortDescription": {"text": "Unused endpoint: POST /elevenst/cleanup-orphans-v2"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/shipment.py` declares `POST /elevenst/cleanup-orphans-v2` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-917a034abf3cf8a3", "name": "Unused endpoint: POST /lotteon/cleanup-orphans", "shortDescription": {"text": "Unused endpoint: POST /lotteon/cleanup-orphans"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/shipment.py` declares `POST /lotteon/cleanup-orphans` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3d074283d8f1ecd6", "name": "Unused endpoint: GET /product/{product_id}", "shortDescription": {"text": "Unused endpoint: GET /product/{product_id}"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/shipment.py` declares `GET /product/{product_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ed66fceef9a94743", "name": "Unused endpoint: GET /{shipment_id}", "shortDescription": {"text": "Unused endpoint: GET /{shipment_id}"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/shipment.py` declares `GET /{shipment_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a13a7e97aeacf55f", "name": "Unused endpoint: POST /start", "shortDescription": {"text": "Unused endpoint: POST /start"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/shipment.py` declares `POST /start` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-cec3b1be36c33d02", "name": "Unused endpoint: POST /market-delete", "shortDescription": {"text": "Unused endpoint: POST /market-delete"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/shipment.py` declares `POST /market-delete` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-fb64bacd72f8f164", "name": "Unused endpoint: POST /market-delete-by-account", "shortDescription": {"text": "Unused endpoint: POST /market-delete-by-account"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/shipment.py` declares `POST /market-delete-by-account` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c5519c77a9e73557", "name": "Unused endpoint: POST /{shipment_id}/retry", "shortDescription": {"text": "Unused endpoint: POST /{shipment_id}/retry"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/shipment.py` declares `POST /{shipment_id}/retry` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-e1f7ea89d4b19a3b", "name": "Unused endpoint: POST /group-preview", "shortDescription": {"text": "Unused endpoint: POST /group-preview"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/shipment.py` declares `POST /group-preview` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8db80f53bb0172bf", "name": "Unused endpoint: POST /group-send", "shortDescription": {"text": "Unused endpoint: POST /group-send"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/shipment.py` declares `POST /group-send` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-72eb8a13269a8eb3", "name": "Unused endpoint: GET /active", "shortDescription": {"text": "Unused endpoint: GET /active"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/account.py` declares `GET /active` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-59e34f85ef42eefc", "name": "Unused endpoint: GET /markets", "shortDescription": {"text": "Unused endpoint: GET /markets"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/account.py` declares `GET /markets` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-8f0fa09f7aaa0e98", "name": "Unused endpoint: GET /{account_id}", "shortDescription": {"text": "Unused endpoint: GET /{account_id}"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/account.py` declares `GET /{account_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-53d957f1a879dd20", "name": "Unused endpoint: GET /{account_id}/secrets", "shortDescription": {"text": "Unused endpoint: GET /{account_id}/secrets"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/account.py` declares `GET /{account_id}/secrets` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bbee73f9cb514a06", "name": "Unused endpoint: PUT /{account_id}", "shortDescription": {"text": "Unused endpoint: PUT /{account_id}"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/account.py` declares `PUT /{account_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ae7d408b97fa66b8", "name": "Unused endpoint: PUT /{account_id}/toggle", "shortDescription": {"text": "Unused endpoint: PUT /{account_id}/toggle"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/account.py` declares `PUT /{account_id}/toggle` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-504af21a48ec907a", "name": "Unused endpoint: POST /from-store-form", "shortDescription": {"text": "Unused endpoint: POST /from-store-form"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/account.py` declares `POST /from-store-form` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-91445f5d06061d9d", "name": "Unused endpoint: PUT /{account_id}/set-default", "shortDescription": {"text": "Unused endpoint: PUT /{account_id}/set-default"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/account.py` declares `PUT /{account_id}/set-default` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4a2ffdf0f88ffd73", "name": "Unused endpoint: DELETE /{account_id}", "shortDescription": {"text": "Unused endpoint: DELETE /{account_id}"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/account.py` declares `DELETE /{account_id}` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-f74669502167c889", "name": "Unused endpoint: GET /pending-with-context", "shortDescription": {"text": "Unused endpoint: GET /pending-with-context"}, "fullDescription": {"text": "`backend/backend/api/v1/routers/samba/cs_internal.py` declares `GET /pending-with-context` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/19034"}, "properties": {"repository": "sbk0674-web/samba-wave", "repoUrl": "https://github.com/sbk0674-web/samba-wave", "branch": "main"}, "results": [{"ruleId": "scanner-b0787232c0bf65d0", "level": "note", "message": {"text": "Possibly dead Python function: fetch_lotteon_credential"}, "properties": {"repobilityId": "498cd351c2187523", "scanner": "scanner-primary", "fingerprint": "b0787232c0bf65d0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/lotteon_daemon/daemon.py:1042"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-87d1ad769e2b49b6", "level": "note", "message": {"text": "Possibly dead Python function: lotteon_auto_login"}, "properties": {"repobilityId": "fbfae12c9fd2581b", "scanner": "scanner-primary", "fingerprint": "87d1ad769e2b49b6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/lotteon_daemon/daemon.py:1116"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e255385f8066066e", "level": "note", "message": {"text": "Possibly dead Python function: ensure_logged_in"}, "properties": {"repobilityId": "30613196bd75fe4d", "scanner": "scanner-primary", "fingerprint": "e255385f8066066e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/lotteon_daemon/daemon.py:1379"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a960a60f06d4d08a", "level": "note", "message": {"text": "Possibly dead Python function: extract_lotteon_pdp"}, "properties": {"repobilityId": "fbeee526c6ce1d76", "scanner": "scanner-primary", "fingerprint": "a960a60f06d4d08a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/lotteon_daemon/daemon.py:2128"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f317fcb2a3a77bf2", "level": "note", "message": {"text": "Possibly dead Python function: log_message"}, "properties": {"repobilityId": "965f3150b4af5b2e", "scanner": "scanner-primary", "fingerprint": "f317fcb2a3a77bf2", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/lotteon_daemon/daemon.py:2553"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-db5b95e135f5075c", "level": "note", "message": {"text": "Possibly dead Python function: do_OPTIONS"}, "properties": {"repobilityId": "36491d1f4fa41aef", "scanner": "scanner-primary", "fingerprint": "db5b95e135f5075c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/lotteon_daemon/daemon.py:2556"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3e735f41fc540173", "level": "note", "message": {"text": "Possibly dead Python function: do_GET"}, "properties": {"repobilityId": "2d943bb45e4f13bd", "scanner": "scanner-primary", "fingerprint": "3e735f41fc540173", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/lotteon_daemon/daemon.py:2563"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d70cd83aa31ffb6b", "level": "note", "message": {"text": "Possibly dead Python function: forward"}, "properties": {"repobilityId": "ea414cce7f8e5874", "scanner": "scanner-primary", "fingerprint": "d70cd83aa31ffb6b", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/scripts/export_clip_onnx.py:68"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1b111cf359ee5522", "level": "note", "message": {"text": "Possibly dead Python function: remove_watermark"}, "properties": {"repobilityId": "ca02e5045aa74868", "scanner": "scanner-primary", "fingerprint": "1b111cf359ee5522", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/scripts/local_bg_worker.py:279"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-67030537f1f13b40", "level": "note", "message": {"text": "Possibly dead Python function: do_run_migrations"}, "properties": {"repobilityId": "087acb17722cfd2f", "scanner": "scanner-primary", "fingerprint": "67030537f1f13b40", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/alembic/env.py:100"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d35f6cf55c5e1d97", "level": "note", "message": {"text": "Possibly dead Python function: upgrade"}, "properties": {"repobilityId": "cf0b8e5e6e2f8bc4", "scanner": "scanner-primary", "fingerprint": "d35f6cf55c5e1d97", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/alembic/versions/ad3d158aae34_merge_all_heads_for_autotune_fix.py:19"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a126bd2b7a71b639", "level": "note", "message": {"text": "Possibly dead Python function: downgrade"}, "properties": {"repobilityId": "c03debbf11efa0c5", "scanner": "scanner-primary", "fingerprint": "a126bd2b7a71b639", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/alembic/versions/ad3d158aae34_merge_all_heads_for_autotune_fix.py:24"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c838b63c56a16382", "level": "note", "message": {"text": "Possibly dead Python function: upgrade"}, "properties": {"repobilityId": "cf0b8e5e6e2f8bc4", "scanner": "scanner-primary", "fingerprint": "c838b63c56a16382", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/alembic/versions/u9v0w1x2y3z4_add_samba_sourcing_account.py:20"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-7705da39e0c51e3e", "level": "note", "message": {"text": "Possibly dead Python function: downgrade"}, "properties": {"repobilityId": "c03debbf11efa0c5", "scanner": "scanner-primary", "fingerprint": "7705da39e0c51e3e", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/alembic/versions/u9v0w1x2y3z4_add_samba_sourcing_account.py:42"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bdd47d72edcf25c1", "level": "note", "message": {"text": "Possibly dead Python function: upgrade"}, "properties": {"repobilityId": "cf0b8e5e6e2f8bc4", "scanner": "scanner-primary", "fingerprint": "bdd47d72edcf25c1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/alembic/versions/7c423005e6ab_add_market_product_nos_to_collected_.py:22"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d80a643c5277c1f6", "level": "note", "message": {"text": "Possibly dead Python function: downgrade"}, "properties": {"repobilityId": "c03debbf11efa0c5", "scanner": "scanner-primary", "fingerprint": "d80a643c5277c1f6", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/alembic/versions/7c423005e6ab_add_market_product_nos_to_collected_.py:30"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-02762ba3f34ca17d", "level": "note", "message": {"text": "Possibly dead Python function: upgrade"}, "properties": {"repobilityId": "cf0b8e5e6e2f8bc4", "scanner": "scanner-primary", "fingerprint": "02762ba3f34ca17d", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/alembic/versions/d5dd6936b758_add_tenant_id_to_samba_return.py:21"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c198721f19184fc9", "level": "note", "message": {"text": "Possibly dead Python function: downgrade"}, "properties": {"repobilityId": "c03debbf11efa0c5", "scanner": "scanner-primary", "fingerprint": "c198721f19184fc9", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/alembic/versions/d5dd6936b758_add_tenant_id_to_samba_return.py:53"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-797eda5d3a8a22ca", "level": "note", "message": {"text": "Possibly dead Python function: upgrade"}, "properties": {"repobilityId": "cf0b8e5e6e2f8bc4", "scanner": "scanner-primary", "fingerprint": "797eda5d3a8a22ca", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/alembic/versions/zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_autotune_cycle_idx.py:35"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-97b2186298e92014", "level": "note", "message": {"text": "Possibly dead Python function: downgrade"}, "properties": {"repobilityId": "c03debbf11efa0c5", "scanner": "scanner-primary", "fingerprint": "97b2186298e92014", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/alembic/versions/zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_autotune_cycle_idx.py:51"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-8060ae98957fc800", "level": "note", "message": {"text": "Possibly dead Python function: upgrade"}, "properties": {"repobilityId": "cf0b8e5e6e2f8bc4", "scanner": "scanner-primary", "fingerprint": "8060ae98957fc800", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/alembic/versions/zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_add_cost_excl_held_point.py:56"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1b00d77e9f27bceb", "level": "note", "message": {"text": "Possibly dead Python function: downgrade"}, "properties": {"repobilityId": "c03debbf11efa0c5", "scanner": "scanner-primary", "fingerprint": "1b00d77e9f27bceb", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/alembic/versions/zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_add_cost_excl_held_point.py:63"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1fa08b796f84e19f", "level": "note", "message": {"text": "Possibly dead Python function: upgrade"}, "properties": {"repobilityId": "cf0b8e5e6e2f8bc4", "scanner": "scanner-primary", "fingerprint": "1fa08b796f84e19f", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/alembic/versions/zzzzzzzzzzzzzzz_dedupe_collected_product_unique.py:35"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-46b05b67d620c7e0", "level": "note", "message": {"text": "Possibly dead Python function: downgrade"}, "properties": {"repobilityId": "c03debbf11efa0c5", "scanner": "scanner-primary", "fingerprint": "46b05b67d620c7e0", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/alembic/versions/zzzzzzzzzzzzzzz_dedupe_collected_product_unique.py:54"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-178b7fa437d3a6a1", "level": "note", "message": {"text": "Possibly dead Python function: upgrade"}, "properties": {"repobilityId": "cf0b8e5e6e2f8bc4", "scanner": "scanner-primary", "fingerprint": "178b7fa437d3a6a1", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/alembic/versions/8355b1006c94_add_free_shipping_and_same_day_delivery_.py:22"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-1253a424a95ef0ba", "level": "note", "message": {"text": "Possibly dead Python function: downgrade"}, "properties": {"repobilityId": "c03debbf11efa0c5", "scanner": "scanner-primary", "fingerprint": "1253a424a95ef0ba", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/alembic/versions/8355b1006c94_add_free_shipping_and_same_day_delivery_.py:38"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ce9895d7006c4b5c", "level": "note", "message": {"text": "Possibly dead Python function: upgrade"}, "properties": {"repobilityId": "cf0b8e5e6e2f8bc4", "scanner": "scanner-primary", "fingerprint": "ce9895d7006c4b5c", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/alembic/versions/4f3493e4d2ef_add_source_url_to_samba_order.py:21"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-85066e7a1bb7c530", "level": "note", "message": {"text": "Possibly dead Python function: downgrade"}, "properties": {"repobilityId": "c03debbf11efa0c5", "scanner": "scanner-primary", "fingerprint": "85066e7a1bb7c530", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/alembic/versions/4f3493e4d2ef_add_source_url_to_samba_order.py:25"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ca9512b8d482472a", "level": "note", "message": {"text": "Possibly dead Python function: upgrade"}, "properties": {"repobilityId": "cf0b8e5e6e2f8bc4", "scanner": "scanner-primary", "fingerprint": "ca9512b8d482472a", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/alembic/versions/z_add_source_brand_name.py:20"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4944aa4476e30566", "level": "note", "message": {"text": "Possibly dead Python function: downgrade"}, "properties": {"repobilityId": "c03debbf11efa0c5", "scanner": "scanner-primary", "fingerprint": "4944aa4476e30566", "layer": "software", "severity": "low", "confidence": 1.0, "tags": ["dead-code"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/alembic/versions/z_add_source_brand_name.py:28"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-69593712da2b023f", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 frontend/src/app/samba/orders/components/UrlInputModal.tsx:25"}, "properties": {"repobilityId": "eeaba4f8e55c1f89", "scanner": "scanner-primary", "fingerprint": "69593712da2b023f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-e1699fbd95910007", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 frontend/src/app/samba/orders/components/AlarmSettingModal.tsx:58"}, "properties": {"repobilityId": "c0ce85b0f4daaf5b", "scanner": "scanner-primary", "fingerprint": "e1699fbd95910007", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-8face3ee809f52f0", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 frontend/src/app/samba/orders/components/TrackingModal.tsx:99"}, "properties": {"repobilityId": "45526c47ee8a0fcc", "scanner": "scanner-primary", "fingerprint": "8face3ee809f52f0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-2213bff8bfcc5ebc", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 frontend/src/app/samba/orders/components/OrderEditModal.tsx:38"}, "properties": {"repobilityId": "f754bce822cf13e4", "scanner": "scanner-primary", "fingerprint": "2213bff8bfcc5ebc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-6d5378c4f2304343", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 frontend/src/app/samba/orders/components/PriceHistoryModal.tsx:47"}, "properties": {"repobilityId": "53a13c10d5bc54ce", "scanner": "scanner-primary", "fingerprint": "6d5378c4f2304343", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-c5d5ef41e8250e70", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 frontend/src/app/samba/manual-products/components/ImageManagerModal.tsx:83"}, "properties": {"repobilityId": "dc2555a90ab139ec", "scanner": "scanner-primary", "fingerprint": "c5d5ef41e8250e70", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-03999ad36010be89", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 frontend/src/app/samba/collector/components/DuplicatesModal.tsx:222"}, "properties": {"repobilityId": "8fab8d4c7e606c5b", "scanner": "scanner-primary", "fingerprint": "03999ad36010be89", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-8a0253d48eaa7791", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 frontend/src/app/samba/collector/components/AiSourcingModal.tsx:69"}, "properties": {"repobilityId": "e3327c7b744de91d", "scanner": "scanner-primary", "fingerprint": "8a0253d48eaa7791", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-1543f0a5b3a06c7f", "level": "note", "message": {"text": "Icon-only button without accessible name \u2014 frontend/src/app/samba/returns/components/ReturnDetailModal.tsx:22"}, "properties": {"repobilityId": "976a8f636fb32fa1", "scanner": "scanner-primary", "fingerprint": "1543f0a5b3a06c7f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.button.no-label"]}}, {"ruleId": "scanner-ebb77f10d94a47fc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension/background.js:37"}, "properties": {"repobilityId": "e037ad0456203f49", "scanner": "scanner-primary", "fingerprint": "ebb77f10d94a47fc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-20421cfc555bdf6f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension/background-messages.js:51"}, "properties": {"repobilityId": "227eb03e357997c2", "scanner": "scanner-primary", "fingerprint": "20421cfc555bdf6f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7f3976403f552e1b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension/background-autologin.js:96"}, "properties": {"repobilityId": "edac503336852254", "scanner": "scanner-primary", "fingerprint": "7f3976403f552e1b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-43a9a2dcf0388f72", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension/content-review-musinsa.js:166"}, "properties": {"repobilityId": "30da5e726aea9b77", "scanner": "scanner-primary", "fingerprint": "43a9a2dcf0388f72", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-081fcb5da6da6078", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension/content-review-gs.js:155"}, "properties": {"repobilityId": "f872e372fabd25c9", "scanner": "scanner-primary", "fingerprint": "081fcb5da6da6078", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d6c252aea83b5c74", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension/content-review-kream.js:206"}, "properties": {"repobilityId": "624c28ccfc677bfd", "scanner": "scanner-primary", "fingerprint": "d6c252aea83b5c74", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-69f12a249c814076", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension/content-musinsa-claimlist.js:69"}, "properties": {"repobilityId": "d9a987c4234bec32", "scanner": "scanner-primary", "fingerprint": "69f12a249c814076", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c2d3695714a1e67d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension/content-ssg-dialog-suppress.js:10"}, "properties": {"repobilityId": "8b7f4d554a0741a5", "scanner": "scanner-primary", "fingerprint": "c2d3695714a1e67d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-05a0c32455a941ea", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension/content-reward-musinsa-snap.js:23"}, "properties": {"repobilityId": "6dda72dfa58f8851", "scanner": "scanner-primary", "fingerprint": "05a0c32455a941ea", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c1faf03b265c058b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension/content-review-abcmart.js:252"}, "properties": {"repobilityId": "335b333b7aab2b84", "scanner": "scanner-primary", "fingerprint": "c1faf03b265c058b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-02bda329e316c647", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension/content-review-ssg.js:168"}, "properties": {"repobilityId": "c77fd2ba0fc0dc49", "scanner": "scanner-primary", "fingerprint": "02bda329e316c647", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c47ab45445c47a76", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension/background-sourcing.js:10"}, "properties": {"repobilityId": "9c88d12267c20889", "scanner": "scanner-primary", "fingerprint": "c47ab45445c47a76", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d515034da5050177", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension/background-bootstrap.js:7"}, "properties": {"repobilityId": "0655adde8e4e8f09", "scanner": "scanner-primary", "fingerprint": "d515034da5050177", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d825ca7316f1d4c4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension/content-musinsa-orderlist.js:55"}, "properties": {"repobilityId": "7d26e35cd12ec4a3", "scanner": "scanner-primary", "fingerprint": "d825ca7316f1d4c4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b14eaeba03a3a8b0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension/kream-collect.js:21"}, "properties": {"repobilityId": "dfda32dcc21a471a", "scanner": "scanner-primary", "fingerprint": "b14eaeba03a3a8b0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-baa9155a8e580554", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension/create-icons.js:30"}, "properties": {"repobilityId": "57b3a01b97153320", "scanner": "scanner-primary", "fingerprint": "baa9155a8e580554", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b04a5d06426a5aa0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension/content-reward-abcmart-attend.js:19"}, "properties": {"repobilityId": "c327507ee55c7fee", "scanner": "scanner-primary", "fingerprint": "b04a5d06426a5aa0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-15f0e88964a391b6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension/content-review-lotteon.js:211"}, "properties": {"repobilityId": "8f98a2b1cfeb61a7", "scanner": "scanner-primary", "fingerprint": "15f0e88964a391b6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a1d1069e8d5bf059", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension/content-review-naver.js:168"}, "properties": {"repobilityId": "b7be2f0d7bb27498", "scanner": "scanner-primary", "fingerprint": "a1d1069e8d5bf059", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-eaf35ca9a1dbdf07", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension/background-kream.js:10"}, "properties": {"repobilityId": "5517d621a92ee00f", "scanner": "scanner-primary", "fingerprint": "eaf35ca9a1dbdf07", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c553568ded58d4ef", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension/recipe-cache.js:23"}, "properties": {"repobilityId": "f7453d4179a87b82", "scanner": "scanner-primary", "fingerprint": "c553568ded58d4ef", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ba24c4b24c71466b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension/content-musinsa-balance.js:10"}, "properties": {"repobilityId": "b6b5533e70267277", "scanner": "scanner-primary", "fingerprint": "ba24c4b24c71466b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-dfc4b0a93a65fef8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extension/content-reward-musinsa-attendance.js:22"}, "properties": {"repobilityId": "e7c6bbb776bf1260", "scanner": "scanner-primary", "fingerprint": "dfc4b0a93a65fef8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-686984e3ddebd3ae", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: python:3.12.3-slim"}, "properties": {"repobilityId": "34d6b97842ab85c9", "scanner": "scanner-primary", "fingerprint": "686984e3ddebd3ae", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/Dockerfile"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-aa5acaa49eb8315b", "level": "note", "message": {"text": "Containers defined but no K8s/orchestration manifest found"}, "properties": {"repobilityId": "b230ea9b68736081", "scanner": "scanner-primary", "fingerprint": "aa5acaa49eb8315b", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["coverage", "deployment"]}}, {"ruleId": "scanner-a399389f5f17b106", "level": "error", "message": {"text": "Runtime dotenv file present in repo: frontend/.env.production"}, "properties": {"repobilityId": "f727d22a89e309c5", "scanner": "scanner-primary", "fingerprint": "a399389f5f17b106", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["secrets", "config", "env-file", "runtime-env"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/.env.production"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c58f0b478d430506", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in frontend/src/app/samba/login/page.tsx:29"}, "properties": {"repobilityId": "f1e40da2478bb710", "scanner": "scanner-primary", "fingerprint": "c58f0b478d430506", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/src/app/samba/login/page.tsx"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-82f9ee370d767cc7", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in extension/background-sourcing.js:3831"}, "properties": {"repobilityId": "0dd19017e62415bf", "scanner": "scanner-primary", "fingerprint": "82f9ee370d767cc7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "extension/background-sourcing.js"}, "region": {"startLine": 3831}}}]}, {"ruleId": "scanner-ebd4a495968b7d03", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in extension/recipe-executor.js:112"}, "properties": {"repobilityId": "7c58403e1f5cd0ed", "scanner": "scanner-primary", "fingerprint": "ebd4a495968b7d03", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "extension/recipe-executor.js"}, "region": {"startLine": 112}}}]}, {"ruleId": "scanner-67eedaff4545d81b", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in tools/lotteon_daemon/daemon.py:2558"}, "properties": {"repobilityId": "27d4c2b0c5e50625", "scanner": "scanner-primary", "fingerprint": "67eedaff4545d81b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "tools/lotteon_daemon/daemon.py"}, "region": {"startLine": 2558}}}]}, {"ruleId": "scanner-0a2b216c6e9d633d", "level": "error", "message": {"text": "Possible secret in backend/scripts/check_missing_tables.py"}, "properties": {"repobilityId": "14a7d356a08dac6a", "scanner": "scanner-primary", "fingerprint": "0a2b216c6e9d633d", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/scripts/check_missing_tables.py"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-5b31b21129fdd4a6", "level": "error", "message": {"text": "Possible secret in backend/scripts/fill_missing_category_mappings.py"}, "properties": {"repobilityId": "c95bd57a3ae1d96c", "scanner": "scanner-primary", "fingerprint": "5b31b21129fdd4a6", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/scripts/fill_missing_category_mappings.py"}, "region": {"startLine": 204}}}]}, {"ruleId": "scanner-bf85d9431572e63c", "level": "error", "message": {"text": "Possible secret in backend/scripts/create_samba_jobs.py"}, "properties": {"repobilityId": "9b6851ce9284ba47", "scanner": "scanner-primary", "fingerprint": "bf85d9431572e63c", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/scripts/create_samba_jobs.py"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-a13c997d886c14ee", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in backend/backend/api/v1/routers/samba/proxy/config.py:217"}, "properties": {"repobilityId": "1d1385e7d4b6d97d", "scanner": "scanner-primary", "fingerprint": "a13c997d886c14ee", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/backend/api/v1/routers/samba/proxy/config.py"}, "region": {"startLine": 217}}}]}, {"ruleId": "scanner-e52e117896ce98c0", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in backend/backend/api/v1/routers/samba/proxy/kream.py:294"}, "properties": {"repobilityId": "ab408edff18bb552", "scanner": "scanner-primary", "fingerprint": "e52e117896ce98c0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/backend/api/v1/routers/samba/proxy/kream.py"}, "region": {"startLine": 294}}}]}, {"ruleId": "scanner-72b0b6092668566e", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f505a88dbc954ac0", "scanner": "scanner-primary", "fingerprint": "72b0b6092668566e", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-vm.yml"}, "region": {"startLine": 37}}}]}, {"ruleId": "scanner-72b0b6092668566e", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "4e0d36ff81833ca5", "scanner": "scanner-primary", "fingerprint": "72b0b6092668566e", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-vm.yml"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-97b9d30ff8fc41a5", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "f6579257e14f6e81", "scanner": "scanner-primary", "fingerprint": "97b9d30ff8fc41a5", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/alembic-check.yml"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-fe22acd41e38e015", "level": "note", "message": {"text": "Very large file: frontend/src/app/samba/settings/config.ts (859 lines)"}, "properties": {"repobilityId": "a38ec89b68f0122a", "scanner": "scanner-primary", "fingerprint": "fe22acd41e38e015", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-71bba60d38c3ddba", "level": "note", "message": {"text": "Very large file: frontend/src/app/samba/orders/page.tsx (1258 lines)"}, "properties": {"repobilityId": "8a4b23ddfc87c582", "scanner": "scanner-primary", "fingerprint": "71bba60d38c3ddba", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c8ea2f01745ce60b", "level": "note", "message": {"text": "Very large file: frontend/src/app/samba/warroom/page.tsx (1418 lines)"}, "properties": {"repobilityId": "fc1ebd238734556a", "scanner": "scanner-primary", "fingerprint": "c8ea2f01745ce60b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8eb9ea381da7f8a3", "level": "note", "message": {"text": "Very large file: frontend/src/app/samba/cs/page.tsx (1172 lines)"}, "properties": {"repobilityId": "45da2f423dc2c340", "scanner": "scanner-primary", "fingerprint": "8eb9ea381da7f8a3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c983757472508f91", "level": "note", "message": {"text": "Very large file: frontend/src/app/samba/returns/page.tsx (1030 lines)"}, "properties": {"repobilityId": "c716ad212d0c9169", "scanner": "scanner-primary", "fingerprint": "c983757472508f91", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fb31458232da1301", "level": "note", "message": {"text": "Very large file: frontend/src/app/samba/categories/page.tsx (2117 lines)"}, "properties": {"repobilityId": "871b500a1a5ec6ac", "scanner": "scanner-primary", "fingerprint": "fb31458232da1301", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9221eb8ec3680fc1", "level": "note", "message": {"text": "Very large file: frontend/src/app/samba/policies/page.tsx (2511 lines)"}, "properties": {"repobilityId": "7a40f957ea01c123", "scanner": "scanner-primary", "fingerprint": "9221eb8ec3680fc1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3efccfe70c9b1d78", "level": "note", "message": {"text": "Very large file: frontend/src/app/samba/products/page.tsx (3083 lines)"}, "properties": {"repobilityId": "63ba0b090c4b7a23", "scanner": "scanner-primary", "fingerprint": "3efccfe70c9b1d78", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5390d2cadf682b01", "level": "note", "message": {"text": "Very large file: frontend/src/app/samba/products/components/ProductCard.tsx (2305 lines)"}, "properties": {"repobilityId": "eafc87725fb08569", "scanner": "scanner-primary", "fingerprint": "5390d2cadf682b01", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bdf9842979c717fc", "level": "note", "message": {"text": "Very large file: frontend/src/app/samba/shipments/page.tsx (1790 lines)"}, "properties": {"repobilityId": "4348da3d7d4cbc1f", "scanner": "scanner-primary", "fingerprint": "bdf9842979c717fc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b18865b9a14cfe6f", "level": "note", "message": {"text": "Very large file: frontend/src/lib/samba/legacy.ts (2826 lines)"}, "properties": {"repobilityId": "40f8e52088b2aee5", "scanner": "scanner-primary", "fingerprint": "b18865b9a14cfe6f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fb6e7295bfc9c667", "level": "note", "message": {"text": "Very large file: extension/background-autologin.js (1481 lines)"}, "properties": {"repobilityId": "c626b73a6149a529", "scanner": "scanner-primary", "fingerprint": "fb6e7295bfc9c667", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2df7e52134b08e88", "level": "note", "message": {"text": "Very large file: extension/background-sourcing.js (4327 lines)"}, "properties": {"repobilityId": "8e23137364c0b25f", "scanner": "scanner-primary", "fingerprint": "2df7e52134b08e88", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-4143de6b823283fb", "level": "note", "message": {"text": "Very large file: tools/lotteon_daemon/daemon.py (3696 lines)"}, "properties": {"repobilityId": "efd141a8c108eafa", "scanner": "scanner-primary", "fingerprint": "4143de6b823283fb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e72682b274e84600", "level": "note", "message": {"text": "Very large file: backend/backend/lifecycle.py (1585 lines)"}, "properties": {"repobilityId": "6dc24e8eed653891", "scanner": "scanner-primary", "fingerprint": "e72682b274e84600", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d9dae8479a1e4fab", "level": "note", "message": {"text": "Very large file: backend/backend/api/v1/routers/samba/shipment.py (2241 lines)"}, "properties": {"repobilityId": "1b41f3639424b453", "scanner": "scanner-primary", "fingerprint": "d9dae8479a1e4fab", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c030c3cb67a3347c", "level": "note", "message": {"text": "Very large file: backend/backend/api/v1/routers/samba/collector_autotune.py (5277 lines)"}, "properties": {"repobilityId": "f2ea6293c5ee8679", "scanner": "scanner-primary", "fingerprint": "c030c3cb67a3347c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-96ad726bc4f53db3", "level": "note", "message": {"text": "Very large file: backend/backend/api/v1/routers/samba/collector.py (2457 lines)"}, "properties": {"repobilityId": "034119b01abe40bc", "scanner": "scanner-primary", "fingerprint": "96ad726bc4f53db3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fc64a02ca788451f", "level": "note", "message": {"text": "Very large file: backend/backend/api/v1/routers/samba/sourcing_account.py (1606 lines)"}, "properties": {"repobilityId": "b3b0c374c53333ed", "scanner": "scanner-primary", "fingerprint": "fc64a02ca788451f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c204a49a6be9b8e6", "level": "note", "message": {"text": "Very large file: backend/backend/api/v1/routers/samba/returns.py (2800 lines)"}, "properties": {"repobilityId": "145f16134b78a0ab", "scanner": "scanner-primary", "fingerprint": "c204a49a6be9b8e6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-bf33a0f4f827ab85", "level": "note", "message": {"text": "Very large file: backend/backend/api/v1/routers/samba/cs_inquiry.py (3666 lines)"}, "properties": {"repobilityId": "33a2723fb006963e", "scanner": "scanner-primary", "fingerprint": "bf33a0f4f827ab85", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-dba1c063a782f6ba", "level": "note", "message": {"text": "Very large file: backend/backend/api/v1/routers/samba/order.py (10576 lines)"}, "properties": {"repobilityId": "4cb87d8ab6ff998f", "scanner": "scanner-primary", "fingerprint": "dba1c063a782f6ba", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0e1bf719bc238908", "level": "note", "message": {"text": "Very large file: backend/backend/api/v1/routers/samba/collector_refresh.py (1180 lines)"}, "properties": {"repobilityId": "e64cb00e5af13d12", "scanner": "scanner-primary", "fingerprint": "0e1bf719bc238908", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-13c7fa2c7ee8b2f5", "level": "note", "message": {"text": "Very large file: backend/backend/api/v1/routers/samba/collector_collection/collect.py (1657 lines)"}, "properties": {"repobilityId": "211d0cdfd8e05c78", "scanner": "scanner-primary", "fingerprint": "13c7fa2c7ee8b2f5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-95dc99b0045d44a3", "level": "note", "message": {"text": "Very large file: backend/backend/api/v1/routers/samba/proxy/ai_tags.py (1668 lines)"}, "properties": {"repobilityId": "1694d7f0d09491a0", "scanner": "scanner-primary", "fingerprint": "95dc99b0045d44a3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-48d6078e72e6b6e4", "level": "note", "message": {"text": "Very large file: backend/backend/domain/samba/shipment/service.py (3554 lines)"}, "properties": {"repobilityId": "e1219ab38946ad4c", "scanner": "scanner-primary", "fingerprint": "48d6078e72e6b6e4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5a67ba72c97532e6", "level": "note", "message": {"text": "Very large file: backend/backend/domain/samba/tracking_sync/service.py (1476 lines)"}, "properties": {"repobilityId": "5f919abe619e524e", "scanner": "scanner-primary", "fingerprint": "5a67ba72c97532e6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c2a84243e1aa89ea", "level": "note", "message": {"text": "Very large file: backend/backend/domain/samba/image/service.py (2134 lines)"}, "properties": {"repobilityId": "cfb26939037c4933", "scanner": "scanner-primary", "fingerprint": "c2a84243e1aa89ea", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-99d68c3faf28361a", "level": "note", "message": {"text": "Very large file: backend/backend/domain/samba/ai_sourcing/service.py (1527 lines)"}, "properties": {"repobilityId": "cb4f3218435597b1", "scanner": "scanner-primary", "fingerprint": "99d68c3faf28361a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-cd1f81e322710f3f", "level": "note", "message": {"text": "Very large file: backend/backend/domain/samba/proxy/esmplus.py (2617 lines)"}, "properties": {"repobilityId": "edc9d1d6c58f9b20", "scanner": "scanner-primary", "fingerprint": "cd1f81e322710f3f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-7d64703d5b9e5d5f", "level": "note", "message": {"text": "Very large file: backend/backend/domain/samba/proxy/smartstore.py (2709 lines)"}, "properties": {"repobilityId": "7d403c3e324efc90", "scanner": "scanner-primary", "fingerprint": "7d64703d5b9e5d5f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e34af5c54bcc22f9", "level": "note", "message": {"text": "Very large file: backend/backend/domain/samba/proxy/ebay.py (1719 lines)"}, "properties": {"repobilityId": "294af714ae9270c2", "scanner": "scanner-primary", "fingerprint": "e34af5c54bcc22f9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-26a29090158b7d3e", "level": "note", "message": {"text": "Very large file: backend/backend/domain/samba/proxy/cafe24.py (1860 lines)"}, "properties": {"repobilityId": "f0f595ad7abee287", "scanner": "scanner-primary", "fingerprint": "26a29090158b7d3e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fecc8a67ecb58c8a", "level": "note", "message": {"text": "Very large file: backend/backend/domain/samba/proxy/elevenst.py (3314 lines)"}, "properties": {"repobilityId": "8f63b036af92a51b", "scanner": "scanner-primary", "fingerprint": "fecc8a67ecb58c8a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-61c1b10ae8e9a5f3", "level": "note", "message": {"text": "Very large file: backend/backend/domain/samba/proxy/coupang.py (2090 lines)"}, "properties": {"repobilityId": "96f641f836490437", "scanner": "scanner-primary", "fingerprint": "61c1b10ae8e9a5f3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2e54fd7dd9684582", "level": "note", "message": {"text": "Very large file: backend/backend/domain/samba/proxy/musinsa.py (2254 lines)"}, "properties": {"repobilityId": "a5b8a873ab120978", "scanner": "scanner-primary", "fingerprint": "2e54fd7dd9684582", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-dec2507785308c62", "level": "note", "message": {"text": "Very large file: backend/backend/domain/samba/proxy/notice_utils.py (1363 lines)"}, "properties": {"repobilityId": "276ffd7fa247cb87", "scanner": "scanner-primary", "fingerprint": "dec2507785308c62", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-406972825e402835", "level": "note", "message": {"text": "Very large file: backend/backend/domain/samba/proxy/abcmart.py (2346 lines)"}, "properties": {"repobilityId": "bffa593cd5a1182c", "scanner": "scanner-primary", "fingerprint": "406972825e402835", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-5cb72452d1b892b5", "level": "note", "message": {"text": "Very large file: backend/backend/domain/samba/proxy/gsshop_sourcing.py (1324 lines)"}, "properties": {"repobilityId": "60b57337ad24881a", "scanner": "scanner-primary", "fingerprint": "5cb72452d1b892b5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6f1e83444e1fcab0", "level": "note", "message": {"text": "Very large file: backend/backend/domain/samba/proxy/lottehome.py (1390 lines)"}, "properties": {"repobilityId": "51caf4eec4010be1", "scanner": "scanner-primary", "fingerprint": "6f1e83444e1fcab0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-dfec387d6d90417b", "level": "note", "message": {"text": "Very large file: backend/backend/domain/samba/proxy/ssg_sourcing.py (3026 lines)"}, "properties": {"repobilityId": "4c52719cd9ce71e2", "scanner": "scanner-primary", "fingerprint": "dfec387d6d90417b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-d8d2ffb26940dce2", "level": "note", "message": {"text": "Very large file: backend/backend/domain/samba/proxy/ssg.py (2681 lines)"}, "properties": {"repobilityId": "3963fbc84bfc6161", "scanner": "scanner-primary", "fingerprint": "d8d2ffb26940dce2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ef8c8ed24190afbe", "level": "note", "message": {"text": "Very large file: backend/backend/domain/samba/proxy/lotteon/api_client.py (2482 lines)"}, "properties": {"repobilityId": "e2604a7d7682dfec", "scanner": "scanner-primary", "fingerprint": "ef8c8ed24190afbe", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8841beba13104ab2", "level": "note", "message": {"text": "Very large file: backend/backend/domain/samba/proxy/lotteon/detail_parsers.py (1398 lines)"}, "properties": {"repobilityId": "c54012cfda0c9fc2", "scanner": "scanner-primary", "fingerprint": "8841beba13104ab2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-63880027c06a6983", "level": "note", "message": {"text": "Very large file: backend/backend/domain/samba/tetris/service.py (1703 lines)"}, "properties": {"repobilityId": "3630c8c42a89103f", "scanner": "scanner-primary", "fingerprint": "63880027c06a6983", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-69cc4d2c18bd9dfe", "level": "note", "message": {"text": "Very large file: backend/backend/domain/samba/collector/refresher.py (1725 lines)"}, "properties": {"repobilityId": "282469b1992451ae", "scanner": "scanner-primary", "fingerprint": "69cc4d2c18bd9dfe", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9b3303a57a0dd840", "level": "note", "message": {"text": "Very large file: backend/backend/domain/samba/category/seed_service.py (1848 lines)"}, "properties": {"repobilityId": "9bdd50f409e85749", "scanner": "scanner-primary", "fingerprint": "9b3303a57a0dd840", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e2d4a1bcb40c9371", "level": "note", "message": {"text": "Very large file: backend/backend/domain/samba/category/rules.py (1623 lines)"}, "properties": {"repobilityId": "3ea85773ed52586b", "scanner": "scanner-primary", "fingerprint": "e2d4a1bcb40c9371", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-8f79758fb8fda940", "level": "note", "message": {"text": "Very large file: backend/backend/domain/samba/plugins/markets/smartstore.py (1114 lines)"}, "properties": {"repobilityId": "fb9408439922fb2e", "scanner": "scanner-primary", "fingerprint": "8f79758fb8fda940", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e8344896a2e9910c", "level": "note", "message": {"text": "Very large file: backend/backend/domain/samba/plugins/markets/cafe24.py (1564 lines)"}, "properties": {"repobilityId": "e848909ddc39bad7", "scanner": "scanner-primary", "fingerprint": "e8344896a2e9910c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-60d455f4d3d83e7d", "level": "note", "message": {"text": "Very large file: backend/backend/domain/samba/plugins/markets/lotteon.py (3321 lines)"}, "properties": {"repobilityId": "721e095b0d60554c", "scanner": "scanner-primary", "fingerprint": "60d455f4d3d83e7d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-18b00ba24cd25e85", "level": "note", "message": {"text": "Very large file: backend/backend/domain/samba/job/worker.py (6208 lines)"}, "properties": {"repobilityId": "2e0947813e178579", "scanner": "scanner-primary", "fingerprint": "18b00ba24cd25e85", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-6893a6c8b0861585", "level": "warning", "message": {"text": "Very low test-to-source ratio"}, "properties": {"repobilityId": "54a7de3f06314bf0", "scanner": "scanner-primary", "fingerprint": "6893a6c8b0861585", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["tests", "coverage"]}}, {"ruleId": "scanner-b3ed68815bca2f8c", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: package.json"}, "properties": {"repobilityId": "7edae0550c126386", "scanner": "scanner-primary", "fingerprint": "b3ed68815bca2f8c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "22aa1cda1556952b", "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": "bd8a1057b4a269e9", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "d2cd131fe563bd42", "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": "bf428bcc5916d9c9", "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": "14336d3fa1c72cba", "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": "da067d694eceabf4", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-823c1821408ea6c3", "level": "warning", "message": {"text": "Agent authority lacks a verifier contract: frontend/.claude/settings.local.json"}, "properties": {"repobilityId": "3d0dbcc18c33f16b", "scanner": "scanner-primary", "fingerprint": "823c1821408ea6c3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["agent-instructions", "verification", "claude_instruction"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "frontend/.claude/settings.local.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3e5b1f2b3a603582", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/app/samba/settings/hooks/useStoreSettings.ts:399"}, "properties": {"repobilityId": "611705192629af9f", "scanner": "scanner-primary", "fingerprint": "3e5b1f2b3a603582", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1c85493aa191476f", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/app/samba/orders/page.tsx:440"}, "properties": {"repobilityId": "9ad99c88656d724f", "scanner": "scanner-primary", "fingerprint": "1c85493aa191476f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-70f23cb378632d8f", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/app/samba/orders/utils/copyHelpers.tsx:53"}, "properties": {"repobilityId": "74a8250178ad1727", "scanner": "scanner-primary", "fingerprint": "70f23cb378632d8f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fb37b8c886c3fd7d", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/app/samba/orders/components/OrderInfoCell.tsx:87"}, "properties": {"repobilityId": "8eb8c3839f256f7d", "scanner": "scanner-primary", "fingerprint": "fb37b8c886c3fd7d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-481f8f4db95e7a60", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/app/samba/orders/hooks/useOrderLinks.ts:45"}, "properties": {"repobilityId": "41745b0eab4062d6", "scanner": "scanner-primary", "fingerprint": "481f8f4db95e7a60", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3db8430f08922296", "level": "none", "message": {"text": "Commented-code block (7 lines) in frontend/src/app/samba/warroom/page.tsx:299"}, "properties": {"repobilityId": "60eed92b0f0d5d05", "scanner": "scanner-primary", "fingerprint": "3db8430f08922296", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0ceec5f2045006f3", "level": "none", "message": {"text": "Commented-code block (6 lines) in frontend/src/app/samba/returns/page.tsx:294"}, "properties": {"repobilityId": "f2bdace0e38c3985", "scanner": "scanner-primary", "fingerprint": "0ceec5f2045006f3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-767f45189bfc4b1a", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/app/samba/categories/constants.ts:3"}, "properties": {"repobilityId": "5a67d79f76d57a43", "scanner": "scanner-primary", "fingerprint": "767f45189bfc4b1a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-681fb8936ab8f879", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/app/samba/extension-link/page.tsx:15"}, "properties": {"repobilityId": "5abfe6ba7c8efdec", "scanner": "scanner-primary", "fingerprint": "681fb8936ab8f879", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc277682bf273822", "level": "note", "message": {"text": "Legacy-named symbol `onRemoveLegacy` in frontend/src/app/samba/policies/tetris/AccountBlock.tsx:250"}, "properties": {"repobilityId": "57abfa5213917948", "scanner": "scanner-primary", "fingerprint": "cc277682bf273822", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-57d86693aa48a6ac", "level": "note", "message": {"text": "Legacy-named symbol `onRemoveLegacy` in frontend/src/app/samba/policies/tetris/BrandBlock.tsx:19"}, "properties": {"repobilityId": "47a9bd57e967311a", "scanner": "scanner-primary", "fingerprint": "57d86693aa48a6ac", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-fc7e5df2d1e9becd", "level": "note", "message": {"text": "Legacy-named symbol `is_legacy` in frontend/src/app/samba/policies/tetris/UnassignedPool.tsx:113"}, "properties": {"repobilityId": "a6b9d5a82616921c", "scanner": "scanner-primary", "fingerprint": "fc7e5df2d1e9becd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-038d19500bc3191d", "level": "note", "message": {"text": "Legacy-named symbol `is_legacy` in frontend/src/app/samba/policies/tetris/useTetris.ts:93"}, "properties": {"repobilityId": "c944bde321f1eee5", "scanner": "scanner-primary", "fingerprint": "038d19500bc3191d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3818de597c4819e1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/lib/api.ts:171"}, "properties": {"repobilityId": "d76e5aade04e10ee", "scanner": "scanner-primary", "fingerprint": "3818de597c4819e1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-8d77ab9e783e4b76", "level": "note", "message": {"text": "Legacy-named symbol `samba_active_accounts_v1` in frontend/src/lib/samba/legacy.ts:1099"}, "properties": {"repobilityId": "530065af2d2e5032", "scanner": "scanner-primary", "fingerprint": "8d77ab9e783e4b76", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-57affe5b217f67aa", "level": "none", "message": {"text": "Commented-code block (5 lines) in frontend/src/lib/samba/legacy.ts:419"}, "properties": {"repobilityId": "0307e2943c3af90c", "scanner": "scanner-primary", "fingerprint": "57affe5b217f67aa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ea76b8b475c7c53d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/lib/samba/legacy.ts:38"}, "properties": {"repobilityId": "d8937656475e6be0", "scanner": "scanner-primary", "fingerprint": "ea76b8b475c7c53d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-aa09e2a5bce1d1dd", "level": "note", "message": {"text": "Legacy-named symbol `is_legacy` in frontend/src/lib/samba/api/tetris.ts:18"}, "properties": {"repobilityId": "c5a467f94535f142", "scanner": "scanner-primary", "fingerprint": "aa09e2a5bce1d1dd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-7bcc8ffecf4c66aa", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 frontend/src/lib/samba/api/license.ts:13"}, "properties": {"repobilityId": "6ee9fc3517b22b94", "scanner": "scanner-primary", "fingerprint": "7bcc8ffecf4c66aa", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7c3f993bb7dc2b21", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 extension/background.js:268"}, "properties": {"repobilityId": "092bbd8d6a108122", "scanner": "scanner-primary", "fingerprint": "7c3f993bb7dc2b21", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7b0d3e41bbde336b", "level": "none", "message": {"text": "Commented-code block (5 lines) in extension/background-autologin.js:5"}, "properties": {"repobilityId": "2ba43fb65c71dfe5", "scanner": "scanner-primary", "fingerprint": "7b0d3e41bbde336b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aaa3dc6fb03177b6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 extension/background-autologin.js:89"}, "properties": {"repobilityId": "cf2d8ef35e58c46c", "scanner": "scanner-primary", "fingerprint": "aaa3dc6fb03177b6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-4a3652d70d24eca8", "level": "none", "message": {"text": "Commented-code block (5 lines) in extension/content-samba-deviceid.js:1"}, "properties": {"repobilityId": "add054a6737c7766", "scanner": "scanner-primary", "fingerprint": "4a3652d70d24eca8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9face2ff19dbee8f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 extension/content-musinsa-claimlist.js:7"}, "properties": {"repobilityId": "f0ced8ec6412fc44", "scanner": "scanner-primary", "fingerprint": "9face2ff19dbee8f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-abf6503868edbb0c", "level": "none", "message": {"text": "Commented-code block (6 lines) in extension/content-reward-musinsa-snap.js:1"}, "properties": {"repobilityId": "51ec30844cf385c4", "scanner": "scanner-primary", "fingerprint": "abf6503868edbb0c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-922242247840a1dc", "level": "none", "message": {"text": "Commented-code block (5 lines) in extension/background-sourcing.js:314"}, "properties": {"repobilityId": "9f4c9265964e2644", "scanner": "scanner-primary", "fingerprint": "922242247840a1dc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0fb3e3cc1057c42b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 extension/background-sourcing.js:421"}, "properties": {"repobilityId": "569a9497b50607f5", "scanner": "scanner-primary", "fingerprint": "0fb3e3cc1057c42b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-89b293b69063df23", "level": "none", "message": {"text": "Commented-code block (6 lines) in extension/config.js:1"}, "properties": {"repobilityId": "c617ab9ed98ea55a", "scanner": "scanner-primary", "fingerprint": "89b293b69063df23", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-77c4dd5425654bff", "level": "none", "message": {"text": "Commented-code block (5 lines) in extension/content-tracking-musinsa.js:179"}, "properties": {"repobilityId": "8fd51a22b7d3df46", "scanner": "scanner-primary", "fingerprint": "77c4dd5425654bff", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e61dcd96a9b73292", "level": "none", "message": {"text": "Commented-code block (5 lines) in extension/popup.js:1"}, "properties": {"repobilityId": "3a8c6a078f96275b", "scanner": "scanner-primary", "fingerprint": "e61dcd96a9b73292", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf4cae70ce6149bf", "level": "none", "message": {"text": "Commented-code block (5 lines) in extension/content-review-naver.js:1"}, "properties": {"repobilityId": "890256ad87fa31fb", "scanner": "scanner-primary", "fingerprint": "bf4cae70ce6149bf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b4420c5b2f6f3c56", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 extension/offscreen-cancel.js:24"}, "properties": {"repobilityId": "e35a0faf3088fbf8", "scanner": "scanner-primary", "fingerprint": "b4420c5b2f6f3c56", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-40e03923e4707956", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 extension/recipe-executor.js:109"}, "properties": {"repobilityId": "8c530cd03c7395da", "scanner": "scanner-primary", "fingerprint": "40e03923e4707956", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-b53b4bd83fdce371", "level": "none", "message": {"text": "Commented-code block (5 lines) in extension/background-core.js:17"}, "properties": {"repobilityId": "5b8769c6be06788c", "scanner": "scanner-primary", "fingerprint": "b53b4bd83fdce371", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2be314f9776dcd0e", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 extension/background-core.js:70"}, "properties": {"repobilityId": "8ca18f3edcc11117", "scanner": "scanner-primary", "fingerprint": "2be314f9776dcd0e", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6baa8152ecb804ab", "level": "none", "message": {"text": "Commented-code block (6 lines) in extension/content-reward-musinsa-attendance.js:1"}, "properties": {"repobilityId": "be6cdb26b3d6874b", "scanner": "scanner-primary", "fingerprint": "6baa8152ecb804ab", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-04af34b255982c2f", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 extension/content-reward-musinsa-attendance.js:36"}, "properties": {"repobilityId": "a5109b6fdadc4d30", "scanner": "scanner-primary", "fingerprint": "04af34b255982c2f", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-96e74f139885c25d", "level": "none", "message": {"text": "Commented-code block (6 lines) in tools/lotteon_daemon/daemon.py:84"}, "properties": {"repobilityId": "49ab6d7ae3e4f9ca", "scanner": "scanner-primary", "fingerprint": "96e74f139885c25d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9901f12f09031b3a", "level": "none", "message": {"text": "Commented-code block (5 lines) in tools/lotteon_daemon/site_handlers.py:409"}, "properties": {"repobilityId": "e4938bf8c1787277", "scanner": "scanner-primary", "fingerprint": "9901f12f09031b3a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6fa550c4b95ec5f3", "level": "warning", "message": {"text": "Network/subprocess call without timeout or try/except \u2014 backend/scripts/check_migrations.py:17"}, "properties": {"repobilityId": "d5c98287415d7f31", "scanner": "scanner-primary", "fingerprint": "6fa550c4b95ec5f3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-382f26df8485cb29", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/scripts/local_bg_worker.py:329"}, "properties": {"repobilityId": "588064871a3df579", "scanner": "scanner-primary", "fingerprint": "382f26df8485cb29", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0c216802c047cf6c", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/alembic/versions/zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_autotune_cycle_idx.py:36"}, "properties": {"repobilityId": "2f661c698350cf1e", "scanner": "scanner-primary", "fingerprint": "0c216802c047cf6c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c0bec5af4d446d2", "level": "note", "message": {"text": "Legacy-named symbol `uq_scp_tenant_source_product_v2` in backend/alembic/versions/zzzzzzzzzzzzzzz_dedupe_collected_product_unique.py:12"}, "properties": {"repobilityId": "37fc01e384256118", "scanner": "scanner-primary", "fingerprint": "7c0bec5af4d446d2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-043a78e08222de42", "level": "note", "message": {"text": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/4c81abda9e0e_samba_return\uc5d0_customer_phone_check_date_.py:24"}, "properties": {"repobilityId": "b7731891739f0c5b", "scanner": "scanner-primary", "fingerprint": "043a78e08222de42", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-61484c9b2b639f86", "level": "note", "message": {"text": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/z_add_return_phone_sourcing_cells.py:36"}, "properties": {"repobilityId": "7d7d726a3c3f7e48", "scanner": "scanner-primary", "fingerprint": "61484c9b2b639f86", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-b3edf830ea789123", "level": "note", "message": {"text": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_backfill_market_account_esm_toss.py:98"}, "properties": {"repobilityId": "444531ac752b01bb", "scanner": "scanner-primary", "fingerprint": "b3edf830ea789123", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-81df5e87036f4c74", "level": "note", "message": {"text": "Stub function `upgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/zzzzzzzzzzzzzzzzzzzzzzzz_merge_heads_postal_sales.py:24"}, "properties": {"repobilityId": "370d3df2e8c6a317", "scanner": "scanner-primary", "fingerprint": "81df5e87036f4c74", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-042e09b0c09a3270", "level": "note", "message": {"text": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/zzz_return_collect_tracking.py:64"}, "properties": {"repobilityId": "0d27e86c6aadff88", "scanner": "scanner-primary", "fingerprint": "042e09b0c09a3270", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-1cdd9752bd9d1954", "level": "note", "message": {"text": "Stub function `upgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/z_merge_upstream_ebay_heads.py:24"}, "properties": {"repobilityId": "1c5b4c08291cf3a3", "scanner": "scanner-primary", "fingerprint": "1cdd9752bd9d1954", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-a62151953f3d790a", "level": "note", "message": {"text": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/w2x3y4z5a6b7_add_missing_samba_return_columns.py:64"}, "properties": {"repobilityId": "580f749066ac4ac1", "scanner": "scanner-primary", "fingerprint": "a62151953f3d790a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-c895bf06960dddf2", "level": "note", "message": {"text": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/z_fix_autotune_missing_columns.py:40"}, "properties": {"repobilityId": "09cfce107bbc84d1", "scanner": "scanner-primary", "fingerprint": "c895bf06960dddf2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-d54c417f27ed4f36", "level": "note", "message": {"text": "Stub function `upgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/zzzzzzzzzzzz_merge_heads_lotteon_dedup_orderer_name.py:22"}, "properties": {"repobilityId": "e284f4e4c928c745", "scanner": "scanner-primary", "fingerprint": "d54c417f27ed4f36", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-01d2d5255ae887dc", "level": "note", "message": {"text": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/202605011300_fix_lotteon_exchange_status.py:39"}, "properties": {"repobilityId": "4ff517f255f76f81", "scanner": "scanner-primary", "fingerprint": "01d2d5255ae887dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-d61c31d2a53f47e1", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/alembic/versions/dd3eaff7233e_add_is_unregistered_to_collected_product.py:20"}, "properties": {"repobilityId": "5084150bfc0d71d8", "scanner": "scanner-primary", "fingerprint": "d61c31d2a53f47e1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e728865b6f9a3adf", "level": "note", "message": {"text": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/add_ssg_cs_columns.py:31"}, "properties": {"repobilityId": "f66ea98325b1c568", "scanner": "scanner-primary", "fingerprint": "e728865b6f9a3adf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-760c5b3c10528cb7", "level": "note", "message": {"text": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/z_add_return_editable_cells.py:31"}, "properties": {"repobilityId": "b45a1d21d2206124", "scanner": "scanner-primary", "fingerprint": "760c5b3c10528cb7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-40886f1dbdbbec14", "level": "note", "message": {"text": "Legacy-named symbol `exists_old` in backend/alembic/versions/zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_order_unique_with_seq.py:41"}, "properties": {"repobilityId": "c2eb88c02fda083a", "scanner": "scanner-primary", "fingerprint": "40886f1dbdbbec14", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5063461decc1bda0", "level": "note", "message": {"text": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/zzzzzzzz_cs_inquiry_missing_columns.py:106"}, "properties": {"repobilityId": "b5da7828123cd468", "scanner": "scanner-primary", "fingerprint": "5063461decc1bda0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-1c48295f1860a171", "level": "note", "message": {"text": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_dedupe_market_default.py:48"}, "properties": {"repobilityId": "6c623081b155fcbb", "scanner": "scanner-primary", "fingerprint": "1c48295f1860a171", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-32702d7933cd4313", "level": "note", "message": {"text": "Stub function `downgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/zz_cs_automation_draft_cols.py:58"}, "properties": {"repobilityId": "73b119b354980dda", "scanner": "scanner-primary", "fingerprint": "32702d7933cd4313", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-8b3d69755f66e31c", "level": "note", "message": {"text": "Stub function `upgrade` (body is just `pass`/`return`) \u2014 backend/alembic/versions/zz_merge_ebay_and_dedup.py:24"}, "properties": {"repobilityId": "5f24d6e57163985f", "scanner": "scanner-primary", "fingerprint": "8b3d69755f66e31c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "empty-handler", "dead-code"]}}, {"ruleId": "scanner-02e6d59c8e428b3e", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/backend/app_factory.py:113"}, "properties": {"repobilityId": "4201bd2a681cf8fe", "scanner": "scanner-primary", "fingerprint": "02e6d59c8e428b3e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1d8ae61b0699dfbf", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/backend/lifecycle.py:546"}, "properties": {"repobilityId": "848a113493824bc7", "scanner": "scanner-primary", "fingerprint": "1d8ae61b0699dfbf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5d006a9e5dd25a01", "level": "note", "message": {"text": "Legacy-named symbol `is_legacy` in backend/backend/dtos/samba/tetris.py:21"}, "properties": {"repobilityId": "2d59c0527b536da9", "scanner": "scanner-primary", "fingerprint": "5d006a9e5dd25a01", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ca3b437b2521d9e0", "level": "note", "message": {"text": "Legacy-named symbol `regs_old` in backend/backend/api/v1/routers/samba/shipment.py:968"}, "properties": {"repobilityId": "2f7162cc6b89a9ba", "scanner": "scanner-primary", "fingerprint": "ca3b437b2521d9e0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-5d82bff944412037", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/backend/api/v1/routers/samba/collector_common.py:456"}, "properties": {"repobilityId": "f3f7af1458de26cb", "scanner": "scanner-primary", "fingerprint": "5d82bff944412037", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-39b1c2a7e15970b4", "level": "note", "message": {"text": "Legacy-named symbol `_disp_old` in backend/backend/api/v1/routers/samba/collector_autotune.py:2345"}, "properties": {"repobilityId": "89283af8a837ca2b", "scanner": "scanner-primary", "fingerprint": "39b1c2a7e15970b4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-04f26765629bee8b", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/backend/api/v1/routers/samba/collector_autotune.py:416"}, "properties": {"repobilityId": "5c34f9faeb0f157f", "scanner": "scanner-primary", "fingerprint": "04f26765629bee8b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc4d08d8ff855141", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/backend/api/v1/routers/samba/forbidden.py:282"}, "properties": {"repobilityId": "9fdde3fcf8aeaad2", "scanner": "scanner-primary", "fingerprint": "bc4d08d8ff855141", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d45388d8700c792c", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/backend/api/v1/routers/samba/sourcing_account.py:66"}, "properties": {"repobilityId": "4085b14b64b8a5ba", "scanner": "scanner-primary", "fingerprint": "d45388d8700c792c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a6c87eaef666f4e3", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/backend/api/v1/routers/samba/returns.py:2488"}, "properties": {"repobilityId": "35101cdb0450c8a1", "scanner": "scanner-primary", "fingerprint": "a6c87eaef666f4e3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-12855e2eabf28242", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/backend/api/v1/routers/samba/cs_inquiry.py:1959"}, "properties": {"repobilityId": "048b8f2519673dda", "scanner": "scanner-primary", "fingerprint": "12855e2eabf28242", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7c6af8a1e04027c5", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/backend/api/v1/routers/samba/order.py:891"}, "properties": {"repobilityId": "be8bd1f6e4e37b48", "scanner": "scanner-primary", "fingerprint": "7c6af8a1e04027c5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a604dd34b92d6afd", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/backend/api/v1/routers/samba/collector_collection/collect.py:836"}, "properties": {"repobilityId": "c80cb2e5aeb636d0", "scanner": "scanner-primary", "fingerprint": "a604dd34b92d6afd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c882d707f87e4d4d", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/backend/api/v1/routers/samba/proxy/sourcing.py:189"}, "properties": {"repobilityId": "b7e10054ff11698d", "scanner": "scanner-primary", "fingerprint": "c882d707f87e4d4d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7ca5fa6af8bacfee", "level": "note", "message": {"text": "Legacy-named symbol `female_v1` in backend/backend/api/v1/routers/samba/proxy/ai_tools.py:376"}, "properties": {"repobilityId": "cfb1e015ce9541bc", "scanner": "scanner-primary", "fingerprint": "7ca5fa6af8bacfee", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-13c49e6315a1c6d1", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/backend/api/v1/routers/samba/proxy/ai_tools.py:393"}, "properties": {"repobilityId": "514a158370cd3d22", "scanner": "scanner-primary", "fingerprint": "13c49e6315a1c6d1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f6ec26feae39251a", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/backend/core/rate_limit.py:72"}, "properties": {"repobilityId": "8fde9667e8ce46e5", "scanner": "scanner-primary", "fingerprint": "f6ec26feae39251a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b8e10fe719abde81", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/backend/core/sql_safe.py:5"}, "properties": {"repobilityId": "46a5c81772ed02b5", "scanner": "scanner-primary", "fingerprint": "b8e10fe719abde81", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-75740eb1b36e1fd3", "level": "note", "message": {"text": "Legacy-named symbol `_mp_copy` in backend/backend/domain/samba/shipment/service.py:1886"}, "properties": {"repobilityId": "7a5f58df1b700694", "scanner": "scanner-primary", "fingerprint": "75740eb1b36e1fd3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f01cfee8d9066609", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/shipment/service.py:374"}, "properties": {"repobilityId": "f296ec36910adfec", "scanner": "scanner-primary", "fingerprint": "f01cfee8d9066609", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c788875b3374e309", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/tracking_sync/service.py:305"}, "properties": {"repobilityId": "fd1908ed60a5c98c", "scanner": "scanner-primary", "fingerprint": "c788875b3374e309", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e5f4075b31e9c0f2", "level": "note", "message": {"text": "Legacy-named symbol `female_v1` in backend/backend/domain/samba/image/service.py:50"}, "properties": {"repobilityId": "ed534e58977f36fa", "scanner": "scanner-primary", "fingerprint": "e5f4075b31e9c0f2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-43bf69b70ec2628a", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/image/service.py:790"}, "properties": {"repobilityId": "f0c1145699d9e9f1", "scanner": "scanner-primary", "fingerprint": "43bf69b70ec2628a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2217b64492eb4954", "level": "note", "message": {"text": "Legacy-named symbol `regs_old` in backend/backend/domain/samba/proxy/ssg_status_reconciler.py:175"}, "properties": {"repobilityId": "81a88d2b32bb4ed8", "scanner": "scanner-primary", "fingerprint": "2217b64492eb4954", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-749a03a08cd51354", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/proxy/esmplus.py:1394"}, "properties": {"repobilityId": "b2f15b01c3f4af21", "scanner": "scanner-primary", "fingerprint": "749a03a08cd51354", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7344f933df4cef25", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/backend/domain/samba/proxy/smartstore.py:1441"}, "properties": {"repobilityId": "6308261c3c59493f", "scanner": "scanner-primary", "fingerprint": "7344f933df4cef25", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-97542c7edfad8c4d", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/proxy/naverstore_sourcing_collect_script.py:51"}, "properties": {"repobilityId": "fb840f3898648109", "scanner": "scanner-primary", "fingerprint": "97542c7edfad8c4d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a8d818284b215c96", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/proxy/elevenst.py:1049"}, "properties": {"repobilityId": "aafb61d1ba191442", "scanner": "scanner-primary", "fingerprint": "a8d818284b215c96", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-87453e13d79fefcc", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/proxy/sourcing_queue.py:433"}, "properties": {"repobilityId": "127c84e10addd9a3", "scanner": "scanner-primary", "fingerprint": "87453e13d79fefcc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-b4d35b45e1ce8af5", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/proxy/musinsa.py:370"}, "properties": {"repobilityId": "760f9f87bc0c142e", "scanner": "scanner-primary", "fingerprint": "b4d35b45e1ce8af5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-75a29757b0320fbc", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/proxy/notice_utils.py:193"}, "properties": {"repobilityId": "3a0ce5e0d74884c6", "scanner": "scanner-primary", "fingerprint": "75a29757b0320fbc", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-862f9c19cbd8a119", "level": "note", "message": {"text": "Legacy-named symbol `t_PDP_1280_v1` in backend/backend/domain/samba/proxy/nike.py:617"}, "properties": {"repobilityId": "e05c0edaf6e9e0e8", "scanner": "scanner-primary", "fingerprint": "862f9c19cbd8a119", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-2a9ae01b7b82e470", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/backend/domain/samba/proxy/gsshop_sourcing.py:675"}, "properties": {"repobilityId": "8c0c0ba1a185626e", "scanner": "scanner-primary", "fingerprint": "2a9ae01b7b82e470", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-40fa4f3d3a247e55", "level": "note", "message": {"text": "Legacy-named symbol `regs_old` in backend/backend/domain/samba/proxy/elevenst_ghost_reconciler.py:297"}, "properties": {"repobilityId": "fd5eff169009e437", "scanner": "scanner-primary", "fingerprint": "40fa4f3d3a247e55", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-83b3e999b342a5f1", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/proxy/ssg_sourcing.py:1788"}, "properties": {"repobilityId": "6f42eaa93922dd9c", "scanner": "scanner-primary", "fingerprint": "83b3e999b342a5f1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-f093242df8c1eec6", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/backend/domain/samba/proxy/naverstore_sourcing_parsers.py:59"}, "properties": {"repobilityId": "669ea14c57ea245f", "scanner": "scanner-primary", "fingerprint": "f093242df8c1eec6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4285563602380ef5", "level": "note", "message": {"text": "Legacy-named symbol `get_categories_v2` in backend/backend/domain/samba/proxy/ssg.py:844"}, "properties": {"repobilityId": "f8dec89c3fb1f3ac", "scanner": "scanner-primary", "fingerprint": "4285563602380ef5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-eed0631b13090174", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/proxy/ssg.py:1929"}, "properties": {"repobilityId": "31ead920e4d41330", "scanner": "scanner-primary", "fingerprint": "eed0631b13090174", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a448a2f041cf8c84", "level": "none", "message": {"text": "Commented-code block (8 lines) in backend/backend/domain/samba/proxy/lotteon/api_client.py:1780"}, "properties": {"repobilityId": "6dfd20daca550eb4", "scanner": "scanner-primary", "fingerprint": "a448a2f041cf8c84", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7cd2814e54a6e322", "level": "note", "message": {"text": "Legacy-named symbol `v1_v2` in backend/backend/domain/samba/proxy/lotteon/detail_client.py:411"}, "properties": {"repobilityId": "a0c0c2db6ce68459", "scanner": "scanner-primary", "fingerprint": "7cd2814e54a6e322", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-bce2a5f4b5ef12a2", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/backend/domain/samba/proxy/lotteon/detail_client.py:409"}, "properties": {"repobilityId": "28b939f94cf643b4", "scanner": "scanner-primary", "fingerprint": "bce2a5f4b5ef12a2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6fbb3851639e5aaa", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/proxy/lotteon/detail_parsers.py:16"}, "properties": {"repobilityId": "a8afbbc6619e937a", "scanner": "scanner-primary", "fingerprint": "6fbb3851639e5aaa", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3f3d26314f89d617", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/proxy/lotteon/search_client.py:401"}, "properties": {"repobilityId": "42868d587ccb371f", "scanner": "scanner-primary", "fingerprint": "3f3d26314f89d617", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cd0cabd42b25f6d3", "level": "note", "message": {"text": "Legacy-named symbol `is_legacy` in backend/backend/domain/samba/tetris/service.py:577"}, "properties": {"repobilityId": "444329b61ee1dd1f", "scanner": "scanner-primary", "fingerprint": "cd0cabd42b25f6d3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e91eb4548adaf1b8", "level": "note", "message": {"text": "Legacy-named symbol `uq_scp_tenant_source_product_v2` in backend/backend/domain/samba/collector/model.py:141"}, "properties": {"repobilityId": "2cc617820e742102", "scanner": "scanner-primary", "fingerprint": "e91eb4548adaf1b8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-95f4365e1281ad1c", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/collector/service.py:299"}, "properties": {"repobilityId": "a6b59800409fc716", "scanner": "scanner-primary", "fingerprint": "95f4365e1281ad1c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d0156dad7ba12343", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/order/dispatch_service.py:419"}, "properties": {"repobilityId": "5a4370b650a1c400", "scanner": "scanner-primary", "fingerprint": "d0156dad7ba12343", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e50fbc19af7fdf29", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/backend/domain/samba/order/model.py:373"}, "properties": {"repobilityId": "af2cf344a20d9e06", "scanner": "scanner-primary", "fingerprint": "e50fbc19af7fdf29", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-02a88a602a4c10dc", "level": "note", "message": {"text": "Legacy-named symbol `get_categories_v2` in backend/backend/domain/samba/category/sync_service.py:730"}, "properties": {"repobilityId": "73a662bd1c3611f4", "scanner": "scanner-primary", "fingerprint": "02a88a602a4c10dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-313bad79ef6893cf", "level": "note", "message": {"text": "Legacy-named symbol `product_copy` in backend/backend/domain/samba/plugins/markets/smartstore.py:136"}, "properties": {"repobilityId": "bc9275acbbd86d92", "scanner": "scanner-primary", "fingerprint": "313bad79ef6893cf", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e339511e2b33afe8", "level": "note", "message": {"text": "Legacy-named symbol `product_copy` in backend/backend/domain/samba/plugins/markets/cafe24.py:204"}, "properties": {"repobilityId": "7b0233f3865320ce", "scanner": "scanner-primary", "fingerprint": "e339511e2b33afe8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ea8527eec6a51e41", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/backend/domain/samba/plugins/markets/elevenst.py:399"}, "properties": {"repobilityId": "267b255a604a565c", "scanner": "scanner-primary", "fingerprint": "ea8527eec6a51e41", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-65a5f0f8fd39dded", "level": "note", "message": {"text": "Legacy-named symbol `product_copy` in backend/backend/domain/samba/plugins/markets/lotteon.py:955"}, "properties": {"repobilityId": "846805787081b837", "scanner": "scanner-primary", "fingerprint": "65a5f0f8fd39dded", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-e1c830ab4bb5c52d", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/backend/domain/samba/plugins/markets/lotteon.py:1967"}, "properties": {"repobilityId": "fb5607efac6225f9", "scanner": "scanner-primary", "fingerprint": "e1c830ab4bb5c52d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2c84ee39c78327c7", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/backend/domain/samba/plugins/markets/coupang.py:107"}, "properties": {"repobilityId": "22e95a3988881ad0", "scanner": "scanner-primary", "fingerprint": "2c84ee39c78327c7", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ec75b48c9a438341", "level": "note", "message": {"text": "Legacy-named symbol `product_copy` in backend/backend/domain/samba/plugins/markets/gmarket.py:193"}, "properties": {"repobilityId": "a57762c0c735cd3c", "scanner": "scanner-primary", "fingerprint": "ec75b48c9a438341", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-b689f7bfe77b44e4", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/backend/domain/samba/plugins/markets/lottehome.py:834"}, "properties": {"repobilityId": "1d83295f368f3031", "scanner": "scanner-primary", "fingerprint": "b689f7bfe77b44e4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e7544c292c2edb41", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/plugins/markets/playauto.py:339"}, "properties": {"repobilityId": "b7f477c6a70fe442", "scanner": "scanner-primary", "fingerprint": "e7544c292c2edb41", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9de493f9f80a576a", "level": "note", "message": {"text": "Legacy-named symbol `product_copy` in backend/backend/domain/samba/plugins/markets/auction.py:192"}, "properties": {"repobilityId": "75c7e5906970f097", "scanner": "scanner-primary", "fingerprint": "9de493f9f80a576a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f007d1c65c887f83", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/backend/domain/samba/plugins/markets/ssg.py:378"}, "properties": {"repobilityId": "e0f7d964fa550183", "scanner": "scanner-primary", "fingerprint": "f007d1c65c887f83", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-966f9804ebc19b45", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/backend/domain/samba/plugins/sourcing/lotteon.py:245"}, "properties": {"repobilityId": "175258999d3dae52", "scanner": "scanner-primary", "fingerprint": "966f9804ebc19b45", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6f2abb83bfe6293b", "level": "none", "message": {"text": "Commented-code block (5 lines) in backend/backend/domain/samba/plugins/sourcing/abcmart.py:230"}, "properties": {"repobilityId": "9f68603a94851b16", "scanner": "scanner-primary", "fingerprint": "6f2abb83bfe6293b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-57005ea8e32158bd", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/backend/domain/samba/plugins/sourcing/nike.py:111"}, "properties": {"repobilityId": "17d28d8ab26ed6b3", "scanner": "scanner-primary", "fingerprint": "57005ea8e32158bd", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-802fea5190c76442", "level": "none", "message": {"text": "Commented-code block (7 lines) in backend/backend/domain/samba/plugins/sourcing/ssg.py:102"}, "properties": {"repobilityId": "db790f6aeb006bbd", "scanner": "scanner-primary", "fingerprint": "802fea5190c76442", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-346ee6d79b011824", "level": "none", "message": {"text": "Commented-code block (6 lines) in backend/backend/domain/samba/job/worker.py:1317"}, "properties": {"repobilityId": "38555fd1b1556e28", "scanner": "scanner-primary", "fingerprint": "346ee6d79b011824", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-e2e4b6dfc7e6f47d", "level": "note", "message": {"text": "Legacy-named symbol `t_old` in backend/backend/domain/samba/job/progress_tracker.py:41"}, "properties": {"repobilityId": "2e65d44afe86e082", "scanner": "scanner-primary", "fingerprint": "e2e4b6dfc7e6f47d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-ac6ce0e6d1dca97a", "level": "note", "message": {"text": "61 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "d9bf04d375a56cee", "scanner": "scanner-primary", "fingerprint": "ac6ce0e6d1dca97a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "ea8522c6c22f83c3", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "2d3d488877bdf9d8", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "97aa362cbc7ad2db", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "11b5d60329abfaf4", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "ad7dd9b8f768c576", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "e6f469f71854ed17", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "1db02a0af26b1a3f", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "8339ff7fe9aa1ab9", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "2924c12e2a7b5194", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-33a6b62e30ce7ab4", "level": "note", "message": {"text": "Near-duplicate function bodies in 6 places"}, "properties": {"repobilityId": "b980ecab344e0d95", "scanner": "scanner-primary", "fingerprint": "33a6b62e30ce7ab4", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "756f09cf9150047c", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-c54c6fb8e364daaa", "level": "note", "message": {"text": "Near-duplicate function bodies in 16 places"}, "properties": {"repobilityId": "b29a5e2c1da53485", "scanner": "scanner-primary", "fingerprint": "c54c6fb8e364daaa", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "64fedaa6f4e190ed", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-49c98f7cedd9c977", "level": "note", "message": {"text": "Near-duplicate function bodies in 4 places"}, "properties": {"repobilityId": "90ba19473b44a620", "scanner": "scanner-primary", "fingerprint": "49c98f7cedd9c977", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "dd026559d878d65f", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-be46ea126aa5d8dc", "level": "note", "message": {"text": "Near-duplicate function bodies in 3 places"}, "properties": {"repobilityId": "9da4998c2cc8bed7", "scanner": "scanner-primary", "fingerprint": "be46ea126aa5d8dc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "3cd578328de5bf59", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "bbb5bd9b754889b8", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "aedc51b42b9ad4fa", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-2c04133e54348533", "level": "note", "message": {"text": "Near-duplicate function bodies in 2 places"}, "properties": {"repobilityId": "e73eeba40128b185", "scanner": "scanner-primary", "fingerprint": "2c04133e54348533", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "duplicate", "dry"]}}, {"ruleId": "scanner-011c8bf50142ca80", "level": "error", "message": {"text": "FastAPI POST `ebay_deletion_notification` without auth dependency \u2014 backend/backend/api/v1/routers/ebay.py:51"}, "properties": {"repobilityId": "f4ba6a9b7e05d4cc", "scanner": "scanner-primary", "fingerprint": "011c8bf50142ca80", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/backend/api/v1/routers/ebay.py"}, "region": {"startLine": 51}}}]}, {"ruleId": "scanner-2170c9226ca8ccaf", "level": "error", "message": {"text": "FastAPI POST `get_product_detail_with_cookies` without auth dependency \u2014 backend/backend/api/v1/routers/samba/naverstore_sourcing.py:130"}, "properties": {"repobilityId": "0378c15c563586e0", "scanner": "scanner-primary", "fingerprint": "2170c9226ca8ccaf", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/backend/api/v1/routers/samba/naverstore_sourcing.py"}, "region": {"startLine": 130}}}]}, {"ruleId": "scanner-4a4a80a77debe2f8", "level": "error", "message": {"text": "FastAPI POST `get_product_details_batch` without auth dependency \u2014 backend/backend/api/v1/routers/samba/naverstore_sourcing.py:148"}, "properties": {"repobilityId": "26357e9203fe175a", "scanner": "scanner-primary", "fingerprint": "4a4a80a77debe2f8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/backend/api/v1/routers/samba/naverstore_sourcing.py"}, "region": {"startLine": 148}}}]}, {"ruleId": "scanner-063a00d5f9cbb665", "level": "error", "message": {"text": "FastAPI POST `analyze_full` without auth dependency \u2014 backend/backend/api/v1/routers/samba/ai_sourcing.py:76"}, "properties": {"repobilityId": "3dce4ee51cd2ec05", "scanner": "scanner-primary", "fingerprint": "063a00d5f9cbb665", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/backend/api/v1/routers/samba/ai_sourcing.py"}, "region": {"startLine": 76}}}]}, {"ruleId": "scanner-a50c34675756f434", "level": "error", "message": {"text": "FastAPI POST `receive_ranking_data` without auth dependency \u2014 backend/backend/api/v1/routers/samba/ai_sourcing.py:588"}, "properties": {"repobilityId": "ab62c27a0719c84b", "scanner": "scanner-primary", "fingerprint": "a50c34675756f434", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/backend/api/v1/routers/samba/ai_sourcing.py"}, "region": {"startLine": 588}}}]}, {"ruleId": "scanner-41ff31d50388db48", "level": "error", "message": {"text": "FastAPI POST `receive_collect_result` without auth dependency \u2014 backend/backend/api/v1/routers/samba/ai_sourcing.py:774"}, "properties": {"repobilityId": "a4c48f30ec2c32fc", "scanner": "scanner-primary", "fingerprint": "41ff31d50388db48", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/backend/api/v1/routers/samba/ai_sourcing.py"}, "region": {"startLine": 774}}}]}, {"ruleId": "scanner-b9cc1a94dba479ea", "level": "error", "message": {"text": "FastAPI POST `test_collect` without auth dependency \u2014 backend/backend/api/v1/routers/samba/ai_sourcing.py:812"}, "properties": {"repobilityId": "3c3e8def75cc618f", "scanner": "scanner-primary", "fingerprint": "b9cc1a94dba479ea", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/backend/api/v1/routers/samba/ai_sourcing.py"}, "region": {"startLine": 812}}}]}, {"ruleId": "scanner-a8d286649bee56e9", "level": "error", "message": {"text": "FastAPI POST `clear_collect_log_buffer` without auth dependency \u2014 backend/backend/api/v1/routers/samba/job.py:411"}, "properties": {"repobilityId": "d7a3769491d75582", "scanner": "scanner-primary", "fingerprint": "a8d286649bee56e9", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/backend/api/v1/routers/samba/job.py"}, "region": {"startLine": 411}}}]}, {"ruleId": "scanner-7f56cc64c3fda92f", "level": "error", "message": {"text": "FastAPI POST `kill_idle_in_transaction` without auth dependency \u2014 backend/backend/api/v1/routers/samba/db_pool.py:47"}, "properties": {"repobilityId": "5808ab80a3806e07", "scanner": "scanner-primary", "fingerprint": "7f56cc64c3fda92f", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/backend/api/v1/routers/samba/db_pool.py"}, "region": {"startLine": 47}}}]}, {"ruleId": "scanner-c268d38b26cc89bf", "level": "error", "message": {"text": "FastAPI POST `search_issues` without auth dependency \u2014 backend/backend/api/v1/routers/samba/sns_posting.py:195"}, "properties": {"repobilityId": "5d85809a72f69d81", "scanner": "scanner-primary", "fingerprint": "c268d38b26cc89bf", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/backend/api/v1/routers/samba/sns_posting.py"}, "region": {"startLine": 195}}}]}, {"ruleId": "scanner-703589af97d43295", "level": "error", "message": {"text": "FastAPI POST `rebuild_exported_rules_endpoint` without auth dependency \u2014 backend/backend/api/v1/routers/samba/category.py:231"}, "properties": {"repobilityId": "5e598dd207283d41", "scanner": "scanner-primary", "fingerprint": "703589af97d43295", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/backend/api/v1/routers/samba/category.py"}, "region": {"startLine": 231}}}]}, {"ruleId": "scanner-ca7bf52f3519b9a4", "level": "error", "message": {"text": "FastAPI POST `test_rate_limit` without auth dependency \u2014 backend/backend/api/v1/routers/samba/collector_refresh.py:900"}, "properties": {"repobilityId": "55bef24dfed5a0c2", "scanner": "scanner-primary", "fingerprint": "ca7bf52f3519b9a4", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/backend/api/v1/routers/samba/collector_refresh.py"}, "region": {"startLine": 900}}}]}, {"ruleId": "scanner-d441a9c370fc4d60", "level": "error", "message": {"text": "FastAPI POST `brand_discover` without auth dependency \u2014 backend/backend/api/v1/routers/samba/collector_collection/brands.py:428"}, "properties": {"repobilityId": "c4c9770dd0b56fdc", "scanner": "scanner-primary", "fingerprint": "d441a9c370fc4d60", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/backend/api/v1/routers/samba/collector_collection/brands.py"}, "region": {"startLine": 428}}}]}, {"ruleId": "scanner-3a8fa3ba39bf674c", "level": "error", "message": {"text": "FastAPI POST `test_proxy_connection` without auth dependency \u2014 backend/backend/api/v1/routers/samba/proxy/config.py:92"}, "properties": {"repobilityId": "4a03b78b54dd7c2a", "scanner": "scanner-primary", "fingerprint": "3a8fa3ba39bf674c", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/backend/api/v1/routers/samba/proxy/config.py"}, "region": {"startLine": 92}}}]}, {"ruleId": "scanner-02f4b4bd76951af0", "level": "error", "message": {"text": "FastAPI POST `kream_collect_result` without auth dependency \u2014 backend/backend/api/v1/routers/samba/proxy/kream.py:128"}, "properties": {"repobilityId": "993eb36e9caf6819", "scanner": "scanner-primary", "fingerprint": "02f4b4bd76951af0", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/backend/api/v1/routers/samba/proxy/kream.py"}, "region": {"startLine": 128}}}]}, {"ruleId": "scanner-6bacef5b6ba62ba3", "level": "error", "message": {"text": "FastAPI POST `kream_search_result` without auth dependency \u2014 backend/backend/api/v1/routers/samba/proxy/kream.py:171"}, "properties": {"repobilityId": "1f5f846fe977a280", "scanner": "scanner-primary", "fingerprint": "6bacef5b6ba62ba3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/backend/api/v1/routers/samba/proxy/kream.py"}, "region": {"startLine": 171}}}]}, {"ruleId": "scanner-8124969fab180219", "level": "error", "message": {"text": "FastAPI POST `upload_preset_image` without auth dependency \u2014 backend/backend/api/v1/routers/samba/proxy/preset_images.py:38"}, "properties": {"repobilityId": "5220affe265f928a", "scanner": "scanner-primary", "fingerprint": "8124969fab180219", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["auth", "owasp", "auth.fastapi.unauth_mutation"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "backend/backend/api/v1/routers/samba/proxy/preset_images.py"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-827665db40d3ed5b", "level": "error", "message": {"text": "Dangling fetch: GET https://www.musinsa.com/order-service/my/order/get_order_view/${ordNo} (extension/background-sourcing.js:1727)"}, "properties": {"repobilityId": "8bf49607b992757c", "scanner": "scanner-primary", "fingerprint": "827665db40d3ed5b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-bbd39903fc921cb5", "level": "error", "message": {"text": "Dangling fetch: GET https://pbf.lotteon.com/product/v2/detail/search/base/sitm/${sitmNo} (extension/background-sourcing.js:2393)"}, "properties": {"repobilityId": "b8b47c31c295b8ec", "scanner": "scanner-primary", "fingerprint": "bbd39903fc921cb5", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1b621572580b84dc", "level": "error", "message": {"text": "Dangling fetch: GET https://${subdomain}/product/info?prdtNo=${productId} (extension/background-sourcing.js:2450)"}, "properties": {"repobilityId": "dc20580a0faf7278", "scanner": "scanner-primary", "fingerprint": "1b621572580b84dc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-dca806d37a50b39d", "level": "error", "message": {"text": "Dangling fetch: GET https://${subdomain}/product/info?prdtNo=${productId} (extension/background-sourcing.js:2519)"}, "properties": {"repobilityId": "026f03c28d1111eb", "scanner": "scanner-primary", "fingerprint": "dca806d37a50b39d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-add9025874184e2c", "level": "error", "message": {"text": "Dangling fetch: GET /product/info?prdtNo=${prdtNo} (extension/background-sourcing.js:2666)"}, "properties": {"repobilityId": "d9667b57f8288ce4", "scanner": "scanner-primary", "fingerprint": "add9025874184e2c", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-620c436df9892baf", "level": "error", "message": {"text": "Dangling fetch: GET https://httpbin.org/ip (frontend/src/app/samba/settings/hooks/useProxySettings.ts:80)"}, "properties": {"repobilityId": "8b3fae486f729c53", "scanner": "scanner-primary", "fingerprint": "620c436df9892baf", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-11e3940895a9e3f6", "level": "error", "message": {"text": "Dangling fetch: GET http://localhost:51425/device_id (frontend/src/app/samba/warroom/page.tsx:633)"}, "properties": {"repobilityId": "a11716e228d1f75a", "scanner": "scanner-primary", "fingerprint": "11e3940895a9e3f6", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-ec2d9bbfdc85c07b", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/session (frontend/src/lib/api.ts:67)"}, "properties": {"repobilityId": "b7257a140a77a4e0", "scanner": "scanner-primary", "fingerprint": "ec2d9bbfdc85c07b", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-b6a70415309cbbf0", "level": "error", "message": {"text": "Dangling fetch: DELETE /api/auth/session (frontend/src/lib/api.ts:94)"}, "properties": {"repobilityId": "49fec1463d940bad", "scanner": "scanner-primary", "fingerprint": "b6a70415309cbbf0", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5baa8971ebe192a1", "level": "note", "message": {"text": "Unused endpoint: GET /"}, "properties": {"repobilityId": "d3a4f3da8e7f19b5", "scanner": "scanner-primary", "fingerprint": "5baa8971ebe192a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a436691337284d03", "level": "note", "message": {"text": "Unused endpoint: GET /api/v1/health"}, "properties": {"repobilityId": "c54a01c491494fd8", "scanner": "scanner-primary", "fingerprint": "a436691337284d03", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-93ca3e8f29f61978", "level": "note", "message": {"text": "Unused endpoint: GET /ebay/deletion-notification"}, "properties": {"repobilityId": "8faf665ae7e514c6", "scanner": "scanner-primary", "fingerprint": "93ca3e8f29f61978", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4741214a900d4fb9", "level": "note", "message": {"text": "Unused endpoint: POST /ebay/deletion-notification"}, "properties": {"repobilityId": "296760f662442bfb", "scanner": "scanner-primary", "fingerprint": "4741214a900d4fb9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-47e8b6741e6a412e", "level": "note", "message": {"text": "Unused endpoint: POST /email/sign-up"}, "properties": {"repobilityId": "d9d5b59e6d738986", "scanner": "scanner-primary", "fingerprint": "47e8b6741e6a412e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ef4460865d68011e", "level": "note", "message": {"text": "Unused endpoint: POST /email/login"}, "properties": {"repobilityId": "592a23e38895d212", "scanner": "scanner-primary", "fingerprint": "ef4460865d68011e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7ce17d6b092a81ca", "level": "note", "message": {"text": "Unused endpoint: POST /refresh"}, "properties": {"repobilityId": "a7298486aee71fdd", "scanner": "scanner-primary", "fingerprint": "7ce17d6b092a81ca", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fd1dc91abf32142d", "level": "note", "message": {"text": "Unused endpoint: GET /me"}, "properties": {"repobilityId": "9a3bc2add4abcebd", "scanner": "scanner-primary", "fingerprint": "fd1dc91abf32142d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c1c28814ecb17c6c", "level": "note", "message": {"text": "Unused endpoint: POST /license/verify"}, "properties": {"repobilityId": "2d2adb4983062d25", "scanner": "scanner-primary", "fingerprint": "c1c28814ecb17c6c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-627cdd6ec2c1df73", "level": "note", "message": {"text": "Unused endpoint: GET /{user_id}"}, "properties": {"repobilityId": "e26bb4ffd504feb3", "scanner": "scanner-primary", "fingerprint": "627cdd6ec2c1df73", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7a009b1a56794f45", "level": "note", "message": {"text": "Unused endpoint: POST /"}, "properties": {"repobilityId": "46182c1f2bd83d88", "scanner": "scanner-primary", "fingerprint": "7a009b1a56794f45", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-646905f54906a60a", "level": "note", "message": {"text": "Unused endpoint: PATCH /{user_id}"}, "properties": {"repobilityId": "9990183c3b418652", "scanner": "scanner-primary", "fingerprint": "646905f54906a60a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-55c93ee7e031a509", "level": "note", "message": {"text": "Unused endpoint: DELETE /{user_id}"}, "properties": {"repobilityId": "fccc07d606e1acc0", "scanner": "scanner-primary", "fingerprint": "55c93ee7e031a509", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cd8dc4599ec52a08", "level": "note", "message": {"text": "Unused endpoint: GET /stats"}, "properties": {"repobilityId": "a532c58c3bfd87ac", "scanner": "scanner-primary", "fingerprint": "cd8dc4599ec52a08", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0d9abfdbc1cc9788", "level": "note", "message": {"text": "Unused endpoint: GET /schedules"}, "properties": {"repobilityId": "041b5b037f1e0386", "scanner": "scanner-primary", "fingerprint": "0d9abfdbc1cc9788", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bb4497b3cab9fef5", "level": "note", "message": {"text": "Unused endpoint: POST /schedules"}, "properties": {"repobilityId": "bb03a0753f1c8344", "scanner": "scanner-primary", "fingerprint": "bb4497b3cab9fef5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-d7f54e5d794e82ae", "level": "note", "message": {"text": "Unused endpoint: PUT /schedules/{schedule_id}"}, "properties": {"repobilityId": "27864b8d0cce485a", "scanner": "scanner-primary", "fingerprint": "d7f54e5d794e82ae", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-25d5b654de45bc2c", "level": "note", "message": {"text": "Unused endpoint: POST /schedules/{schedule_id}/toggle"}, "properties": {"repobilityId": "0610a3362c2d00c0", "scanner": "scanner-primary", "fingerprint": "25d5b654de45bc2c", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-de67e7a5f4f122aa", "level": "note", "message": {"text": "Unused endpoint: DELETE /schedules/{schedule_id}"}, "properties": {"repobilityId": "7334feff74677e25", "scanner": "scanner-primary", "fingerprint": "de67e7a5f4f122aa", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cecee4c21e264d14", "level": "note", "message": {"text": "Unused endpoint: GET /purchases"}, "properties": {"repobilityId": "78bb9d655a4ca1d8", "scanner": "scanner-primary", "fingerprint": "cecee4c21e264d14", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6b4d3a1c30158c0e", "level": "note", "message": {"text": "Unused endpoint: POST /cancel"}, "properties": {"repobilityId": "c283e90f2f499f9f", "scanner": "scanner-primary", "fingerprint": "6b4d3a1c30158c0e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cfe62d3ce07cefda", "level": "note", "message": {"text": "Unused endpoint: POST /emergency-stop"}, "properties": {"repobilityId": "e96dd546872e651c", "scanner": "scanner-primary", "fingerprint": "cfe62d3ce07cefda", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e58048d2f47202da", "level": "note", "message": {"text": "Unused endpoint: POST /emergency-clear"}, "properties": {"repobilityId": "e6632fdc09c9a17b", "scanner": "scanner-primary", "fingerprint": "e58048d2f47202da", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7cd7b2735f400ab9", "level": "note", "message": {"text": "Unused endpoint: POST /smartstore/cleanup-orphans"}, "properties": {"repobilityId": "daaa57d048bb81dc", "scanner": "scanner-primary", "fingerprint": "7cd7b2735f400ab9", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-244a0703510b4366", "level": "note", "message": {"text": "Unused endpoint: GET /ghost-summary"}, "properties": {"repobilityId": "7f8ec79f80c9b3a3", "scanner": "scanner-primary", "fingerprint": "244a0703510b4366", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-54591d9e09c66718", "level": "note", "message": {"text": "Unused endpoint: POST /elevenst/cleanup-orphans"}, "properties": {"repobilityId": "251033d6bb9e5cec", "scanner": "scanner-primary", "fingerprint": "54591d9e09c66718", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9d9da4ae3baebbea", "level": "note", "message": {"text": "Unused endpoint: POST /elevenst/cleanup-missing-prdno"}, "properties": {"repobilityId": "e8add31b1fc3ec66", "scanner": "scanner-primary", "fingerprint": "9d9da4ae3baebbea", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-da3a28d3a1cccbf5", "level": "note", "message": {"text": "Unused endpoint: POST /coupang/cleanup-orphans"}, "properties": {"repobilityId": "37fa1faa58923a63", "scanner": "scanner-primary", "fingerprint": "da3a28d3a1cccbf5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-9b0dc94f94278388", "level": "note", "message": {"text": "Unused endpoint: POST /coupang/clear-stale-mapping"}, "properties": {"repobilityId": "4f9e410f1668837e", "scanner": "scanner-primary", "fingerprint": "9b0dc94f94278388", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0a208a4ab6fc7f09", "level": "note", "message": {"text": "Unused endpoint: POST /coupang/delete-orphan"}, "properties": {"repobilityId": "84c5bb8dffb7f676", "scanner": "scanner-primary", "fingerprint": "0a208a4ab6fc7f09", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-74bc897e92d388a4", "level": "note", "message": {"text": "Unused endpoint: POST /elevenst/cleanup-orphans-v2"}, "properties": {"repobilityId": "f955d4f3e1e5c68e", "scanner": "scanner-primary", "fingerprint": "74bc897e92d388a4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-917a034abf3cf8a3", "level": "note", "message": {"text": "Unused endpoint: POST /lotteon/cleanup-orphans"}, "properties": {"repobilityId": "958b9201e4694616", "scanner": "scanner-primary", "fingerprint": "917a034abf3cf8a3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3d074283d8f1ecd6", "level": "note", "message": {"text": "Unused endpoint: GET /product/{product_id}"}, "properties": {"repobilityId": "9032b0d1f519cb22", "scanner": "scanner-primary", "fingerprint": "3d074283d8f1ecd6", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ed66fceef9a94743", "level": "note", "message": {"text": "Unused endpoint: GET /{shipment_id}"}, "properties": {"repobilityId": "ec3282843508196a", "scanner": "scanner-primary", "fingerprint": "ed66fceef9a94743", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a13a7e97aeacf55f", "level": "note", "message": {"text": "Unused endpoint: POST /start"}, "properties": {"repobilityId": "685839e273f1f51e", "scanner": "scanner-primary", "fingerprint": "a13a7e97aeacf55f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-cec3b1be36c33d02", "level": "note", "message": {"text": "Unused endpoint: POST /market-delete"}, "properties": {"repobilityId": "f3653e67cf359a0a", "scanner": "scanner-primary", "fingerprint": "cec3b1be36c33d02", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fb64bacd72f8f164", "level": "note", "message": {"text": "Unused endpoint: POST /market-delete-by-account"}, "properties": {"repobilityId": "27509aa4a3384032", "scanner": "scanner-primary", "fingerprint": "fb64bacd72f8f164", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-c5519c77a9e73557", "level": "note", "message": {"text": "Unused endpoint: POST /{shipment_id}/retry"}, "properties": {"repobilityId": "442cc3590b2bf624", "scanner": "scanner-primary", "fingerprint": "c5519c77a9e73557", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-e1f7ea89d4b19a3b", "level": "note", "message": {"text": "Unused endpoint: POST /group-preview"}, "properties": {"repobilityId": "995fcfd77405d4d1", "scanner": "scanner-primary", "fingerprint": "e1f7ea89d4b19a3b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8db80f53bb0172bf", "level": "note", "message": {"text": "Unused endpoint: POST /group-send"}, "properties": {"repobilityId": "8d45be6d57488fc4", "scanner": "scanner-primary", "fingerprint": "8db80f53bb0172bf", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-72eb8a13269a8eb3", "level": "note", "message": {"text": "Unused endpoint: GET /active"}, "properties": {"repobilityId": "02872317b96b45c9", "scanner": "scanner-primary", "fingerprint": "72eb8a13269a8eb3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-59e34f85ef42eefc", "level": "note", "message": {"text": "Unused endpoint: GET /markets"}, "properties": {"repobilityId": "0ad4b8702b35e783", "scanner": "scanner-primary", "fingerprint": "59e34f85ef42eefc", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8f0fa09f7aaa0e98", "level": "note", "message": {"text": "Unused endpoint: GET /{account_id}"}, "properties": {"repobilityId": "627b11f4ad1f5bad", "scanner": "scanner-primary", "fingerprint": "8f0fa09f7aaa0e98", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-53d957f1a879dd20", "level": "note", "message": {"text": "Unused endpoint: GET /{account_id}/secrets"}, "properties": {"repobilityId": "1856054b57c87038", "scanner": "scanner-primary", "fingerprint": "53d957f1a879dd20", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-bbee73f9cb514a06", "level": "note", "message": {"text": "Unused endpoint: PUT /{account_id}"}, "properties": {"repobilityId": "a17480a0757f1970", "scanner": "scanner-primary", "fingerprint": "bbee73f9cb514a06", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ae7d408b97fa66b8", "level": "note", "message": {"text": "Unused endpoint: PUT /{account_id}/toggle"}, "properties": {"repobilityId": "44164d8f764d908b", "scanner": "scanner-primary", "fingerprint": "ae7d408b97fa66b8", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-504af21a48ec907a", "level": "note", "message": {"text": "Unused endpoint: POST /from-store-form"}, "properties": {"repobilityId": "d715138708753746", "scanner": "scanner-primary", "fingerprint": "504af21a48ec907a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-91445f5d06061d9d", "level": "note", "message": {"text": "Unused endpoint: PUT /{account_id}/set-default"}, "properties": {"repobilityId": "78827142a92438f9", "scanner": "scanner-primary", "fingerprint": "91445f5d06061d9d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-4a2ffdf0f88ffd73", "level": "note", "message": {"text": "Unused endpoint: DELETE /{account_id}"}, "properties": {"repobilityId": "b762dcc6e0d0458b", "scanner": "scanner-primary", "fingerprint": "4a2ffdf0f88ffd73", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-f74669502167c889", "level": "note", "message": {"text": "Unused endpoint: GET /pending-with-context"}, "properties": {"repobilityId": "7260eddcc1b24ff7", "scanner": "scanner-primary", "fingerprint": "f74669502167c889", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}