{"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-dfa52f003e3b0b1c", "name": "Stray `console.log` in TS/JS \u2014 test-multiverse.ts:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 test-multiverse.ts:14"}, "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-b1836f8e266b583c", "name": "Stray `console.log` in TS/JS \u2014 extract-sue-media.ts:29", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 extract-sue-media.ts:29"}, "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-55e644ff6f039d9d", "name": "Stray `console.log` in TS/JS \u2014 packages-internal/proptypes/typescript-to-proptypes/src/generatePropTypes.ts:118", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages-internal/proptypes/typescript-to-proptypes/src/generatePropTypes.ts:118"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7f805d371262b6c1", "name": "TODO/FIXME marker in shipping code \u2014 packages-internal/proptypes/typescript-to-proptypes/src/getPropTypesFromFile.ts:470", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages-internal/proptypes/typescript-to-proptypes/src/getPropTypesFromFile.ts:470"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a123f52253079c0c", "name": "TODO/FIXME marker in shipping code \u2014 packages-internal/proptypes/typescript-to-proptypes/src/injectPropTypesInFile.ts:26", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages-internal/proptypes/typescript-to-proptypes/src/injectPropTypesInFile.ts:268"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5bec84cc300d82ed", "name": "TODO/FIXME marker in shipping code \u2014 packages-internal/test-utils/src/createRenderer.tsx:52", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages-internal/test-utils/src/createRenderer.tsx:52"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-08f7d20c6ac0d94e", "name": "TODO/FIXME marker in shipping code \u2014 packages-internal/test-utils/src/initMatchers.ts:433", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages-internal/test-utils/src/initMatchers.ts:433"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-caf7eb846f6cb03a", "name": "TODO/FIXME marker in shipping code \u2014 packages-internal/test-utils/src/mochaHooks.test.js:47", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages-internal/test-utils/src/mochaHooks.test.js:47"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b8ae1c8952471edb", "name": "TODO/FIXME marker in shipping code \u2014 packages-internal/test-utils/src/mochaHooks.js:90", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages-internal/test-utils/src/mochaHooks.js:90"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-362a73d4f099b996", "name": "TODO/FIXME marker in shipping code \u2014 packages-internal/markdown/loader.js:162", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages-internal/markdown/loader.js:162"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9949ea6f375b5af6", "name": "Stray `console.log` in TS/JS \u2014 packages-internal/netlify-plugin-cache-docs/index.js:25", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages-internal/netlify-plugin-cache-docs/index.js:25"}, "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-4ef2f3d19754516b", "name": "Stray `console.log` in TS/JS \u2014 packages-internal/sui-video-validator/tests/validator.test.ts:31", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages-internal/sui-video-validator/tests/validator.test.ts:31"}, "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-dfd78959f87f934b", "name": "Stray `console.log` in TS/JS \u2014 packages-internal/sui-video-validator/examples/usage-example.ts:18", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages-internal/sui-video-validator/examples/usage-example.ts:18"}, "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-285625ee1ab85611", "name": "Stray `console.log` in TS/JS \u2014 packages-internal/sui-video-validator/src/VideoValidator.ts:374", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages-internal/sui-video-validator/src/VideoValidator.ts:374"}, "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-028858d8fbf85e4c", "name": "Stray `console.log` in TS/JS \u2014 packages-internal/sui-video-validator/src/BatchValidator.ts:35", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages-internal/sui-video-validator/src/BatchValidator.ts:35"}, "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-22fdeea7a4af93b6", "name": "Stray `console.log` in TS/JS \u2014 packages-internal/sui-envinfo/envinfo.js:36", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages-internal/sui-envinfo/envinfo.js:36"}, "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-8d09cd6091dd2fb1", "name": "Stray `console.log` in TS/JS \u2014 packages-internal/feedback/index.js:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages-internal/feedback/index.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-e4f1be66ad280d43", "name": "TODO/FIXME marker in shipping code \u2014 packages-internal/api-docs-builder/utils/replaceUrl.ts:41", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages-internal/api-docs-builder/utils/replaceUrl.ts:41"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7cae8d7c5f0811f0", "name": "Stray `console.log` in TS/JS \u2014 packages-internal/api-docs-builder/utils/findApiPages.ts:36", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages-internal/api-docs-builder/utils/findApiPages.ts:36"}, "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-9f435c55837db571", "name": "Stray `console.log` in TS/JS \u2014 packages-internal/api-docs-builder/utils/createTypeScriptProject.ts:120", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages-internal/api-docs-builder/utils/createTypeScriptProject.ts:120"}, "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-3c2bb40566649936", "name": "TODO/FIXME marker in shipping code \u2014 packages-internal/api-docs-builder/ApiBuilders/HookApiBuilder.ts:576", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages-internal/api-docs-builder/ApiBuilders/HookApiBuilder.ts:576"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-34ed9690397200dc", "name": "Stray `console.log` in TS/JS \u2014 packages-internal/api-docs-builder/ApiBuilders/HookApiBuilder.ts:593", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages-internal/api-docs-builder/ApiBuilders/HookApiBuilder.ts:593"}, "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-6228a514807bdf4c", "name": "TODO/FIXME marker in shipping code \u2014 packages-internal/api-docs-builder/ApiBuilders/ComponentApiBuilder.ts:789", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages-internal/api-docs-builder/ApiBuilders/ComponentApiBuilder.ts:789"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4aa2849814fe81e1", "name": "Stray `console.log` in TS/JS \u2014 packages-internal/api-docs-builder/ApiBuilders/ComponentApiBuilder.ts:811", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages-internal/api-docs-builder/ApiBuilders/ComponentApiBuilder.ts:811"}, "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-4cd036656ee291f2", "name": "Stray `console.log` in TS/JS \u2014 packages-internal/docs-utils/src/createTypeScriptProject.ts:118", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages-internal/docs-utils/src/createTypeScriptProject.ts:118"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-bfe71eb1adb84c2c", "name": "TODO/FIXME marker in shipping code \u2014 test/karma.conf.js:193", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 test/karma.conf.js:193"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-57aeffbbc6236543", "name": "TODO/FIXME marker in shipping code \u2014 test/karma.conf.profile.js:66", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 test/karma.conf.profile.js:66"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-691daa0dfe5fb8b7", "name": "TODO/FIXME marker in shipping code \u2014 test/regressions/webpack.config.js:68", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 test/regressions/webpack.config.js:68"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3ae42f7b78859349", "name": "TODO/FIXME marker in shipping code \u2014 test/regressions/index.js:17", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 test/regressions/index.js:17"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b5b5f7083c09c65e", "name": "TODO/FIXME marker in shipping code \u2014 test/utils/addChaiAssertions.ts:34", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 test/utils/addChaiAssertions.ts:34"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-58a5b118ca0b6949", "name": "TODO/FIXME marker in shipping code \u2014 test/bundling/scripts/createFixture.js:189", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 test/bundling/scripts/createFixture.js:189"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-add3394174541774", "name": "TODO/FIXME marker in shipping code \u2014 test/e2e/webpack.config.js:43", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 test/e2e/webpack.config.js:43"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1ce1a5a36233cc6e", "name": "TODO/FIXME marker in shipping code \u2014 docs/babel.config.js:11", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/babel.config.js:11"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b95ce0f0c28ca139", "name": "Stray `console.log` in TS/JS \u2014 docs/stack/certificate.ts:38", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 docs/stack/certificate.ts:38"}, "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-f21abdc8e84c2f03", "name": "Stray `console.log` in TS/JS \u2014 docs/scripts/seed-products.ts:207", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 docs/scripts/seed-products.ts:207"}, "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-de12a956a8372397", "name": "Stray `console.log` in TS/JS \u2014 docs/scripts/reportBrokenLinks.js:215", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 docs/scripts/reportBrokenLinks.js:215"}, "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-311ec7eac4009946", "name": "Stray `console.log` in TS/JS \u2014 docs/scripts/generateTemplateScreenshots.ts:60", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 docs/scripts/generateTemplateScreenshots.ts:60"}, "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-118561820dadd017", "name": "Stray `console.log` in TS/JS \u2014 docs/scripts/buildIcons.js:9", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 docs/scripts/buildIcons.js:9"}, "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-6647154be3dac335", "name": "Stray `console.log` in TS/JS \u2014 docs/scripts/updateIconSynonyms.js:33", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 docs/scripts/updateIconSynonyms.js:33"}, "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-c444f85f9fca8bb8", "name": "TODO/FIXME marker in shipping code \u2014 docs/scripts/formattedTSDemos.js:141", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/scripts/formattedTSDemos.js:141"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fde160f792c640dd", "name": "Stray `console.log` in TS/JS \u2014 docs/scripts/formattedTSDemos.js:104", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 docs/scripts/formattedTSDemos.js:104"}, "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-0ac3125054863992", "name": "Stray `console.log` in TS/JS \u2014 docs/scripts/generateGithubSnapshots.ts:68", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 docs/scripts/generateGithubSnapshots.ts:68"}, "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-945173c765efa27f", "name": "Stray `console.log` in TS/JS \u2014 docs/scripts/buildServiceWorker.js:22", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 docs/scripts/buildServiceWorker.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-8d832d1b94251555", "name": "Stray `console.log` in TS/JS \u2014 docs/scripts/api/buildInterfacesDocumentation.ts:244", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 docs/scripts/api/buildInterfacesDocumentation.ts:244"}, "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-22c9238a51fb7335", "name": "Stray `console.log` in TS/JS \u2014 docs/scripts/api/buildGridEventsDocumentation.ts:135", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 docs/scripts/api/buildGridEventsDocumentation.ts:135"}, "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-3e1de3384587995e", "name": "TODO/FIXME marker in shipping code \u2014 docs/scripts/buildApiDocs/fileExplorerSettings/getComponentInfo.ts:30", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/scripts/buildApiDocs/fileExplorerSettings/getComponentInfo.ts:30"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bc42a650e46a0b49", "name": "TODO/FIXME marker in shipping code \u2014 docs/pages/_app.js:259", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/pages/_app.js:259"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-087f9336cfa9610d", "name": "Stray `console.log` in TS/JS \u2014 docs/pages/_app.js:74", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 docs/pages/_app.js:74"}, "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-e65bde75ad5f9143", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/pages/index.tsx:103", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/pages/index.tsx:103"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-55771ce8b654cb3a", "name": "TODO/FIXME marker in shipping code \u2014 docs/pages/_document.js:267", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/pages/_document.js:267"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cd55fb06e2ee7926", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/pages/_document.js:56", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/pages/_document.js:56"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a9e0b655f8520a4a", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/pages/blog/[slug].tsx:213", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/pages/blog/[slug].tsx:213"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a45e3ca2544723c4", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/pages/consulting/home.tsx:61", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/pages/consulting/home.tsx:61"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-984274f274cf4245", "name": "Stray `console.log` in TS/JS \u2014 docs/pages/experiments/base/menu.tsx:131", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 docs/pages/experiments/base/menu.tsx:131"}, "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-fb9a74cdc917279e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/pages/experiments/base/listbox.tsx:225", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/pages/experiments/base/listbox.tsx:225"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e0256766d0d51cf1", "name": "TODO/FIXME marker in shipping code \u2014 docs/pages/experiments/base/components-gallery.tsx:20", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/pages/experiments/base/components-gallery.tsx:20"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d3997a6bae5c41c4", "name": "Stray `console.log` in TS/JS \u2014 docs/src/subdomains.ts:21", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 docs/src/subdomains.ts: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-7e4552ce88d76087", "name": "TODO/FIXME marker in shipping code \u2014 docs/src/createEmotionCache.ts:20", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/createEmotionCache.ts:20"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b1bc2c1478e6f5f1", "name": "TODO/FIXME marker in shipping code \u2014 docs/src/components/showcase/FolderTreeView.tsx:2", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/components/showcase/FolderTreeView.tsx:2"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8cafa8746197424f", "name": "Stray `console.log` in TS/JS \u2014 docs/src/components/showcase/EditorFileTestHero.tsx:28", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 docs/src/components/showcase/EditorFileTestHero.tsx:28"}, "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-70ccf7c47b9ed4a6", "name": "TODO/FIXME marker in shipping code \u2014 docs/src/components/showcase/FileListCard.tsx:2", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/components/showcase/FileListCard.tsx:2"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0c9e555b0b86618d", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/components/markdown/MarkdownElement.tsx:46", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/components/markdown/MarkdownElement.tsx:46"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-29521f11164765e4", "name": "TODO/FIXME marker in shipping code \u2014 docs/src/components/action/InfoCard.tsx:2", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/components/action/InfoCard.tsx:2"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-413c2e1b06f91283", "name": "TODO/FIXME marker in shipping code \u2014 docs/src/components/header/ThemeModeToggle.tsx:37", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/components/header/ThemeModeToggle.tsx:37"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-78a5063a843b65c8", "name": "TODO/FIXME marker in shipping code \u2014 docs/src/components/pricing/PricingTable.tsx:1258", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/components/pricing/PricingTable.tsx:1258"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3aaf5be6853ef9c8", "name": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/brandingTheme.ts:2", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/brandingTheme.ts:2"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4fa790a7a9c29a12", "name": "Stray `console.log` in TS/JS \u2014 docs/src/modules/auth/authStore.ts:214", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 docs/src/modules/auth/authStore.ts:214"}, "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-fcc133c13a50c84f", "name": "Stray `console.log` in TS/JS \u2014 docs/src/modules/auth/apiKeyStore.ts:69", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 docs/src/modules/auth/apiKeyStore.ts: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-588a943b17d7d25e", "name": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/utils/helpers.ts:32", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/utils/helpers.ts:32"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e0be9b08918d8957", "name": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/utils/i18n.js:2", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/utils/i18n.js:2"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ae454290c1b8ae9b", "name": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/utils/getProductInfoFromUrl.ts:77", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/utils/getProductInfoFromUrl.ts:77"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-306f1f90732c8b06", "name": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/utils/useQueryParameterState.ts:42", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/utils/useQueryParameterState.ts:42"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9a3d1c252f20a65c", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/BlogMarkdownEditor.tsx:292", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/BlogMarkdownEditor.tsx:292"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d9ee5589c994752a", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/MarkdownElement.js:812", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/MarkdownElement.js:812"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-07c1b5646f650f5a", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ComponentsApiContent.js:151", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ComponentsApiContent.js:151"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dfd3921ea475c383", "name": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/AppSettingsDrawer.js:45", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/AppSettingsDrawer.js:45"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e9fde2e416b5c74a", "name": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/Ad.js:93", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/Ad.js:93"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5961da2c89c096e5", "name": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/MarkdownDocsV2.js:44", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/MarkdownDocsV2.js:44"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2e8d98d912c2b828", "name": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/Link.tsx:2", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/Link.tsx:2"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c3e67b88635edd93", "name": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/AppSearch.js:561", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/AppSearch.js:561"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0e206146e82fe365", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/Notifications.js:240", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/Notifications.js:240"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1b6eb903c969c17d", "name": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/AppNavDrawer.js:25", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/AppNavDrawer.js:25"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-837291b877006ce1", "name": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/AppLayoutDocs.js:80", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/AppLayoutDocs.js:80"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e8bc50ad1e89a400", "name": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/ThemeContext.js:218", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/ThemeContext.js:218"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b0a37b30124a509f", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/AppLayoutDocsFooter.js:449", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/AppLayoutDocsFooter.js:449"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9fb92b1c7691741c", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/HooksApiContent.js:75", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/HooksApiContent.js:75"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-585774e6f07c401f", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/DemoEditor.tsx:161", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/DemoEditor.tsx:161"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5d571e52c85d9756", "name": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/InterfaceApiPage.js:23", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/InterfaceApiPage.js:23"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0fd431ab05226837", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/InterfaceApiPage.js:82", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/InterfaceApiPage.js:82"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-fec524b7e265431c", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/AdDisplay.js:60", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/AdDisplay.js:60"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3c17bbe9a9135d5b", "name": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/AppFrame.js:100", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/AppFrame.js:100"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-957de6501bcb8bb8", "name": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/DemoSandbox.js:171", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/DemoSandbox.js:171"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-24a4451735436c61", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/TopLayoutBlog.js:336", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/TopLayoutBlog.js:336"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8889e64e881179b8", "name": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/DemoToolbar.js:169", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/DemoToolbar.js:169"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-26aa91fbc8977d16", "name": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/DiamondSponsors.js:10", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/DiamondSponsors.js:10"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5309f16500415535", "name": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/AppTableOfContents.js:91", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/AppTableOfContents.js:91"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-20627557bf34bafa", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/AppTableOfContents.js:244", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/AppTableOfContents.js:244"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e66b8e4d8d49a1b8", "name": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/ApiPage.js:38", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/ApiPage.js:38"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e74314d63f8a5ec4", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ApiPage.js:230", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ApiPage.js:230"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1a91b11db3b83833", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/HighlightedCode.js:35", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/HighlightedCode.js:35"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-949c1fb956a53d07", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ApiPage/table/ClassesTable.tsx:92", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ApiPage/table/ClassesTable.tsx:92"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b8c377187f749b60", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ApiPage/table/SlotsTable.tsx:105", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ApiPage/table/SlotsTable.tsx:105"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-3d0d15fa35ea52e0", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ApiPage/table/PropertiesTable.tsx:112", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ApiPage/table/PropertiesTable.tsx:112"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1445b0e899c2a959", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ApiPage/list/SlotsList.tsx:88", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ApiPage/list/SlotsList.tsx:88"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e76bed04e25f7eaf", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ApiPage/list/ClassesList.tsx:96", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ApiPage/list/ClassesList.tsx:96"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2ef751a26e9c18d8", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ApiPage/list/PropertiesList.tsx:105", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ApiPage/list/PropertiesList.tsx:105"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7ac77e4efaa58458", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ApiPage/sections/SlotsSection.tsx:76", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ApiPage/sections/SlotsSection.tsx:76"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-07c201a68268f2e4", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ApiPage/sections/ClassesSection.tsx:11", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ApiPage/sections/ClassesSection.tsx:114"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4485783e087bd10e", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ApiPage/sections/PropertiesSection.js:", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ApiPage/sections/PropertiesSection.js:143"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-110150cee26d5132", "name": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/sandbox/Dependencies.ts:81", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/sandbox/Dependencies.ts:81"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-10f6007c2c34df24", "name": "Stray `console.log` in TS/JS \u2014 docs/src/modules/deliverables/localFiles.test.ts:17", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 docs/src/modules/deliverables/localFiles.test.ts:17"}, "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-78f7befad6f65c09", "name": "Stray `console.log` in TS/JS \u2014 docs/src/modules/openapi/docsApiOpenApiSpec.ts:270", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 docs/src/modules/openapi/docsApiOpenApiSpec.ts:270"}, "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-d6ee1dd6ce452689", "name": "Stray `console.log` in TS/JS \u2014 scripts/importConsultingInvoices.ts:168", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/importConsultingInvoices.ts: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-d8cd6f7492dc40ac", "name": "TODO/FIXME marker in shipping code \u2014 scripts/generateProptypes.ts:226", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 scripts/generateProptypes.ts:226"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0f7359bbdb7ccb83", "name": "Stray `console.log` in TS/JS \u2014 scripts/generateProptypes.ts:170", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generateProptypes.ts:170"}, "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-be0369672b03c30b", "name": "TODO/FIXME marker in shipping code \u2014 scripts/buildApiDocs/projectSettings/getComponentInfo.ts:30", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 scripts/buildApiDocs/projectSettings/getComponentInfo.ts:30"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-e99c54b8a418a7cb", "name": "TODO/FIXME marker in shipping code \u2014 scripts/buildApiDocs/projectSettings/index.ts:77", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 scripts/buildApiDocs/projectSettings/index.ts:77"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-b006c2e5cbdf3881", "name": "TODO/FIXME marker in shipping code \u2014 scripts/buildApiDocs/fileExplorerSettings/getComponentInfo.ts:30", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 scripts/buildApiDocs/fileExplorerSettings/getComponentInfo.ts:30"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-37f82d03898c68f9", "name": "Stray `console.log` in TS/JS \u2014 scripts/sizeSnapshot/worker.js:13", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sizeSnapshot/worker.js:13"}, "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-49bd79be49961d58", "name": "TODO/FIXME marker in shipping code \u2014 scripts/sizeSnapshot/webpack.config.js:124", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 scripts/sizeSnapshot/webpack.config.js:124"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9d5de5b02a9bdda5", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-media/src/abstractions/KeyboardShortcuts.ts:244", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-media/src/abstractions/KeyboardShortcuts.ts:244"}, "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-44e8ca8a5a3c114c", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-media/src/performance/metrics.ts:278", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-media/src/performance/metrics.ts:278"}, "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-e80c1c98e9882b4c", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-media/src/performance/benchmark.ts:23", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-media/src/performance/benchmark.ts: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-78b2a7aaa1e23038", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-media/src/components/MediaCard/MediaCard.tsx:69", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-media/src/components/MediaCard/MediaCard.tsx: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-f9408fcde8d810a6", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-media/src/components/MediaCard/MediaCard.stories.tsx:215", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-media/src/components/MediaCard/MediaCard.stories.tsx:215"}, "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-a827ad08aec9fee7", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-media/src/hooks/useMediaUpload.ts:56", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-media/src/hooks/useMediaUpload.ts:56"}, "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-031db576eb90dd17", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-media/src/MediaFile/MediaFile.ts:432", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-media/src/MediaFile/MediaFile.ts:432"}, "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-1f0b2973f391e151", "name": "TODO/FIXME marker in shipping code \u2014 packages/sui-github/test/integration/PopperChildrenLayout.test.js:126", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-github/test/integration/PopperChildrenLayout.test.js:126"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9a6c1e5be1017b6c", "name": "TODO/FIXME marker in shipping code \u2014 packages/sui-github/test/integration/Menu.test.js:266", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-github/test/integration/Menu.test.js:266"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-19f3724159c38808", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-github/test/typescript/OverridableComponent.spec.tsx:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-github/test/typescript/OverridableComponent.spec.tsx:40"}, "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-7c681e8a8202d9d1", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-github/src/apiHandlers/getGithubEvents.ts:41", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-github/src/apiHandlers/getGithubEvents.ts:41"}, "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-6631d1768075fe9d", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-github/src/GithubCalendar/GithubCalendar.tsx:221", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-github/src/GithubCalendar/GithubCalendar.tsx:221"}, "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-ce180a71aa83baf4", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-github/src/GithubEvents/GithubEvents.tsx:205", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-github/src/GithubEvents/GithubEvents.tsx:205"}, "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-3ba3ff187e916e84", "name": "TODO/FIXME marker in shipping code \u2014 packages/sui-github/src/GithubEvents/EventTypes/PullRequest/PullRequestEvent.tsx:16", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-github/src/GithubEvents/EventTypes/PullRequest/PullRequestEvent.tsx:165"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d6f8bd7e36cb52f4", "name": "TODO/FIXME marker in shipping code \u2014 packages/sui-editor/test/integration/PopperChildrenLayout.test.js:126", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-editor/test/integration/PopperChildrenLayout.test.js:126"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d5d4d0abb1fb596b", "name": "TODO/FIXME marker in shipping code \u2014 packages/sui-editor/test/integration/Menu.test.js:266", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-editor/test/integration/Menu.test.js:266"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-00e3aca618492cd3", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-editor/test/typescript/OverridableComponent.spec.tsx:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-editor/test/typescript/OverridableComponent.spec.tsx:40"}, "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-0a3301cffa7e68c8", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-editor/src/Editor/AudioPlayer.tsx:64", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-editor/src/Editor/AudioPlayer.tsx:64"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-7c0f33b7e3a5e917", "name": "TODO/FIXME marker in shipping code \u2014 packages/sui-editor/src/WasmPreview/useWasmRenderer.ts:290", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-editor/src/WasmPreview/useWasmRenderer.ts:290"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-804323b5c8e4bd67", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-editor/src/WasmPreview/useWasmRenderer.ts:155", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-editor/src/WasmPreview/useWasmRenderer.ts: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-ed1c66843ae926e7", "name": "TODO/FIXME marker in shipping code \u2014 packages/sui-editor/src/internals/utils/utils.ts:16", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-editor/src/internals/utils/utils.ts:16"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-750b1d7a78589d26", "name": "TODO/FIXME marker in shipping code \u2014 packages/sui-editor/src/internals/plugins/useEditorMetadata/useEditorMetadata.test.", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-editor/src/internals/plugins/useEditorMetadata/useEditorMetadata.test.tsx:77"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-fb2ea4ee57064092", "name": "TODO/FIXME marker in shipping code \u2014 packages/sui-editor/src/internals/plugins/useEditorKeyboard/useEditorKeyboard.ts:11", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-editor/src/internals/plugins/useEditorKeyboard/useEditorKeyboard.ts:114"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-945bc473661ec3c7", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-editor/src/internals/plugins/useEditorKeyboard/useEditorKeyboard.ts:41", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-editor/src/internals/plugins/useEditorKeyboard/useEditorKeyboard.ts:41"}, "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-c395725011d54fbd", "name": "React Flow <Controls> without dark theming \u2014 packages/sui-editor/src/EditorControls/EditorControls.tsx:629", "shortDescription": {"text": "React Flow <Controls> without dark theming \u2014 packages/sui-editor/src/EditorControls/EditorControls.tsx:629"}, "fullDescription": {"text": "`<Controls>` ships with white buttons. Override `.react-flow__controls` and `.react-flow__controls-button` in your stylesheet or pass a styled wrapper.\n\nWhy: P1 in CHECKLIST.md \u2014 vendor defaults bleed light through.\nRule id: fq.controls.no-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-a4c5ea856c5a1ec8", "name": "TODO/FIXME marker in shipping code \u2014 packages/sui-editor/src/Controllers/AnimationController.ts:75", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-editor/src/Controllers/AnimationController.ts:75"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d14ebcd509451564", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-editor/src/Controllers/AnimationController.ts:124", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-editor/src/Controllers/AnimationController.ts:124"}, "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-3ba17ec2b68a8c9e", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-editor/src/DetailView/ControlledVolumeSpan.tsx:60", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-editor/src/DetailView/ControlledVolumeSpan.tsx:60"}, "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-ec1d90caea928980", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-editor/src/DetailView/DetailTrack.tsx:50", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-editor/src/DetailView/DetailTrack.tsx:50"}, "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-432ac495b28fcee3", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-file-explorer/src/File/File.tsx:177", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-file-explorer/src/File/File.tsx:177"}, "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-9e2a5bd059258d35", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-file-explorer/src/FileExplorer/FileExplorer.benchmark.tsx:242", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-file-explorer/src/FileExplorer/FileExplorer.benchmark.tsx:242"}, "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-7e963e7b5d9a3afc", "name": "TODO/FIXME marker in shipping code \u2014 packages/sui-file-explorer/src/internals/FileIcon/FileIcon.tsx:47", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-file-explorer/src/internals/FileIcon/FileIcon.tsx:47"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5e181dc373c3e27b", "name": "TODO/FIXME marker in shipping code \u2014 packages/sui-file-explorer/src/internals/utils/utils.ts:16", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-file-explorer/src/internals/utils/utils.ts:16"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aba99936b8af8357", "name": "TODO/FIXME marker in shipping code \u2014 packages/sui-file-explorer/src/internals/utils/fileExplorer.ts:34", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-file-explorer/src/internals/utils/fileExplorer.ts:34"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-096aefbc86ddcdcd", "name": "TODO/FIXME marker in shipping code \u2014 packages/sui-file-explorer/src/internals/plugins/useFileExplorerSelection/useFileEx", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-file-explorer/src/internals/plugins/useFileExplorerSelection/useFileExplorerSelection.test.tsx:77"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-60384d6afdffc99b", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-file-explorer/src/internals/plugins/useFileExplorerDnd/useFileExplorerDnd.ts", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-file-explorer/src/internals/plugins/useFileExplorerDnd/useFileExplorerDnd.tsx:649"}, "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-ea90c259bd4f3f11", "name": "TODO/FIXME marker in shipping code \u2014 packages/sui-file-explorer/src/internals/plugins/useFileExplorerFiles/useFileExplor", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-file-explorer/src/internals/plugins/useFileExplorerFiles/useFileExplorerFiles.test.tsx:18"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3a3d838877f53517", "name": "TODO/FIXME marker in shipping code \u2014 packages/sui-file-explorer/src/internals/plugins/useFileExplorerFiles/useFileExplor", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-file-explorer/src/internals/plugins/useFileExplorerFiles/useFileExplorerFiles.tsx:108"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1b7fd0a4bdba14e3", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-file-explorer/src/internals/plugins/useFileExplorerFiles/useFileExplorerFile", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-file-explorer/src/internals/plugins/useFileExplorerFiles/useFileExplorerFiles.tsx:370"}, "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-9a2dc5757f59522f", "name": "TODO/FIXME marker in shipping code \u2014 packages/sui-file-explorer/src/internals/plugins/useFileExplorerKeyboardNavigation/", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-file-explorer/src/internals/plugins/useFileExplorerKeyboardNavigation/useFileExplorerKeyboardNavigation.ts:244"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0fa1cab815de0811", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-video-renderer/benchmark/wasm-vs-canvas.js:203", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-video-renderer/benchmark/wasm-vs-canvas.js:203"}, "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-e5e0d8d0c3653db7", "name": "TODO/FIXME marker in shipping code \u2014 packages/sui-video-renderer/pkg/wasm_preview_bg.js:536", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-video-renderer/pkg/wasm_preview_bg.js:536"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-422123e111b610bb", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-video-renderer/pkg/wasm_preview_bg.js:389", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-video-renderer/pkg/wasm_preview_bg.js:389"}, "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-8d9f7502500b8a28", "name": "React Flow <Controls> without dark theming \u2014 packages/sui-timeline/src/TimelineControls/TimelineControls.tsx:523", "shortDescription": {"text": "React Flow <Controls> without dark theming \u2014 packages/sui-timeline/src/TimelineControls/TimelineControls.tsx:523"}, "fullDescription": {"text": "`<Controls>` ships with white buttons. Override `.react-flow__controls` and `.react-flow__controls-button` in your stylesheet or pass a styled wrapper.\n\nWhy: P1 in CHECKLIST.md \u2014 vendor defaults bleed light through.\nRule id: fq.controls.no-bg"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-9647d3803a2e09f9", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-timeline/src/TimelineLabels/TimelineTrackActions.tsx:35", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-timeline/src/TimelineLabels/TimelineTrackActions.tsx:35"}, "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-76cbefb148d4cec3", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-timeline/src/utils/logger.ts:141", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-timeline/src/utils/logger.ts:141"}, "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-0bd52841ae51e45e", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-timeline/src/TimelineProvider/TimelineProviderFunctions.ts:93", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-timeline/src/TimelineProvider/TimelineProviderFunctions.ts:93"}, "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-7552c071fe27e11c", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-timeline/src/Engine/Engine.ts:559", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-timeline/src/Engine/Engine.ts:559"}, "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-8eac44cf4f745839", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-media-api/scripts/init-db.ts:41", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-media-api/scripts/init-db.ts:41"}, "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-9106d0941d5f6d5d", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-media-api/scripts/validate-openapi.ts:40", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-media-api/scripts/validate-openapi.ts:40"}, "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-f4b30fa72d5f6e75", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-media-api/scripts/export-openapi.ts:34", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-media-api/scripts/export-openapi.ts:34"}, "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-a07ca72f530458c2", "name": "TODO/FIXME marker in shipping code \u2014 packages/sui-media-api/src/media/media.controller.ts:469", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-media-api/src/media/media.controller.ts:469"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-609eee73142ddd3a", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-docs/restructure-components.js:45", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-docs/restructure-components.js:45"}, "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-092ce5ae6740e708", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-docs/verify-components.js:15", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-docs/verify-components.js:15"}, "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-b69e5702accebf65", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-docs/update-imports.js:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-docs/update-imports.js:16"}, "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-e77c512bdf6b8801", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-docs/restructure.js:32", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-docs/restructure.js:32"}, "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-5b4c9f3019e74aa4", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-docs/fix-extensions.js:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-docs/fix-extensions.js:16"}, "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-4d091c5def86e582", "name": "TODO/FIXME marker in shipping code \u2014 packages/sui-docs/src/utils.tsx:102", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-docs/src/utils.tsx:102"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-61089b3b48f9e98a", "name": "TODO/FIXME marker in shipping code \u2014 packages/sui-docs/src/components/Dependencies.ts:81", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-docs/src/components/Dependencies.ts:81"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1c46f69dc6553ecd", "name": "TODO/FIXME marker in shipping code \u2014 packages/sui-docs/src/components/DemoSandbox.tsx:181", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-docs/src/components/DemoSandbox.tsx:181"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-1066596c4f4db69e", "name": "TODO/FIXME marker in shipping code \u2014 packages/sui-docs/src/components/ThemeContext.tsx:226", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-docs/src/components/ThemeContext.tsx:226"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a72bf8111e2784a5", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/sui-docs/src/components/MarkdownElement.tsx:815", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/sui-docs/src/components/MarkdownElement.tsx:815"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a19f2603d924b7d5", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/sui-docs/src/components/HighlightedCode.tsx:45", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/sui-docs/src/components/HighlightedCode.tsx:45"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-625f5e5debb9fea3", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/sui-docs/src/components/DemoEditor.tsx:161", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/sui-docs/src/components/DemoEditor.tsx:161"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e83af21af35b613d", "name": "TODO/FIXME marker in shipping code \u2014 packages/sui-docs/src/components/getProductInfoFromUrl.ts:45", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-docs/src/components/getProductInfoFromUrl.ts:45"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2d60b851cbcbff1b", "name": "TODO/FIXME marker in shipping code \u2014 packages/sui-docs/src/components/DemoToolbar.tsx:170", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-docs/src/components/DemoToolbar.tsx:170"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-45fa7c3202f3dcc3", "name": "TODO/FIXME marker in shipping code \u2014 packages/sui-docs/src/branding/brandingTheme.ts:82", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-docs/src/branding/brandingTheme.ts:82"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ed0b92ba56790e89", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-common/src/MimeType/StokedUiMime.ts:42", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-common/src/MimeType/StokedUiMime.ts:42"}, "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-9fa206dc79796d7d", "name": "TODO/FIXME marker in shipping code \u2014 packages/sui-common/src/MimeType/IMimeType.ts:6", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-common/src/MimeType/IMimeType.ts:6"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-189738dc4977305c", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-common/src/SocialLinks/SocialLinks.tsx:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-common/src/SocialLinks/SocialLinks.tsx:16"}, "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-bb4a5b8586738ac5", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-common/src/Types/Types.js:6", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-common/src/Types/Types.js:6"}, "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-f6f037363b2ff2c0", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-common/src/Types/Types.ts:9", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-common/src/Types/Types.ts:9"}, "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-97daf2a72d32833d", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-common/src/GrokLoader/GrokLoader.tsx:61", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-common/src/GrokLoader/GrokLoader.tsx:61"}, "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-041b0b76a74191aa", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-common/src/ProviderState/Settings.ts:7", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-common/src/ProviderState/Settings.ts: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-1461994658547db1", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-common/src/ProviderState/ProviderState.ts:150", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-common/src/ProviderState/ProviderState.ts:150"}, "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-bc14320a076fe813", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-common/src/Colors/colors.ts:59", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-common/src/Colors/colors.ts:59"}, "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-83468a96482f95c2", "name": "Stray `console.log` in TS/JS \u2014 packages/sui-common/src/LocalDb/VideoDb.tsx:97", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-common/src/LocalDb/VideoDb.tsx:97"}, "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-a99aba9a19480327", "name": "Stray `console.log` in TS/JS \u2014 benchmark/compositor-comparison/node/compositor-bench.js:282", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/compositor-comparison/node/compositor-bench.js:282"}, "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-8e96953c253d91ad", "name": "Stray `console.log` in TS/JS \u2014 benchmark/server/scenarios/core.js:10", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/server/scenarios/core.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-6994490cf745559e", "name": "Stray `console.log` in TS/JS \u2014 benchmark/server/scenarios/docs.js:14", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/server/scenarios/docs.js:14"}, "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-d8dafe01fd7c2bcf", "name": "Stray `console.log` in TS/JS \u2014 benchmark/server/scenarios/server.js:169", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/server/scenarios/server.js:169"}, "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-b283354d8334da32", "name": "Stray `console.log` in TS/JS \u2014 benchmark/server/scenarios/styles.js:16", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/server/scenarios/styles.js:16"}, "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-8d64adf2aac5c60c", "name": "Stray `console.log` in TS/JS \u2014 benchmark/server/scenarios/system.js:10", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/server/scenarios/system.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-f784557e6623d8d2", "name": "TODO/FIXME marker in shipping code \u2014 benchmark/browser/webpack.config.js:38", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 benchmark/browser/webpack.config.js:38"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5ceea06315a3e25a", "name": "Stray `console.log` in TS/JS \u2014 benchmark/browser/scripts/benchmark.js:81", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/browser/scripts/benchmark.js:81"}, "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-11f065438eb8afac", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 examples/material-ui-nextjs-ts-v4-v5-migration/pages/_document.tsx", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 examples/material-ui-nextjs-ts-v4-v5-migration/pages/_document.tsx:85"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-eac62058446e786a", "name": "TODO/FIXME marker in shipping code \u2014 examples/material-ui-remix-ts/remix.config.js:8", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 examples/material-ui-remix-ts/remix.config.js:8"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0dccea6ceee6a1fb", "name": "`dangerouslySetInnerHTML` used in a React component \u2014 examples/joy-ui-nextjs-ts/src/components/ThemeRegistry/EmotionCach", "shortDescription": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 examples/joy-ui-nextjs-ts/src/components/ThemeRegistry/EmotionCache.tsx:76"}, "fullDescription": {"text": "Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library.\n\nWhy: OWASP basics. Already partially flagged by the security analyzer.\nRule id: fq.dangerous-html"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c8696fcd0605eb4e", "name": "TODO/FIXME marker in shipping code \u2014 examples/base-ui-nextjs-tailwind-ts/src/app/components.tsx:147", "shortDescription": {"text": "TODO/FIXME marker in shipping code \u2014 examples/base-ui-nextjs-tailwind-ts/src/app/components.tsx:147"}, "fullDescription": {"text": "Track in /reviews or /issues, not as a code comment that rots.\n\nWhy: Drift control \u2014 shouldn't be the same as Quality TODO scanner.\nRule id: fq.todo-marker"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0324467b85e2897b", "name": "Stray `console.log` in TS/JS \u2014 examples/material-ui-express-ssr/server.js:70", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 examples/material-ui-express-ssr/server.js:70"}, "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-809ab695f23de2b3", "name": "Stray `console.log` in TS/JS \u2014 examples/material-ui-cra-styled-components/src/serviceWorker.js:44", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 examples/material-ui-cra-styled-components/src/serviceWorker.js:44"}, "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-bc6d3db8465a060c", "name": "Docker base image is tag-pinned but not digest-pinned: node:18-alpine", "shortDescription": {"text": "Docker base image is tag-pinned but not digest-pinned: node:18-alpine"}, "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-218df0ee504283f1", "name": "Insecure pattern 'exec_used' in dangerfile.ts:21", "shortDescription": {"text": "Insecure pattern 'exec_used' in dangerfile.ts:21"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-a17ee9ff535ee743", "name": "Insecure pattern 'node_child_process' in dangerfile.ts:4", "shortDescription": {"text": "Insecure pattern 'node_child_process' in dangerfile.ts:4"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f9eaf628c61d7d63", "name": "Insecure pattern 'direct_innerhtml_assignment' in packages-internal/test-utils/src/createRenderer.tsx:325", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in packages-internal/test-utils/src/createRenderer.tsx:325"}, "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-38025deeaa3a9f8b", "name": "Insecure pattern 'node_child_process' in packages-internal/sui-envinfo/envinfo.test.js:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages-internal/sui-envinfo/envinfo.test.js:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b46181485c57988a", "name": "Insecure pattern 'exec_used' in packages-internal/sui-envinfo/scripts/build.js:19", "shortDescription": {"text": "Insecure pattern 'exec_used' in packages-internal/sui-envinfo/scripts/build.js:19"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5439c69ee6cb5986", "name": "Insecure pattern 'node_child_process' in packages-internal/sui-envinfo/scripts/build.js:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages-internal/sui-envinfo/scripts/build.js:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b2fbb88ed2085b46", "name": "Insecure pattern 'cors_wildcard' in api/promos.ts:92", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in api/promos.ts:92"}, "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-ccde9c4ca9afd058", "name": "Insecure pattern 'dangerous_innerhtml' in docs/pages/index.tsx:103", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/pages/index.tsx:103"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1fc042bd1e032c26", "name": "Insecure pattern 'dangerous_innerhtml' in docs/pages/_document.js:56", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/pages/_document.js:56"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9f21f4ffad477f1e", "name": "Insecure pattern 'dangerous_innerhtml' in docs/pages/blog/[slug].tsx:213", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/pages/blog/[slug].tsx:213"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-338b46b768957dde", "name": "Insecure pattern 'local_storage_auth_token' in docs/pages/products/feedback.tsx:209", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in docs/pages/products/feedback.tsx:209"}, "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-97311ed7e5adf810", "name": "Insecure pattern 'dangerous_innerhtml' in docs/pages/consulting/home.tsx:61", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/pages/consulting/home.tsx:61"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-39143e2bba7e7439", "name": "Insecure pattern 'local_storage_auth_token' in docs/pages/consulting/login.tsx:310", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in docs/pages/consulting/login.tsx:310"}, "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-51b97ee413d2dff5", "name": "Insecure pattern 'dangerous_innerhtml' in docs/pages/experiments/base/listbox.tsx:225", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/pages/experiments/base/listbox.tsx:225"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4701a1e0a6387aad", "name": "Insecure pattern 'direct_innerhtml_assignment' in docs/pages/experiments/base/components-gallery.tsx:252", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/pages/experiments/base/components-gallery.tsx:252"}, "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-be3cdbfd13d723fa", "name": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/BlogMarkdownEditor.tsx:292", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/BlogMarkdownEditor.tsx:292"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4958b49f6328055e", "name": "Insecure pattern 'local_storage_auth_token' in docs/src/modules/components/UsersPage.tsx:147", "shortDescription": {"text": "Insecure pattern 'local_storage_auth_token' in docs/src/modules/components/UsersPage.tsx:147"}, "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-4ba17e8c5529e90c", "name": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ComponentsApiContent.js:151", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ComponentsApiContent.js:151"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-033aaa147d6a2a35", "name": "Possible secret in docs/src/modules/components/AppSearch.js", "shortDescription": {"text": "Possible secret in docs/src/modules/components/AppSearch.js"}, "fullDescription": {"text": "Detected pattern matching generic_api_key. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-e281902f47e02386", "name": "Insecure pattern 'insert_adjacent_html' in docs/src/modules/components/AppSearch.js:390", "shortDescription": {"text": "Insecure pattern 'insert_adjacent_html' in docs/src/modules/components/AppSearch.js:390"}, "fullDescription": {"text": "Found a known-risky pattern (insert_adjacent_html). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c37fc2bf028fe5b5", "name": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/Notifications.js:240", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/Notifications.js:240"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7c6a7b4ddab7518b", "name": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/AppLayoutDocsFooter.js:449", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/AppLayoutDocsFooter.js:449"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-ff0ec060c14e6cfb", "name": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/HooksApiContent.js:75", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/HooksApiContent.js:75"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-4df06cbc54404447", "name": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/DemoEditor.tsx:161", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/DemoEditor.tsx:161"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-5407ccf5a7ca4368", "name": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/InterfaceApiPage.js:82", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/InterfaceApiPage.js:82"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-abf26fcaa7dcd091", "name": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/AdDisplay.js:60", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/AdDisplay.js:60"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a8a379dd63372094", "name": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/TopLayoutBlog.js:336", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/TopLayoutBlog.js:336"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b68a949ac98e4d7d", "name": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/AppTableOfContents.js:244", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/AppTableOfContents.js:244"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-1dd00a4ac9856636", "name": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ApiPage.js:230", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ApiPage.js:230"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-c9eb75dc0baacf09", "name": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/HighlightedCode.js:35", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/HighlightedCode.js:35"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f4cbff9e8aa96a01", "name": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ApiPage/table/ClassesTable.tsx:92", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ApiPage/table/ClassesTable.tsx:92"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-972f02f41cb3766e", "name": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ApiPage/table/SlotsTable.tsx:105", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ApiPage/table/SlotsTable.tsx:105"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-31e8530cb146ddca", "name": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ApiPage/table/PropertiesTable.tsx:112", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ApiPage/table/PropertiesTable.tsx:112"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-94934c0ad3766e0f", "name": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ApiPage/list/SlotsList.tsx:88", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ApiPage/list/SlotsList.tsx:88"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-45dd91ec3ad81dc8", "name": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ApiPage/list/ClassesList.tsx:96", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ApiPage/list/ClassesList.tsx:96"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-62080e6d267a3a69", "name": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ApiPage/list/PropertiesList.tsx:105", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ApiPage/list/PropertiesList.tsx:105"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-0bb303b2326b706b", "name": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ApiPage/sections/SlotsSection.tsx:76", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ApiPage/sections/SlotsSection.tsx:76"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dd2c478d3b19c776", "name": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ApiPage/sections/ClassesSection.tsx:114", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ApiPage/sections/ClassesSection.tsx:114"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a9575adc5a4bfbfe", "name": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ApiPage/sections/PropertiesSection.js:143", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ApiPage/sections/PropertiesSection.js:143"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-d1d6dee86beb9934", "name": "Possible secret in scripts/npm-local-add-user.sh", "shortDescription": {"text": "Possible secret in scripts/npm-local-add-user.sh"}, "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-eb2526bd97cf9e75", "name": "Insecure pattern 'exec_used' in scripts/releaseChangelog.mjs:41", "shortDescription": {"text": "Insecure pattern 'exec_used' in scripts/releaseChangelog.mjs:41"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-d6e2aed92d3ab196", "name": "Insecure pattern 'node_child_process' in scripts/releaseChangelog.mjs:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/releaseChangelog.mjs:2"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-811f90a37255f634", "name": "Insecure pattern 'node_child_process' in scripts/npmRelease.mjs:4", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/npmRelease.mjs:4"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2863398b4bb6caa3", "name": "Insecure pattern 'exec_used' in scripts/releaseTag.mjs:19", "shortDescription": {"text": "Insecure pattern 'exec_used' in scripts/releaseTag.mjs:19"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-5401641ae95d8e70", "name": "Insecure pattern 'node_child_process' in scripts/releaseTag.mjs:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/releaseTag.mjs:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-19972dae4b2c76cf", "name": "Insecure pattern 'exec_used' in scripts/build.mjs:95", "shortDescription": {"text": "Insecure pattern 'exec_used' in scripts/build.mjs:95"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-c0c18debf0b8f98c", "name": "Insecure pattern 'node_child_process' in scripts/build.mjs:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/build.mjs:1"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-e45e5550af97aa11", "name": "Insecure pattern 'exec_used' in scripts/useReactVersion.mjs:53", "shortDescription": {"text": "Insecure pattern 'exec_used' in scripts/useReactVersion.mjs:53"}, "fullDescription": {"text": "Found a known-risky pattern (exec_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-56effe759ce3c323", "name": "Insecure pattern 'node_child_process' in scripts/useReactVersion.mjs:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/useReactVersion.mjs:10"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b0bbc2e0e3818a00", "name": "Insecure pattern 'node_child_process' in scripts/test.mjs:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in scripts/test.mjs:2"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-52779703a4771207", "name": "Insecure pattern 'eval_used' in packages/sui-editor/src/EditorEngine/EditorEngine.ts:407", "shortDescription": {"text": "Insecure pattern 'eval_used' in packages/sui-editor/src/EditorEngine/EditorEngine.ts:407"}, "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-cd2fcddb0c5ecf6c", "name": "Insecure pattern 'direct_innerhtml_assignment' in packages/sui-file-explorer/test-benchmark.html:224", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in packages/sui-file-explorer/test-benchmark.html:224"}, "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-056c476f2e581804", "name": "Insecure pattern 'node_child_process' in packages/sui-file-explorer/scripts/benchmark.mjs:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/sui-file-explorer/scripts/benchmark.mjs:10"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-15e31e0895cce94a", "name": "Insecure pattern 'direct_innerhtml_assignment' in packages/sui-file-explorer/src/FileExplorer/FileExplorer.benchmark.tsx", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in packages/sui-file-explorer/src/FileExplorer/FileExplorer.benchmark.tsx:431"}, "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-3ee12ef7f029ef34", "name": "Insecure pattern 'new_function_used' in packages/sui-video-renderer/pkg/wasm_preview_bg.js:396", "shortDescription": {"text": "Insecure pattern 'new_function_used' in packages/sui-video-renderer/pkg/wasm_preview_bg.js:396"}, "fullDescription": {"text": "Found a known-risky pattern (new_function_used). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "high", "confidence": 1.0}}, {"id": "scanner-9d7d0f80a262c762", "name": "Possible secret in packages/sui-media-api/k8s/secret.yaml", "shortDescription": {"text": "Possible secret in packages/sui-media-api/k8s/secret.yaml"}, "fullDescription": {"text": "Detected pattern matching generic_api_key. Rotate the credential and move to a secret manager."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "critical", "confidence": 1.0}}, {"id": "scanner-3a35d79a3c33aff5", "name": "Insecure pattern 'cors_wildcard' in packages/sui-media-api/src/lambda.bootstrap.ts:103", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in packages/sui-media-api/src/lambda.bootstrap.ts:103"}, "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-c6b55ca26efe5fc4", "name": "Insecure pattern 'node_child_process' in packages/sui-media-api/src/media/metadata/metadata-extraction.service.ts:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/sui-media-api/src/media/metadata/metadata-extraction.service.ts:10"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2b84d7b5bb74ce14", "name": "Insecure pattern 'node_child_process' in packages/sui-media-api/src/media/metadata/video-processing.service.ts:9", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/sui-media-api/src/media/metadata/video-processing.service.ts:9"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-979ba048a7527c1b", "name": "Insecure pattern 'eval_used' in packages/sui-media-api/src/performance/metadata-extraction.optimization.ts:159", "shortDescription": {"text": "Insecure pattern 'eval_used' in packages/sui-media-api/src/performance/metadata-extraction.optimization.ts:159"}, "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-401ca7c751cbafc0", "name": "Insecure pattern 'node_child_process' in packages/sui-docs/restructure-components.js:6", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/sui-docs/restructure-components.js:6"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-214902b0c64aedbb", "name": "Insecure pattern 'dangerous_innerhtml' in packages/sui-docs/src/components/HighlightedCode.tsx:45", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in packages/sui-docs/src/components/HighlightedCode.tsx:45"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-85b8942f7333a1f9", "name": "Insecure pattern 'dangerous_innerhtml' in packages/sui-docs/src/components/DemoEditor.tsx:161", "shortDescription": {"text": "Insecure pattern 'dangerous_innerhtml' in packages/sui-docs/src/components/DemoEditor.tsx:161"}, "fullDescription": {"text": "Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f6f82583bcd7bde0", "name": "Insecure pattern 'cors_wildcard' in infra/api.ts:11", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in infra/api.ts:11"}, "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-6a38f89781e41ce7", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@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": "low", "confidence": 1.0}}, {"id": "scanner-8f4c232b4aa78fc9", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-77166cbd46fcd8e4", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-27924aa79fa4a517", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "pnpm/action-setup@v4 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-de53ac274e5b4ecf", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/checkout@v4 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-37716d9c0a33ad5c", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-a5037ecad3c32cc8", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "pnpm/action-setup@v4 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-3808dc79ba3f91b4", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f3d7c1a5b122c3bd", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-66e40d9d6cb55b2b", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "pnpm/action-setup@v4 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-3295c3ff963f5b76", "name": "GitHub Actions workflow grants broad write permissions", "shortDescription": {"text": "GitHub Actions workflow grants broad write permissions"}, "fullDescription": {"text": "CI tokens with write permissions increase blast radius when an action, dependency, or PR workflow is compromised. Prefer job-level least-privilege permissions."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-cb639d9a10a47b23", "name": "package.json defines install-time lifecycle scripts", "shortDescription": {"text": "package.json defines install-time lifecycle scripts"}, "fullDescription": {"text": "preinstall/install/postinstall/prepare scripts execute during dependency installation. Review them carefully for network calls, obfuscation, shell execution, or credential access."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-c3b7538b608e709d", "name": "package.json defines install-time lifecycle scripts", "shortDescription": {"text": "package.json defines install-time lifecycle scripts"}, "fullDescription": {"text": "preinstall/install/postinstall/prepare scripts execute during dependency installation. Review them carefully for network calls, obfuscation, shell execution, or credential access."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "low", "confidence": 1.0}}, {"id": "scanner-4e420e4ef9b9eb06", "name": "Very large file: packages-internal/cdn/src/App.jsx (1505 lines)", "shortDescription": {"text": "Very large file: packages-internal/cdn/src/App.jsx (1505 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-1413ea8928879e8b", "name": "Very large file: packages-internal/stoked-cli/src/commands/mod.rs (1652 lines)", "shortDescription": {"text": "Very large file: packages-internal/stoked-cli/src/commands/mod.rs (1652 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-fc56f4059b54e829", "name": "Very large file: test/bundling/scripts/fixtureTemplateValues.js (1635 lines)", "shortDescription": {"text": "Very large file: test/bundling/scripts/fixtureTemplateValues.js (1635 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-1ab081e936da1f0f", "name": "Very large file: docs/src/components/pricing/PricingTable.tsx (1617 lines)", "shortDescription": {"text": "Very large file: docs/src/components/pricing/PricingTable.tsx (1617 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-df4c018212691682", "name": "Very large file: docs/src/modules/components/JoyThemeBuilder.tsx (1742 lines)", "shortDescription": {"text": "Very large file: docs/src/modules/components/JoyThemeBuilder.tsx (1742 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-0205a6f776d6110e", "name": "Very large file: packages/sui-github/src/GithubEvents/GithubEvents.tsx (1377 lines)", "shortDescription": {"text": "Very large file: packages/sui-github/src/GithubEvents/GithubEvents.tsx (1377 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-9c227e33ac4fdccd", "name": "Very large file: packages/sui-cdn/src/CdnBrowser/CdnBrowser.tsx (1442 lines)", "shortDescription": {"text": "Very large file: packages/sui-cdn/src/CdnBrowser/CdnBrowser.tsx (1442 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-c74b33ea64d3a0f7", "name": "Very large file: packages/sui-video-renderer/compositor/src/compositor.rs (1596 lines)", "shortDescription": {"text": "Very large file: packages/sui-video-renderer/compositor/src/compositor.rs (1596 lines)"}, "fullDescription": {"text": "Files with >800 lines often hide complexity hotspots and discourage tests."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-ea3b5e389d8c9c0f", "name": "Low test-to-source ratio", "shortDescription": {"text": "Low test-to-source ratio"}, "fullDescription": {"text": "445 tests / 2149 src (ratio 0.21)."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5a885d9c67943e55", "name": "156 TODO/FIXME markers", "shortDescription": {"text": "156 TODO/FIXME markers"}, "fullDescription": {"text": "High count of TODO/FIXME/HACK markers \u2014 track them as issues so they're not forgotten."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-50f2868c9db52456", "name": "Node manifest has dependencies but no lockfile: packages-internal/cdn/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages-internal/cdn/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-0acff74fba82e4b8", "name": "Node manifest has dependencies but no lockfile: packages-internal/proptypes/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages-internal/proptypes/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-bd5c6f55d69a7b4f", "name": "Node manifest has dependencies but no lockfile: packages-internal/cdn-sui/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages-internal/cdn-sui/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-f5e66ab4f26a3430", "name": "Node manifest has dependencies but no lockfile: packages-internal/rsc-builder/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages-internal/rsc-builder/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-5715df03d028266a", "name": "Node manifest has dependencies but no lockfile: packages-internal/react-docgen-types/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages-internal/react-docgen-types/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-e7bd762d4728d720", "name": "Node manifest has dependencies but no lockfile: packages-internal/test-utils/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages-internal/test-utils/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-d70e5019b7de9aed", "name": "Node manifest has dependencies but no lockfile: packages-internal/markdown/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages-internal/markdown/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-976b6e03f17fb047", "name": "Node manifest has dependencies but no lockfile: packages-internal/netlify-plugin-cache-docs/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages-internal/netlify-plugin-cache-docs/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-35be6525b1970eb1", "name": "Node manifest has dependencies but no lockfile: packages-internal/sui-video-validator/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages-internal/sui-video-validator/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-55b7dca7ef07406c", "name": "Node manifest has dependencies but no lockfile: packages-internal/eslint-plugin-stoked-ui/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages-internal/eslint-plugin-stoked-ui/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-0eb61c73f2a6bf8c", "name": "Node manifest has dependencies but no lockfile: packages-internal/sui-envinfo/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages-internal/sui-envinfo/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-cd2dd75029aac675", "name": "Node manifest has dependencies but no lockfile: packages-internal/sui-envinfo/test/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages-internal/sui-envinfo/test/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-e731e4b78f454931", "name": "Node manifest has dependencies but no lockfile: packages-internal/feedback/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages-internal/feedback/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-9600d6028175d2d9", "name": "Node manifest has dependencies but no lockfile: packages-internal/api-docs-builder/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages-internal/api-docs-builder/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-189e1964c007752d", "name": "Node manifest has dependencies but no lockfile: packages-internal/docs-utils/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages-internal/docs-utils/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-5d53f0b13302a0d8", "name": "Node manifest has dependencies but no lockfile: test/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: test/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-973740111bc39600", "name": "Node manifest has dependencies but no lockfile: test/bundling/fixtures/next-webpack4/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: test/bundling/fixtures/next-webpack4/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-d980f4d3fd5ab47e", "name": "Node manifest has dependencies but no lockfile: test/bundling/fixtures/snowpack/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: test/bundling/fixtures/snowpack/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-350df2a648adaaee", "name": "Node manifest has dependencies but no lockfile: test/bundling/fixtures/vite/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: test/bundling/fixtures/vite/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-6d0d8a01635961dd", "name": "Node manifest has dependencies but no lockfile: test/bundling/fixtures/gatsby/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: test/bundling/fixtures/gatsby/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-29a454ab947e24c2", "name": "Node manifest has dependencies but no lockfile: test/bundling/fixtures/node-esm/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: test/bundling/fixtures/node-esm/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-b1f0b9944f6cbc48", "name": "Node manifest has dependencies but no lockfile: test/bundling/fixtures/create-react-app/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: test/bundling/fixtures/create-react-app/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-f396e12ffe3130b1", "name": "Node manifest has dependencies but no lockfile: test/bundling/fixtures/next-webpack5/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: test/bundling/fixtures/next-webpack5/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-d2b49e2a69faf7cc", "name": "Node manifest has dependencies but no lockfile: test/bundling/fixtures/esbuild/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: test/bundling/fixtures/esbuild/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-b8fae141f052f3ab", "name": "Node manifest has dependencies but no lockfile: docs/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: docs/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-edd1106c0cb0c05c", "name": "Node manifest has dependencies but no lockfile: packages/sui-media/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/sui-media/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-ed18e75b031c3541", "name": "Node manifest has dependencies but no lockfile: packages/sui-github/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/sui-github/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-ebd0c2a8494c78e3", "name": "Node manifest has dependencies but no lockfile: packages/sui-editor/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/sui-editor/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-336ae01906077c07", "name": "Node manifest has dependencies but no lockfile: packages/sui-file-explorer/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/sui-file-explorer/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-08c9ed4cd849ac94", "name": "Node manifest has dependencies but no lockfile: packages/sui-cdn/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/sui-cdn/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-9b3ff053ac027255", "name": "Node manifest has dependencies but no lockfile: packages/sui-timeline/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/sui-timeline/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-577ddb65e7ee29d9", "name": "Node manifest has dependencies but no lockfile: packages/sui-media-api/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/sui-media-api/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-da6c23bf8f1d4fbb", "name": "Node manifest has dependencies but no lockfile: packages/sui-common-api/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/sui-common-api/package.json"}, "fullDescription": {"text": "`package.json` declares dependencies, but no same-directory npm/pnpm/yarn/bun lockfile was found. Generated projects without lockfiles are less reproducible and harder to secure-scan precisely."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-3bc45aab28fc407f", "name": "Node manifest has dependencies but no lockfile: packages/sui-docs/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/sui-docs/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-63888f58af4e5867", "name": "Node manifest has dependencies but no lockfile: packages/sui-common/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: packages/sui-common/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-56b859808c3370f6", "name": "Node manifest has dependencies but no lockfile: benchmark/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: benchmark/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-80be565d4d984859", "name": "Node manifest has dependencies but no lockfile: benchmark/compositor-comparison/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: benchmark/compositor-comparison/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-63a8911ac52c2588", "name": "Node manifest has dependencies but no lockfile: examples/material-ui-nextjs-ts-v4-v5-migration/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: examples/material-ui-nextjs-ts-v4-v5-migration/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-85fafb8e013677b1", "name": "Node manifest has dependencies but no lockfile: examples/material-ui-nextjs-pages-router-ts/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: examples/material-ui-nextjs-pages-router-ts/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-2a781b860632b1f0", "name": "Node manifest has dependencies but no lockfile: examples/base-ui-vite-tailwind-ts/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: examples/base-ui-vite-tailwind-ts/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-afcd3e7e3126bf33", "name": "Node manifest has dependencies but no lockfile: examples/material-ui-cra-styled-components-ts/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: examples/material-ui-cra-styled-components-ts/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-9835be513f2444a5", "name": "Node manifest has dependencies but no lockfile: examples/material-ui-nextjs-ts/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: examples/material-ui-nextjs-ts/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-dc2d56efc990be2c", "name": "Node manifest has dependencies but no lockfile: examples/material-ui-remix-ts/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: examples/material-ui-remix-ts/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-9bc28eec5728a92f", "name": "Node manifest has dependencies but no lockfile: examples/joy-ui-nextjs-ts/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: examples/joy-ui-nextjs-ts/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-95ca63316b112bf8", "name": "Node manifest has dependencies but no lockfile: examples/material-ui-cra-tailwind-ts/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: examples/material-ui-cra-tailwind-ts/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-da300a8b043393e6", "name": "Node manifest has dependencies but no lockfile: examples/material-ui-vite-ts/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: examples/material-ui-vite-ts/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-f9f533855cb7d4ef", "name": "Node manifest has dependencies but no lockfile: examples/base-ui-nextjs-tailwind-ts/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: examples/base-ui-nextjs-tailwind-ts/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-5a3268b5325488c3", "name": "Node manifest has dependencies but no lockfile: examples/joy-ui-cra-ts/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: examples/joy-ui-cra-ts/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-3a5a11a32277e0e1", "name": "Node manifest has dependencies but no lockfile: examples/material-ui-vite/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: examples/material-ui-vite/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-68c7766e2bec99b3", "name": "Node manifest has dependencies but no lockfile: examples/material-ui-gatsby/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: examples/material-ui-gatsby/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-48b2dd600e38e88d", "name": "Node manifest has dependencies but no lockfile: examples/material-ui-nextjs/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: examples/material-ui-nextjs/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-701b945b0daa9996", "name": "Node manifest has dependencies but no lockfile: examples/base-ui-cra-ts/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: examples/base-ui-cra-ts/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-6ead080412ba5a6c", "name": "Node manifest has dependencies but no lockfile: examples/material-ui-express-ssr/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: examples/material-ui-express-ssr/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-af81e82a5742ab3a", "name": "Node manifest has dependencies but no lockfile: examples/joy-ui-vite-ts/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: examples/joy-ui-vite-ts/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-2650bec301d5921b", "name": "Node manifest has dependencies but no lockfile: examples/material-ui-preact/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: examples/material-ui-preact/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-fb79094d8133a0f8", "name": "Node manifest has dependencies but no lockfile: examples/base-ui-vite-tailwind/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: examples/base-ui-vite-tailwind/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-141642d873c3f125", "name": "Node manifest has dependencies but no lockfile: examples/material-ui-cra-ts/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: examples/material-ui-cra-ts/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-9a5965d99808bb5f", "name": "Node manifest has dependencies but no lockfile: examples/material-ui-cra-styled-components/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: examples/material-ui-cra-styled-components/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-3e79565c7be7300b", "name": "Node manifest has dependencies but no lockfile: examples/base-ui-cra/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: examples/base-ui-cra/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-14c130a7e66505ef", "name": "Node manifest has dependencies but no lockfile: examples/material-ui-cra/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: examples/material-ui-cra/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-3e4ddfe595c2de7c", "name": "Node manifest has dependencies but no lockfile: examples/material-ui-nextjs-pages-router/package.json", "shortDescription": {"text": "Node manifest has dependencies but no lockfile: examples/material-ui-nextjs-pages-router/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 487 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 162 placeholder/mock markers across 66 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-9d79c4077342a7d0", "name": "Runtime service client appears to use placeholder configuration", "shortDescription": {"text": "Runtime service client appears to use placeholder configuration"}, "fullDescription": {"text": "A runtime source file appears to wire Supabase/Firebase/AI/payment-style clients to placeholder URLs, keys, or fallback values. In the Fable corpus this often means the UI/API shape is present while the backend service is not actually configured."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-749d4bc1bd66df5f", "name": "Agent instructions exist but release-hardening basics are missing", "shortDescription": {"text": "Agent instructions exist but release-hardening basics are missing"}, "fullDescription": {"text": "AI-coder instruction files were found, but the repo is missing 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-e725d2ab884fbd49", "name": "Multiple root agent instruction files without precedence", "shortDescription": {"text": "Multiple root agent instruction files without precedence"}, "fullDescription": {"text": "The repo has multiple top-level AI-coder instruction files. Without precedence rules, different agents may follow different policies."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "low", "confidence": 1.0}}, {"id": "scanner-2d2ea5ef382a895d", "name": "Commented-code block (5 lines) in packages-internal/proptypes/typescript-to-proptypes/test/typescript-to-proptypes.test.", "shortDescription": {"text": "Commented-code block (5 lines) in packages-internal/proptypes/typescript-to-proptypes/test/typescript-to-proptypes.test.ts:50"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4f0a0ea4699ce100", "name": "Commented-code block (5 lines) in packages-internal/proptypes/typescript-to-proptypes/src/getPropTypesFromFile.ts:361", "shortDescription": {"text": "Commented-code block (5 lines) in packages-internal/proptypes/typescript-to-proptypes/src/getPropTypesFromFile.ts:361"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-555ec748f43e8ca8", "name": "Commented-code block (6 lines) in packages-internal/proptypes/typescript-to-proptypes/src/injectPropTypesInFile.ts:208", "shortDescription": {"text": "Commented-code block (6 lines) in packages-internal/proptypes/typescript-to-proptypes/src/injectPropTypesInFile.ts:208"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-61eeda0a774d0ef1", "name": "Commented-code block (7 lines) in packages-internal/test-utils/src/fireDiscreteEvent.ts:40", "shortDescription": {"text": "Commented-code block (7 lines) in packages-internal/test-utils/src/fireDiscreteEvent.ts:40"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-64c672bbe6333a7d", "name": "Legacy-named symbol `isDeprecated` in packages-internal/api-docs-builder/utils/parseSlotsAndClasses.ts:12", "shortDescription": {"text": "Legacy-named symbol `isDeprecated` in packages-internal/api-docs-builder/utils/parseSlotsAndClasses.ts: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-3a57b96b7e097d03", "name": "Commented-code block (6 lines) in packages-internal/api-docs-builder/ApiBuilders/HookApiBuilder.ts:576", "shortDescription": {"text": "Commented-code block (6 lines) in packages-internal/api-docs-builder/ApiBuilders/HookApiBuilder.ts:576"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-9a03231c26741f93", "name": "Legacy-named symbol `isDeprecated` in packages-internal/docs-utils/src/ComponentClassDefinition.ts:6", "shortDescription": {"text": "Legacy-named symbol `isDeprecated` in packages-internal/docs-utils/src/ComponentClassDefinition.ts:6"}, "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-f016c749b2d78d63", "name": "Commented-code block (5 lines) in projects/media-pairing-poster-detection/build-state.mjs:2", "shortDescription": {"text": "Commented-code block (5 lines) in projects/media-pairing-poster-detection/build-state.mjs:2"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5a23a31b78a92e0c", "name": "Commented-code block (6 lines) in projects/media-pairing-poster-detection/state.mjs:5", "shortDescription": {"text": "Commented-code block (6 lines) in projects/media-pairing-poster-detection/state.mjs:5"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-33ce41d70107eba5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/pages/_app.js:126", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/pages/_app.js:126"}, "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-517ea5c22920f148", "name": "Commented-code block (5 lines) in docs/pages/index.tsx:51", "shortDescription": {"text": "Commented-code block (5 lines) in docs/pages/index.tsx: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-1ed450767ad1bf21", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/pages/products/feedback.tsx:94", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/pages/products/feedback.tsx:94"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-f97c7d604b25436d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/pages/consulting/login.tsx:286", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/pages/consulting/login.tsx:286"}, "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-f67e8424ef9d9bd4", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/pages/experiments/base/components-gallery.tsx:188", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/pages/experiments/base/components-gallery.tsx:188"}, "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-447232314c95a8d5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/src/products.tsx:1320", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/src/products.tsx:1320"}, "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-6e29af3fe02a0496", "name": "Commented-code block (5 lines) in docs/src/modules/auditBot/llmClient.ts:27", "shortDescription": {"text": "Commented-code block (5 lines) in docs/src/modules/auditBot/llmClient.ts:27"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-edd0db3cdfa85c19", "name": "Commented-code block (5 lines) in docs/src/modules/auditBot/tools.ts:51", "shortDescription": {"text": "Commented-code block (5 lines) in docs/src/modules/auditBot/tools.ts: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-600dc810331f6c79", "name": "Commented-code block (6 lines) in docs/src/modules/utils/babel-plugin-jsx-preview.js:45", "shortDescription": {"text": "Commented-code block (6 lines) in docs/src/modules/utils/babel-plugin-jsx-preview.js: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-fc631056c8b85c55", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/src/modules/components/Notifications.js:24", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/src/modules/components/Notifications.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-0aeef742a62275b0", "name": "Commented-code block (7 lines) in docs/src/modules/components/DemoSandbox.js:107", "shortDescription": {"text": "Commented-code block (7 lines) in docs/src/modules/components/DemoSandbox.js: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-d67d651c9d1d2b5c", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/src/modules/components/BlogEditorForm.tsx:183", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/src/modules/components/BlogEditorForm.tsx:183"}, "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-980ef73beae2bc9d", "name": "Legacy-named symbol `isDeprecated` in docs/src/modules/components/ApiPage/table/ClassesTable.tsx:80", "shortDescription": {"text": "Legacy-named symbol `isDeprecated` in docs/src/modules/components/ApiPage/table/ClassesTable.tsx:80"}, "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-48fd15594dc715a3", "name": "Legacy-named symbol `isDeprecated` in docs/src/modules/components/ApiPage/table/PropertiesTable.tsx:152", "shortDescription": {"text": "Legacy-named symbol `isDeprecated` in docs/src/modules/components/ApiPage/table/PropertiesTable.tsx:152"}, "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-1ddcb433cadb89de", "name": "Legacy-named symbol `isDeprecated` in docs/src/modules/components/ApiPage/list/ClassesList.tsx:76", "shortDescription": {"text": "Legacy-named symbol `isDeprecated` in docs/src/modules/components/ApiPage/list/ClassesList.tsx:76"}, "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-8bda0d5cd850b70a", "name": "Legacy-named symbol `isDeprecated` in docs/src/modules/components/ApiPage/list/PropertiesList.tsx:139", "shortDescription": {"text": "Legacy-named symbol `isDeprecated` in docs/src/modules/components/ApiPage/list/PropertiesList.tsx:139"}, "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-0eb588acf97a05ac", "name": "Legacy-named symbol `isDeprecated` in docs/src/modules/components/ApiPage/sections/PropertiesSection.js:65", "shortDescription": {"text": "Legacy-named symbol `isDeprecated` in docs/src/modules/components/ApiPage/sections/PropertiesSection.js:65"}, "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-186d70e6ad32b94d", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/src/modules/chat/telegramTransport.ts:124", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/src/modules/chat/telegramTransport.ts:124"}, "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-985845c9928557d9", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/src/modules/license/StripeEmbeddedCheckout.tsx:53", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/src/modules/license/StripeEmbeddedCheckout.tsx:53"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6fcc149b73eaf5d0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 docs/src/layouts/AppHeader.tsx:111", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/src/layouts/AppHeader.tsx:111"}, "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-dbe35ba766a5ea8b", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/npmRelease.mjs:191", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/npmRelease.mjs:191"}, "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-ec4ed6d75bd6a5ba", "name": "Commented-code block (6 lines) in scripts/useReactVersion.mjs:82", "shortDescription": {"text": "Commented-code block (6 lines) in scripts/useReactVersion.mjs:82"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-644e0627faca1ea0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/sizeSnapshot/loadComparison.js:25", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/sizeSnapshot/loadComparison.js:25"}, "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-37fd6245555c8dba", "name": "Legacy-named symbol `saveFileDeprecated` in packages/sui-media/src/WebFile/WebFile.ts:12", "shortDescription": {"text": "Legacy-named symbol `saveFileDeprecated` in packages/sui-media/src/WebFile/WebFile.ts: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-59df71798cdd0991", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-media/src/WebFile/WebFile.ts:236", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-media/src/WebFile/WebFile.ts:236"}, "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-6f175d5221bff913", "name": "Commented-code block (13 lines) in packages/sui-media/src/components/MediaCard/MediaCard.tsx:326", "shortDescription": {"text": "Commented-code block (13 lines) in packages/sui-media/src/components/MediaCard/MediaCard.tsx:326"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4b1238f219ff88e7", "name": "Legacy-named symbol `saveFileDeprecated` in packages/sui-media/src/FileSystemApi/FileSystemApi.ts:62", "shortDescription": {"text": "Legacy-named symbol `saveFileDeprecated` in packages/sui-media/src/FileSystemApi/FileSystemApi.ts:62"}, "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-da7a44b3a42d6927", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-media/src/hooks/useMediaGallery.ts:36", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-media/src/hooks/useMediaGallery.ts: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-61ce81bb675e6386", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-media/src/server/next-handler.ts:81", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-media/src/server/next-handler.ts:81"}, "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-537862593812d3c1", "name": "Legacy-named symbol `saveFileDeprecated` in packages/sui-media/src/MediaFile/MediaFile.ts:26", "shortDescription": {"text": "Legacy-named symbol `saveFileDeprecated` in packages/sui-media/src/MediaFile/MediaFile.ts:26"}, "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-8ba9007ee090a106", "name": "Commented-code block (6 lines) in packages/sui-media/src/App/AppFile/AppFile.ts:202", "shortDescription": {"text": "Commented-code block (6 lines) in packages/sui-media/src/App/AppFile/AppFile.ts:202"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8848debfdfb9a962", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-media/src/App/AppFile/AppFile.ts:88", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-media/src/App/AppFile/AppFile.ts:88"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-40b0d41b8bf2f493", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-github/src/apiHandlers/githubApi.ts:34", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-github/src/apiHandlers/githubApi.ts:34"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-873743d95d4c7e18", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-github/src/apiHandlers/getGithubContributions.ts:117", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-github/src/apiHandlers/getGithubContributions.ts:117"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-dbdf5cb099f08af6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-github/src/apiHandlers/getPullRequestDetails.ts:41", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-github/src/apiHandlers/getPullRequestDetails.ts:41"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-42cef079d6b488d7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-github/src/apiHandlers/getGithubEvents.ts:64", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-github/src/apiHandlers/getGithubEvents.ts:64"}, "fullDescription": {"text": "Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-00bcab1539e218e2", "name": "Commented-code block (9 lines) in packages/sui-github/src/GithubEvents/GithubEvents.tsx:324", "shortDescription": {"text": "Commented-code block (9 lines) in packages/sui-github/src/GithubEvents/GithubEvents.tsx:324"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4d6168ccde0d19b7", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-github/src/GithubEvents/GithubEvents.tsx:220", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-github/src/GithubEvents/GithubEvents.tsx:220"}, "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-412d8ac38102bdc0", "name": "Legacy-named symbol `projects_v2` in packages/sui-github/src/GithubEvents/EventTypes/ProjectsV2Event.tsx:17", "shortDescription": {"text": "Legacy-named symbol `projects_v2` in packages/sui-github/src/GithubEvents/EventTypes/ProjectsV2Event.tsx:17"}, "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-6d57a108aec1f0cb", "name": "Commented-code block (19 lines) in packages/sui-github/src/GithubEvents/EventTypes/PullRequest/PullRequestEvent.tsx:329", "shortDescription": {"text": "Commented-code block (19 lines) in packages/sui-github/src/GithubEvents/EventTypes/PullRequest/PullRequestEvent.tsx: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-8c019bd4dc0aae61", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-github/src/GithubEvents/EventTypes/PullRequest/PullRequestEve", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-github/src/GithubEvents/EventTypes/PullRequest/PullRequestEvent.tsx:21"}, "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-76720538d22f603f", "name": "Commented-code block (14 lines) in packages/sui-github/src/GithubEvents/EventTypes/PullRequest/FileChanges.tsx:14", "shortDescription": {"text": "Commented-code block (14 lines) in packages/sui-github/src/GithubEvents/EventTypes/PullRequest/FileChanges.tsx:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bc77e93360dd065e", "name": "Commented-code block (5 lines) in packages/sui-editor/src/EditorView/EditorView.tsx:43", "shortDescription": {"text": "Commented-code block (5 lines) in packages/sui-editor/src/EditorView/EditorView.tsx:43"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d111689195fcf200", "name": "Commented-code block (6 lines) in packages/sui-editor/src/internals/useEditor/useEditorModels.ts:17", "shortDescription": {"text": "Commented-code block (6 lines) in packages/sui-editor/src/internals/useEditor/useEditorModels.ts:17"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0101f80698c3234d", "name": "Commented-code block (5 lines) in packages/sui-editor/src/DetailView/ControlledColor.tsx:74", "shortDescription": {"text": "Commented-code block (5 lines) in packages/sui-editor/src/DetailView/ControlledColor.tsx:74"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-ea2248e03af0e14a", "name": "Legacy-named symbol `FileExplorerLegacy` in packages/sui-file-explorer/src/index.ts:19", "shortDescription": {"text": "Legacy-named symbol `FileExplorerLegacy` in packages/sui-file-explorer/src/index.ts: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-76904c6ba9e648ff", "name": "Legacy-named symbol `FileExplorerLegacy` in packages/sui-file-explorer/src/FileExplorer/FileExplorerWithFlags.tsx:5", "shortDescription": {"text": "Legacy-named symbol `FileExplorerLegacy` in packages/sui-file-explorer/src/FileExplorer/FileExplorerWithFlags.tsx:5"}, "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-6f0f6d7fc31b8ad0", "name": "Legacy-named symbol `FileExplorerLegacy` in packages/sui-file-explorer/src/FileExplorer/FileExplorerLegacy.tsx:70", "shortDescription": {"text": "Legacy-named symbol `FileExplorerLegacy` in packages/sui-file-explorer/src/FileExplorer/FileExplorerLegacy.tsx:70"}, "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-fd74882b754beb5a", "name": "Legacy-named symbol `FileExplorerLegacy` in packages/sui-file-explorer/src/FileExplorer/index.ts:2", "shortDescription": {"text": "Legacy-named symbol `FileExplorerLegacy` in packages/sui-file-explorer/src/FileExplorer/index.ts:2"}, "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-3ffbcb0fbc64918b", "name": "Legacy-named symbol `FileExplorerLegacy` in packages/sui-file-explorer/src/FileExplorer/FileExplorer.tsx:6", "shortDescription": {"text": "Legacy-named symbol `FileExplorerLegacy` in packages/sui-file-explorer/src/FileExplorer/FileExplorer.tsx:6"}, "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-66fdbccfbf2e9c8a", "name": "Commented-code block (5 lines) in packages/sui-file-explorer/src/internals/plugins/useFileExplorerDnd/muiXDndAdapters.ts", "shortDescription": {"text": "Commented-code block (5 lines) in packages/sui-file-explorer/src/internals/plugins/useFileExplorerDnd/muiXDndAdapters.ts:100"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3cb65b1abd906d60", "name": "Commented-code block (7 lines) in packages/sui-timeline/src/Timeline/Timeline.tsx:188", "shortDescription": {"text": "Commented-code block (7 lines) in packages/sui-timeline/src/Timeline/Timeline.tsx:188"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-445d1d989f0aa437", "name": "Commented-code block (5 lines) in packages/sui-media-api/scripts/init-db.ts:69", "shortDescription": {"text": "Commented-code block (5 lines) in packages/sui-media-api/scripts/init-db.ts:69"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-543885ea0d2117d5", "name": "Commented-code block (7 lines) in packages/sui-docs/src/components/DemoSandbox.tsx:117", "shortDescription": {"text": "Commented-code block (7 lines) in packages/sui-docs/src/components/DemoSandbox.tsx:117"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a5baa8829d04b1d1", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-common/src/LocalDb/VideoDb.tsx:19", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-common/src/LocalDb/VideoDb.tsx:19"}, "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-1fa265907f90048a", "name": "Commented-code block (5 lines) in examples/material-ui-cra-styled-components/src/serviceWorker.js:4", "shortDescription": {"text": "Commented-code block (5 lines) in examples/material-ui-cra-styled-components/src/serviceWorker.js:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-050eccbfadc86871", "name": "`fetch()` without try/.catch or AbortSignal \u2014 examples/material-ui-cra-styled-components/src/serviceWorker.js:103", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 examples/material-ui-cra-styled-components/src/serviceWorker.js:103"}, "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-df38278981a4454a", "name": "Commented-code block (14 lines) in any/file/using/Grid.tsx:4", "shortDescription": {"text": "Commented-code block (14 lines) in any/file/using/Grid.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5ac5c14a5adf5371", "name": "Commented-code block (6 lines) in any/file/using/AutoSizer.tsx:4", "shortDescription": {"text": "Commented-code block (6 lines) in any/file/using/AutoSizer.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c39d22c0a61fa8d6", "name": "Commented-code block (8 lines) in any/file/using/Table.tsx:4", "shortDescription": {"text": "Commented-code block (8 lines) in any/file/using/Table.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-aee1acc4fac708df", "name": "Commented-code block (12 lines) in any/file/using/List.tsx:4", "shortDescription": {"text": "Commented-code block (12 lines) in any/file/using/List.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-491d5d55a316d7f3", "name": "Commented-code block (13 lines) in any/file/using/virtualized/List.tsx:4", "shortDescription": {"text": "Commented-code block (13 lines) in any/file/using/virtualized/List.tsx:4"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2e0ac1bc93db6d07", "name": "Commented-code block (9 lines) in infra/site.ts:127", "shortDescription": {"text": "Commented-code block (9 lines) in infra/site.ts:127"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4b235250166de838", "name": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/deploy-succeeded.js:20", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/deploy-succeeded.js:20"}, "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-7ff671545f021ad3", "name": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/edge-functions/og-image.tsx:234", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/edge-functions/og-image.tsx:234"}, "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-02239bc53ac450e8", "name": "107 env vars used in code but missing from .env.example", "shortDescription": {"text": "107 env vars used in code but missing from .env.example"}, "fullDescription": {"text": "Drift between code and config docs. The first few: `ARGOS_TOKEN`, `AUTH_PUBLIC_ORIGINS`, `AUTH_TRANSFER_SECRET`, `BABEL_ENV`, `BLOG_API_URL`, `BLOG_IMAGE_CDN_URL`, `BLOG_IMAGE_S3_BUCKET`, `BROWSERSTACK_ACCESS_KEY` + 99 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-5fb2e799a6d96fa9", "name": "Dangling fetch: GET https://fonts.google.com/metadata/icons (docs/scripts/updateIconSynonyms.js:19)", "shortDescription": {"text": "Dangling fetch: GET https://fonts.google.com/metadata/icons (docs/scripts/updateIconSynonyms.js:19)"}, "fullDescription": {"text": "`docs/scripts/updateIconSynonyms.js:19` calls `GET https://fonts.google.com/metadata/icons` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/fonts.google.com/metadata/icons`\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-f301edec82f4ffce", "name": "Dangling fetch: GET /sw.js (docs/pages/_app.js:126)", "shortDescription": {"text": "Dangling fetch: GET /sw.js (docs/pages/_app.js:126)"}, "fullDescription": {"text": "`docs/pages/_app.js:126` calls `GET /sw.js` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/sw.js`\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-57f60c80daac47dc", "name": "Dangling fetch: GET https://api.github.com/repos/stoked-ui/sui/branches (docs/pages/versions.js:29)", "shortDescription": {"text": "Dangling fetch: GET https://api.github.com/repos/stoked-ui/sui/branches (docs/pages/versions.js:29)"}, "fullDescription": {"text": "`docs/pages/versions.js:29` calls `GET https://api.github.com/repos/stoked-ui/sui/branches` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.github.com/repos/stoked-ui/sui/branches`\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-46724dc97643ee21", "name": "Dangling fetch: GET https://srv.buysellads.com/ads/CE7DC23W.json (docs/src/modules/components/AdCarbon.js:73)", "shortDescription": {"text": "Dangling fetch: GET https://srv.buysellads.com/ads/CE7DC23W.json (docs/src/modules/components/AdCarbon.js:73)"}, "fullDescription": {"text": "`docs/src/modules/components/AdCarbon.js:73` calls `GET https://srv.buysellads.com/ads/CE7DC23W.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/srv.buysellads.com/ads/ce7dc23w.json`\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-5aae214fbcba90a9", "name": "Dangling fetch: GET /static/error-codes.json (docs/src/pages/production-error/ErrorDecoder.js:50)", "shortDescription": {"text": "Dangling fetch: GET /static/error-codes.json (docs/src/pages/production-error/ErrorDecoder.js:50)"}, "fullDescription": {"text": "`docs/src/pages/production-error/ErrorDecoder.js:50` calls `GET /static/error-codes.json` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/static/error-codes.json`\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-2324d2c51d002486", "name": "Dangling fetch: GET https://api.github.com/repos/${repo}/actions/workflows/${encodeURIComponent(workflow)}/runs?per_page", "shortDescription": {"text": "Dangling fetch: GET https://api.github.com/repos/${repo}/actions/workflows/${encodeURIComponent(workflow)}/runs?per_page=20&event=${encodeURIComponent(event)}&status=completed (scripts/npmRelease.mjs:191)"}, "fullDescription": {"text": "`scripts/npmRelease.mjs:191` calls `GET https://api.github.com/repos/${repo}/actions/workflows/${encodeURIComponent(workflow)}/runs?per_page=20&event=${encodeURIComponent(event)}&status=completed` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.github.com/repos/<p>/actions/workflows/<p>/runs`\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-38ed4510fa8b88b4", "name": "Dangling fetch: POST https://circleci.com/api/v2/project/gh/${repo[1]}/pipeline (netlify/functions/deploy-succeeded.js:2", "shortDescription": {"text": "Dangling fetch: POST https://circleci.com/api/v2/project/gh/${repo[1]}/pipeline (netlify/functions/deploy-succeeded.js:20)"}, "fullDescription": {"text": "`netlify/functions/deploy-succeeded.js:20` calls `POST https://circleci.com/api/v2/project/gh/${repo[1]}/pipeline` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/circleci.com/api/v2/project/gh/<p>/pipeline`\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-145319090ef27d0d", "name": "Dangling fetch: POST https://graph.facebook.com/v21.0/${phoneNumberId}/messages (docs/pages/api/chat/send.ts:57)", "shortDescription": {"text": "Dangling fetch: POST https://graph.facebook.com/v21.0/${phoneNumberId}/messages (docs/pages/api/chat/send.ts:57)"}, "fullDescription": {"text": "`docs/pages/api/chat/send.ts:57` calls `POST https://graph.facebook.com/v21.0/${phoneNumberId}/messages` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/graph.facebook.com/v21.0/<p>/messages`\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-5bfb1ba68e84c769", "name": "Dangling fetch: POST /api/auth/cli/authorize (docs/pages/cli/auth.tsx:66)", "shortDescription": {"text": "Dangling fetch: POST /api/auth/cli/authorize (docs/pages/cli/auth.tsx:66)"}, "fullDescription": {"text": "`docs/pages/cli/auth.tsx:66` calls `POST /api/auth/cli/authorize` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/auth/cli/authorize`\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-1b2315ceea97b3be", "name": "Dangling fetch: GET /static/components-gallery/base-theme.css (docs/pages/experiments/base/components-gallery.tsx:188)", "shortDescription": {"text": "Dangling fetch: GET /static/components-gallery/base-theme.css (docs/pages/experiments/base/components-gallery.tsx:188)"}, "fullDescription": {"text": "`docs/pages/experiments/base/components-gallery.tsx:188` calls `GET /static/components-gallery/base-theme.css` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/static/components-gallery/base-theme.css`\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-46338983d84b02f2", "name": "Dangling fetch: POST https://api.telegram.org/bot${cfg.botToken}/sendMessage (docs/src/modules/auditBot/notifyTelegram.t", "shortDescription": {"text": "Dangling fetch: POST https://api.telegram.org/bot${cfg.botToken}/sendMessage (docs/src/modules/auditBot/notifyTelegram.ts:126)"}, "fullDescription": {"text": "`docs/src/modules/auditBot/notifyTelegram.ts:126` calls `POST https://api.telegram.org/bot${cfg.botToken}/sendMessage` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.telegram.org/bot/<p>/sendmessage`\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-1987f770e717caa2", "name": "Dangling fetch: POST /api/audit/turn (docs/src/modules/auditBot/channels/web/components/AuditBot.tsx:91)", "shortDescription": {"text": "Dangling fetch: POST /api/audit/turn (docs/src/modules/auditBot/channels/web/components/AuditBot.tsx:91)"}, "fullDescription": {"text": "`docs/src/modules/auditBot/channels/web/components/AuditBot.tsx:91` calls `POST /api/audit/turn` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/audit/turn`\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-f03355b787123abc", "name": "Dangling fetch: POST /api/audit/save-lead (docs/src/modules/auditBot/channels/web/components/AuditBot.tsx:147)", "shortDescription": {"text": "Dangling fetch: POST /api/audit/save-lead (docs/src/modules/auditBot/channels/web/components/AuditBot.tsx:147)"}, "fullDescription": {"text": "`docs/src/modules/auditBot/channels/web/components/AuditBot.tsx:147` calls `POST /api/audit/save-lead` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/audit/save-lead`\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-621e1780020fb9b2", "name": "Dangling fetch: POST https://api.telegram.org/bot${config.botToken}/sendMessage (docs/src/modules/chat/telegramTransport", "shortDescription": {"text": "Dangling fetch: POST https://api.telegram.org/bot${config.botToken}/sendMessage (docs/src/modules/chat/telegramTransport.ts:124)"}, "fullDescription": {"text": "`docs/src/modules/chat/telegramTransport.ts:124` calls `POST https://api.telegram.org/bot${config.botToken}/sendMessage` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.telegram.org/bot/<p>/sendmessage`\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-5b4b3d1193fade37", "name": "Dangling fetch: GET /api/licenses/checkout-complete?session_id=${encodeURIComponent(sid)} (docs/src/modules/license/Chec", "shortDescription": {"text": "Dangling fetch: GET /api/licenses/checkout-complete?session_id=${encodeURIComponent(sid)} (docs/src/modules/license/CheckoutSuccess.tsx:40)"}, "fullDescription": {"text": "`docs/src/modules/license/CheckoutSuccess.tsx:40` calls `GET /api/licenses/checkout-complete?session_id=${encodeURIComponent(sid)}` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/licenses/checkout-complete`\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-8bd2cf4e06d50b21", "name": "Dangling fetch: POST /api/licenses/checkout (docs/src/modules/license/StripeEmbeddedCheckout.tsx:53)", "shortDescription": {"text": "Dangling fetch: POST /api/licenses/checkout (docs/src/modules/license/StripeEmbeddedCheckout.tsx:53)"}, "fullDescription": {"text": "`docs/src/modules/license/StripeEmbeddedCheckout.tsx:53` calls `POST /api/licenses/checkout` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/licenses/checkout`\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-aed2a25261507f9e", "name": "Dangling fetch: POST https://api.github.com/graphql (packages/sui-github/src/apiHandlers/getGithubContributions.ts:117)", "shortDescription": {"text": "Dangling fetch: POST https://api.github.com/graphql (packages/sui-github/src/apiHandlers/getGithubContributions.ts:117)"}, "fullDescription": {"text": "`packages/sui-github/src/apiHandlers/getGithubContributions.ts:117` calls `POST https://api.github.com/graphql` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/api.github.com/graphql`\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-c25493b20933567e", "name": "Dangling fetch: GET https://fonts.cdnfonts.com/s/15449/IBMPlexSans-SemiBold.woff (netlify/edge-functions/og-image.tsx:23", "shortDescription": {"text": "Dangling fetch: GET https://fonts.cdnfonts.com/s/15449/IBMPlexSans-SemiBold.woff (netlify/edge-functions/og-image.tsx:234)"}, "fullDescription": {"text": "`netlify/edge-functions/og-image.tsx:234` calls `GET https://fonts.cdnfonts.com/s/15449/IBMPlexSans-SemiBold.woff` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/fonts.cdnfonts.com/s/<p>/ibmplexsans-semibold.woff`\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-731b80d979cf2b65", "name": "Dangling fetch: GET https://fonts.cdnfonts.com/s/85793/GeneralSans-Semibold.woff (netlify/edge-functions/og-image.tsx:24", "shortDescription": {"text": "Dangling fetch: GET https://fonts.cdnfonts.com/s/85793/GeneralSans-Semibold.woff (netlify/edge-functions/og-image.tsx:242)"}, "fullDescription": {"text": "`netlify/edge-functions/og-image.tsx:242` calls `GET https://fonts.cdnfonts.com/s/85793/GeneralSans-Semibold.woff` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/fonts.cdnfonts.com/s/<p>/generalsans-semibold.woff`\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-cbe97176f6697e2e", "name": "Dangling fetch: GET https://fonts.cdnfonts.com/s/85793/GeneralSans-Bold.woff (netlify/edge-functions/og-image.tsx:250)", "shortDescription": {"text": "Dangling fetch: GET https://fonts.cdnfonts.com/s/85793/GeneralSans-Bold.woff (netlify/edge-functions/og-image.tsx:250)"}, "fullDescription": {"text": "`netlify/edge-functions/og-image.tsx:250` calls `GET https://fonts.cdnfonts.com/s/85793/GeneralSans-Bold.woff` but no backend route matches that path. This is a runtime 404 waiting to happen.\n\nTool: fetch\nNormalized path used for matching: `/https:/fonts.cdnfonts.com/s/<p>/generalsans-bold.woff`\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-8f95d7ec49f00406", "name": "Unused endpoint: POST /feedback", "shortDescription": {"text": "Unused endpoint: POST /feedback"}, "fullDescription": {"text": "`packages-internal/feedback/index.js` declares `POST /feedback` 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-69601745d960377a", "name": "Unused endpoint: GET /feedback/{id}", "shortDescription": {"text": "Unused endpoint: GET /feedback/{id}"}, "fullDescription": {"text": "`packages-internal/feedback/index.js` declares `GET /feedback/{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-5baa8971ebe192a1", "name": "Unused endpoint: GET /", "shortDescription": {"text": "Unused endpoint: GET /"}, "fullDescription": {"text": "`benchmark/server/scenarios/server.js` 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-dbe4c12d322a14da", "name": "Unused endpoint: GET /spacing", "shortDescription": {"text": "Unused endpoint: GET /spacing"}, "fullDescription": {"text": "`benchmark/server/scenarios/server.js` declares `GET /spacing` 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-7516fbae36f0b54d", "name": "Unused endpoint: GET /palette", "shortDescription": {"text": "Unused endpoint: GET /palette"}, "fullDescription": {"text": "`benchmark/server/scenarios/server.js` declares `GET /palette` 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-45c45555041fa74b", "name": "Unused endpoint: GET /system", "shortDescription": {"text": "Unused endpoint: GET /system"}, "fullDescription": {"text": "`benchmark/server/scenarios/server.js` declares `GET /system` 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-fade22e58a8b85af", "name": "Unused endpoint: GET /avatar", "shortDescription": {"text": "Unused endpoint: GET /avatar"}, "fullDescription": {"text": "`benchmark/server/scenarios/server.js` declares `GET /avatar` 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-293637eec32dd5d5", "name": "Unused endpoint: GET /styled-function", "shortDescription": {"text": "Unused endpoint: GET /styled-function"}, "fullDescription": {"text": "`benchmark/server/scenarios/server.js` declares `GET /styled-function` 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-1e46d0846d3428e4", "name": "Unused endpoint: GET /box", "shortDescription": {"text": "Unused endpoint: GET /box"}, "fullDescription": {"text": "`benchmark/server/scenarios/server.js` declares `GET /box` 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-594f1bddc20e54d3", "name": "Unused endpoint: USE /build", "shortDescription": {"text": "Unused endpoint: USE /build"}, "fullDescription": {"text": "`examples/material-ui-express-ssr/server.js` declares `USE /build` 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-8292c0931391749a", "name": "Unused endpoint: POST /auth/register", "shortDescription": {"text": "Unused endpoint: POST /auth/register"}, "fullDescription": {"text": "`packages/sui-media-api/src/auth/auth.controller.ts` declares `POST /auth/register` 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-8fdbacfe9430a6ed", "name": "Unused endpoint: POST /auth/login", "shortDescription": {"text": "Unused endpoint: POST /auth/login"}, "fullDescription": {"text": "`packages/sui-media-api/src/auth/auth.controller.ts` declares `POST /auth/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-ac42422b23e45104", "name": "Unused endpoint: GET /auth/me", "shortDescription": {"text": "Unused endpoint: GET /auth/me"}, "fullDescription": {"text": "`packages/sui-media-api/src/auth/auth.controller.ts` declares `GET /auth/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-6685d40686d63393", "name": "Unused endpoint: GET /protected", "shortDescription": {"text": "Unused endpoint: GET /protected"}, "fullDescription": {"text": "`packages/sui-media-api/src/auth/guards/jwt-auth.guard.ts` declares `GET /protected` 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-8a2d53021b410f23", "name": "Unused endpoint: POST /articles", "shortDescription": {"text": "Unused endpoint: POST /articles"}, "fullDescription": {"text": "`packages/sui-media-api/src/auth/guards/roles.guard.ts` declares `POST /articles` 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-38539c06ecf79fff", "name": "Unused endpoint: GET /media/api/info", "shortDescription": {"text": "Unused endpoint: GET /media/api/info"}, "fullDescription": {"text": "`packages/sui-media-api/src/media/media.controller.ts` declares `GET /media/api/info` 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-0fddb95595304584", "name": "Unused endpoint: DELETE /media/:id", "shortDescription": {"text": "Unused endpoint: DELETE /media/:id"}, "fullDescription": {"text": "`packages/sui-media-api/src/media/media.controller.ts` declares `DELETE /media/: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-0499b651a70b26a7", "name": "Unused endpoint: POST /media/:id/restore", "shortDescription": {"text": "Unused endpoint: POST /media/:id/restore"}, "fullDescription": {"text": "`packages/sui-media-api/src/media/media.controller.ts` declares `POST /media/:id/restore` 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-6fbff8e4a1af6ac1", "name": "Unused endpoint: POST /media/:id/extract-metadata", "shortDescription": {"text": "Unused endpoint: POST /media/:id/extract-metadata"}, "fullDescription": {"text": "`packages/sui-media-api/src/media/media.controller.ts` declares `POST /media/:id/extract-metadata` 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-373991646e851ec1", "name": "Unused endpoint: POST /media/:id/generate-thumbnail", "shortDescription": {"text": "Unused endpoint: POST /media/:id/generate-thumbnail"}, "fullDescription": {"text": "`packages/sui-media-api/src/media/media.controller.ts` declares `POST /media/:id/generate-thumbnail` 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-7aa5ea332572e536", "name": "Unused endpoint: POST /uploads/initiate", "shortDescription": {"text": "Unused endpoint: POST /uploads/initiate"}, "fullDescription": {"text": "`packages/sui-media-api/src/uploads/uploads.controller.ts` declares `POST /uploads/initiate` 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-97a422a92aab9a5a", "name": "Unused endpoint: GET /uploads/:sessionId/status", "shortDescription": {"text": "Unused endpoint: GET /uploads/:sessionId/status"}, "fullDescription": {"text": "`packages/sui-media-api/src/uploads/uploads.controller.ts` declares `GET /uploads/:sessionId/status` but no frontend code we scanned calls it. This is fine if the endpoint serves external clients (mobile app, third-party, server-side webhooks). Otherwise it's dead code \u2014 consider removing or documenting who consumes it."}, "properties": {"scanner": "scanner-primary", "layer": "api", "severity": "low", "confidence": 1.0}}, {"id": "scanner-5ec6df8184b7a0e2", "name": "Unused endpoint: POST /uploads/:sessionId/sync", "shortDescription": {"text": "Unused endpoint: POST /uploads/:sessionId/sync"}, "fullDescription": {"text": "`packages/sui-media-api/src/uploads/uploads.controller.ts` declares `POST /uploads/:sessionId/sync` 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-fd386261ec0f885e", "name": "Unused endpoint: POST /uploads/:sessionId/urls", "shortDescription": {"text": "Unused endpoint: POST /uploads/:sessionId/urls"}, "fullDescription": {"text": "`packages/sui-media-api/src/uploads/uploads.controller.ts` declares `POST /uploads/:sessionId/urls` 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-a38ee4d01cef160b", "name": "Unused endpoint: POST /uploads/:sessionId/parts/:partNumber/complete", "shortDescription": {"text": "Unused endpoint: POST /uploads/:sessionId/parts/:partNumber/complete"}, "fullDescription": {"text": "`packages/sui-media-api/src/uploads/uploads.controller.ts` declares `POST /uploads/:sessionId/parts/:partNumber/complete` 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-3c79acdd1a6d5950", "name": "Unused endpoint: POST /uploads/:sessionId/complete", "shortDescription": {"text": "Unused endpoint: POST /uploads/:sessionId/complete"}, "fullDescription": {"text": "`packages/sui-media-api/src/uploads/uploads.controller.ts` declares `POST /uploads/:sessionId/complete` 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-77eac94cc29bdb8f", "name": "Unused endpoint: DELETE /uploads/:sessionId", "shortDescription": {"text": "Unused endpoint: DELETE /uploads/:sessionId"}, "fullDescription": {"text": "`packages/sui-media-api/src/uploads/uploads.controller.ts` declares `DELETE /uploads/:sessionId` 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-7e1889194a387e9d", "name": "Unused endpoint: GET /uploads/active", "shortDescription": {"text": "Unused endpoint: GET /uploads/active"}, "fullDescription": {"text": "`packages/sui-media-api/src/uploads/uploads.controller.ts` declares `GET /uploads/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}}]}}, "automationDetails": {"id": "repobility/20424"}, "properties": {"repository": "stoked-ui/sui", "repoUrl": "https://github.com/stoked-ui/sui", "branch": "main"}, "results": [{"ruleId": "scanner-dfa52f003e3b0b1c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 test-multiverse.ts:14"}, "properties": {"repobilityId": "c1cde0442a09806b", "scanner": "scanner-primary", "fingerprint": "dfa52f003e3b0b1c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b1836f8e266b583c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 extract-sue-media.ts:29"}, "properties": {"repobilityId": "5ef0732118dcff1b", "scanner": "scanner-primary", "fingerprint": "b1836f8e266b583c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-55e644ff6f039d9d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages-internal/proptypes/typescript-to-proptypes/src/generatePropTypes.ts:118"}, "properties": {"repobilityId": "e3b63e4cf0263922", "scanner": "scanner-primary", "fingerprint": "55e644ff6f039d9d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7f805d371262b6c1", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages-internal/proptypes/typescript-to-proptypes/src/getPropTypesFromFile.ts:470"}, "properties": {"repobilityId": "0ee52cf8c63c84d6", "scanner": "scanner-primary", "fingerprint": "7f805d371262b6c1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-a123f52253079c0c", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages-internal/proptypes/typescript-to-proptypes/src/injectPropTypesInFile.ts:268"}, "properties": {"repobilityId": "dc7eec2f35f606d3", "scanner": "scanner-primary", "fingerprint": "a123f52253079c0c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-5bec84cc300d82ed", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages-internal/test-utils/src/createRenderer.tsx:52"}, "properties": {"repobilityId": "a6b20c36b886ece2", "scanner": "scanner-primary", "fingerprint": "5bec84cc300d82ed", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-08f7d20c6ac0d94e", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages-internal/test-utils/src/initMatchers.ts:433"}, "properties": {"repobilityId": "80638591a66b0c84", "scanner": "scanner-primary", "fingerprint": "08f7d20c6ac0d94e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-caf7eb846f6cb03a", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages-internal/test-utils/src/mochaHooks.test.js:47"}, "properties": {"repobilityId": "3c487660a90e36c0", "scanner": "scanner-primary", "fingerprint": "caf7eb846f6cb03a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-b8ae1c8952471edb", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages-internal/test-utils/src/mochaHooks.js:90"}, "properties": {"repobilityId": "b54a74123bfcbb5a", "scanner": "scanner-primary", "fingerprint": "b8ae1c8952471edb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-362a73d4f099b996", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages-internal/markdown/loader.js:162"}, "properties": {"repobilityId": "55b3fca99bc00110", "scanner": "scanner-primary", "fingerprint": "362a73d4f099b996", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-9949ea6f375b5af6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages-internal/netlify-plugin-cache-docs/index.js:25"}, "properties": {"repobilityId": "6249b7af4c9f3c3a", "scanner": "scanner-primary", "fingerprint": "9949ea6f375b5af6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4ef2f3d19754516b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages-internal/sui-video-validator/tests/validator.test.ts:31"}, "properties": {"repobilityId": "6a40f04d1dcc4327", "scanner": "scanner-primary", "fingerprint": "4ef2f3d19754516b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-dfd78959f87f934b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages-internal/sui-video-validator/examples/usage-example.ts:18"}, "properties": {"repobilityId": "ff4e79648e9e8e6d", "scanner": "scanner-primary", "fingerprint": "dfd78959f87f934b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-285625ee1ab85611", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages-internal/sui-video-validator/src/VideoValidator.ts:374"}, "properties": {"repobilityId": "766abbee410b01e0", "scanner": "scanner-primary", "fingerprint": "285625ee1ab85611", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-028858d8fbf85e4c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages-internal/sui-video-validator/src/BatchValidator.ts:35"}, "properties": {"repobilityId": "47ae849ead7e82e0", "scanner": "scanner-primary", "fingerprint": "028858d8fbf85e4c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-22fdeea7a4af93b6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages-internal/sui-envinfo/envinfo.js:36"}, "properties": {"repobilityId": "7bfe9c57951a687b", "scanner": "scanner-primary", "fingerprint": "22fdeea7a4af93b6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8d09cd6091dd2fb1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages-internal/feedback/index.js:21"}, "properties": {"repobilityId": "9f6f8a31647bd322", "scanner": "scanner-primary", "fingerprint": "8d09cd6091dd2fb1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e4f1be66ad280d43", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages-internal/api-docs-builder/utils/replaceUrl.ts:41"}, "properties": {"repobilityId": "da2f3c614632b690", "scanner": "scanner-primary", "fingerprint": "e4f1be66ad280d43", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-7cae8d7c5f0811f0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages-internal/api-docs-builder/utils/findApiPages.ts:36"}, "properties": {"repobilityId": "b04a0dedf89fee44", "scanner": "scanner-primary", "fingerprint": "7cae8d7c5f0811f0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9f435c55837db571", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages-internal/api-docs-builder/utils/createTypeScriptProject.ts:120"}, "properties": {"repobilityId": "3b8f6b25bec514e3", "scanner": "scanner-primary", "fingerprint": "9f435c55837db571", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3c2bb40566649936", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages-internal/api-docs-builder/ApiBuilders/HookApiBuilder.ts:576"}, "properties": {"repobilityId": "26f0b75ccc68babc", "scanner": "scanner-primary", "fingerprint": "3c2bb40566649936", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-34ed9690397200dc", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages-internal/api-docs-builder/ApiBuilders/HookApiBuilder.ts:593"}, "properties": {"repobilityId": "9e9240335e066830", "scanner": "scanner-primary", "fingerprint": "34ed9690397200dc", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6228a514807bdf4c", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages-internal/api-docs-builder/ApiBuilders/ComponentApiBuilder.ts:789"}, "properties": {"repobilityId": "9264589690aea392", "scanner": "scanner-primary", "fingerprint": "6228a514807bdf4c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-4aa2849814fe81e1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages-internal/api-docs-builder/ApiBuilders/ComponentApiBuilder.ts:811"}, "properties": {"repobilityId": "dbbc8dab3d520d07", "scanner": "scanner-primary", "fingerprint": "4aa2849814fe81e1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4cd036656ee291f2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages-internal/docs-utils/src/createTypeScriptProject.ts:118"}, "properties": {"repobilityId": "56a7929834a47e31", "scanner": "scanner-primary", "fingerprint": "4cd036656ee291f2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bfe71eb1adb84c2c", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 test/karma.conf.js:193"}, "properties": {"repobilityId": "eac8e426fc8d1a6f", "scanner": "scanner-primary", "fingerprint": "bfe71eb1adb84c2c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-57aeffbbc6236543", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 test/karma.conf.profile.js:66"}, "properties": {"repobilityId": "7a1e62a5be99168d", "scanner": "scanner-primary", "fingerprint": "57aeffbbc6236543", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-691daa0dfe5fb8b7", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 test/regressions/webpack.config.js:68"}, "properties": {"repobilityId": "10c13ebaa4523f72", "scanner": "scanner-primary", "fingerprint": "691daa0dfe5fb8b7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-3ae42f7b78859349", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 test/regressions/index.js:17"}, "properties": {"repobilityId": "468fab5ef7202c9d", "scanner": "scanner-primary", "fingerprint": "3ae42f7b78859349", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-b5b5f7083c09c65e", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 test/utils/addChaiAssertions.ts:34"}, "properties": {"repobilityId": "64b3ef4572a04a68", "scanner": "scanner-primary", "fingerprint": "b5b5f7083c09c65e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-58a5b118ca0b6949", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 test/bundling/scripts/createFixture.js:189"}, "properties": {"repobilityId": "5d9ce43a12f60d0f", "scanner": "scanner-primary", "fingerprint": "58a5b118ca0b6949", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-add3394174541774", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 test/e2e/webpack.config.js:43"}, "properties": {"repobilityId": "5777f70fbb89cb45", "scanner": "scanner-primary", "fingerprint": "add3394174541774", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-1ce1a5a36233cc6e", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/babel.config.js:11"}, "properties": {"repobilityId": "96ad28347493ee4f", "scanner": "scanner-primary", "fingerprint": "1ce1a5a36233cc6e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-b95ce0f0c28ca139", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 docs/stack/certificate.ts:38"}, "properties": {"repobilityId": "854d51b93bad1d87", "scanner": "scanner-primary", "fingerprint": "b95ce0f0c28ca139", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f21abdc8e84c2f03", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 docs/scripts/seed-products.ts:207"}, "properties": {"repobilityId": "1939ef2cd67dcd6e", "scanner": "scanner-primary", "fingerprint": "f21abdc8e84c2f03", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-de12a956a8372397", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 docs/scripts/reportBrokenLinks.js:215"}, "properties": {"repobilityId": "6fc5dcd00fca2058", "scanner": "scanner-primary", "fingerprint": "de12a956a8372397", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-311ec7eac4009946", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 docs/scripts/generateTemplateScreenshots.ts:60"}, "properties": {"repobilityId": "4f37141a98d71ae4", "scanner": "scanner-primary", "fingerprint": "311ec7eac4009946", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-118561820dadd017", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 docs/scripts/buildIcons.js:9"}, "properties": {"repobilityId": "407406c1d03b7e01", "scanner": "scanner-primary", "fingerprint": "118561820dadd017", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6647154be3dac335", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 docs/scripts/updateIconSynonyms.js:33"}, "properties": {"repobilityId": "734a3c320622305c", "scanner": "scanner-primary", "fingerprint": "6647154be3dac335", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c444f85f9fca8bb8", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/scripts/formattedTSDemos.js:141"}, "properties": {"repobilityId": "a417aeed51630d39", "scanner": "scanner-primary", "fingerprint": "c444f85f9fca8bb8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-fde160f792c640dd", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 docs/scripts/formattedTSDemos.js:104"}, "properties": {"repobilityId": "f3b6314a72ca6598", "scanner": "scanner-primary", "fingerprint": "fde160f792c640dd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0ac3125054863992", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 docs/scripts/generateGithubSnapshots.ts:68"}, "properties": {"repobilityId": "83fcadeb3d546ea1", "scanner": "scanner-primary", "fingerprint": "0ac3125054863992", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-945173c765efa27f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 docs/scripts/buildServiceWorker.js:22"}, "properties": {"repobilityId": "ebb5cc4c2c22798f", "scanner": "scanner-primary", "fingerprint": "945173c765efa27f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8d832d1b94251555", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 docs/scripts/api/buildInterfacesDocumentation.ts:244"}, "properties": {"repobilityId": "b8fefb75a533d10b", "scanner": "scanner-primary", "fingerprint": "8d832d1b94251555", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-22c9238a51fb7335", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 docs/scripts/api/buildGridEventsDocumentation.ts:135"}, "properties": {"repobilityId": "bb8e6208e076b287", "scanner": "scanner-primary", "fingerprint": "22c9238a51fb7335", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3e1de3384587995e", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/scripts/buildApiDocs/fileExplorerSettings/getComponentInfo.ts:30"}, "properties": {"repobilityId": "81ab8014ce7a8a3a", "scanner": "scanner-primary", "fingerprint": "3e1de3384587995e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-bc42a650e46a0b49", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/pages/_app.js:259"}, "properties": {"repobilityId": "1623f888f18c178e", "scanner": "scanner-primary", "fingerprint": "bc42a650e46a0b49", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-087f9336cfa9610d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 docs/pages/_app.js:74"}, "properties": {"repobilityId": "a5832579eded2439", "scanner": "scanner-primary", "fingerprint": "087f9336cfa9610d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e65bde75ad5f9143", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/pages/index.tsx:103"}, "properties": {"repobilityId": "0fbad36a1f6fed46", "scanner": "scanner-primary", "fingerprint": "e65bde75ad5f9143", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-55771ce8b654cb3a", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/pages/_document.js:267"}, "properties": {"repobilityId": "72d48ab5d42b0c50", "scanner": "scanner-primary", "fingerprint": "55771ce8b654cb3a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-cd55fb06e2ee7926", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/pages/_document.js:56"}, "properties": {"repobilityId": "cbef1b2594a50e9a", "scanner": "scanner-primary", "fingerprint": "cd55fb06e2ee7926", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-a9e0b655f8520a4a", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/pages/blog/[slug].tsx:213"}, "properties": {"repobilityId": "020dad66e4830a3a", "scanner": "scanner-primary", "fingerprint": "a9e0b655f8520a4a", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-a45e3ca2544723c4", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/pages/consulting/home.tsx:61"}, "properties": {"repobilityId": "635bf2c3cb803a2b", "scanner": "scanner-primary", "fingerprint": "a45e3ca2544723c4", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-984274f274cf4245", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 docs/pages/experiments/base/menu.tsx:131"}, "properties": {"repobilityId": "6decb29ebd706f25", "scanner": "scanner-primary", "fingerprint": "984274f274cf4245", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fb9a74cdc917279e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/pages/experiments/base/listbox.tsx:225"}, "properties": {"repobilityId": "aef860867e52cf71", "scanner": "scanner-primary", "fingerprint": "fb9a74cdc917279e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-e0256766d0d51cf1", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/pages/experiments/base/components-gallery.tsx:20"}, "properties": {"repobilityId": "718e8165a914c553", "scanner": "scanner-primary", "fingerprint": "e0256766d0d51cf1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-d3997a6bae5c41c4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 docs/src/subdomains.ts:21"}, "properties": {"repobilityId": "7863a273a9e580b5", "scanner": "scanner-primary", "fingerprint": "d3997a6bae5c41c4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7e4552ce88d76087", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/createEmotionCache.ts:20"}, "properties": {"repobilityId": "112dab0a0fa948e2", "scanner": "scanner-primary", "fingerprint": "7e4552ce88d76087", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-b1bc2c1478e6f5f1", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/components/showcase/FolderTreeView.tsx:2"}, "properties": {"repobilityId": "f1a25b817dc4cb87", "scanner": "scanner-primary", "fingerprint": "b1bc2c1478e6f5f1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-8cafa8746197424f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 docs/src/components/showcase/EditorFileTestHero.tsx:28"}, "properties": {"repobilityId": "4f6db935abfff500", "scanner": "scanner-primary", "fingerprint": "8cafa8746197424f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-70ccf7c47b9ed4a6", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/components/showcase/FileListCard.tsx:2"}, "properties": {"repobilityId": "975598dcbd97e0cd", "scanner": "scanner-primary", "fingerprint": "70ccf7c47b9ed4a6", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-0c9e555b0b86618d", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/components/markdown/MarkdownElement.tsx:46"}, "properties": {"repobilityId": "85507e226a647bfd", "scanner": "scanner-primary", "fingerprint": "0c9e555b0b86618d", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-29521f11164765e4", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/components/action/InfoCard.tsx:2"}, "properties": {"repobilityId": "4809b4d7cb53402f", "scanner": "scanner-primary", "fingerprint": "29521f11164765e4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-413c2e1b06f91283", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/components/header/ThemeModeToggle.tsx:37"}, "properties": {"repobilityId": "cdb0983ada1124eb", "scanner": "scanner-primary", "fingerprint": "413c2e1b06f91283", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-78a5063a843b65c8", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/components/pricing/PricingTable.tsx:1258"}, "properties": {"repobilityId": "25060e6946bdf59d", "scanner": "scanner-primary", "fingerprint": "78a5063a843b65c8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-3aaf5be6853ef9c8", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/brandingTheme.ts:2"}, "properties": {"repobilityId": "6fb93e2632d73ab1", "scanner": "scanner-primary", "fingerprint": "3aaf5be6853ef9c8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-4fa790a7a9c29a12", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 docs/src/modules/auth/authStore.ts:214"}, "properties": {"repobilityId": "4b1d0425cf23b2c5", "scanner": "scanner-primary", "fingerprint": "4fa790a7a9c29a12", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-fcc133c13a50c84f", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 docs/src/modules/auth/apiKeyStore.ts:69"}, "properties": {"repobilityId": "e06bc60ea5180167", "scanner": "scanner-primary", "fingerprint": "fcc133c13a50c84f", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-588a943b17d7d25e", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/utils/helpers.ts:32"}, "properties": {"repobilityId": "41a48d94ea176764", "scanner": "scanner-primary", "fingerprint": "588a943b17d7d25e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-e0be9b08918d8957", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/utils/i18n.js:2"}, "properties": {"repobilityId": "e77f529b8aa95ab0", "scanner": "scanner-primary", "fingerprint": "e0be9b08918d8957", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-ae454290c1b8ae9b", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/utils/getProductInfoFromUrl.ts:77"}, "properties": {"repobilityId": "a36b3a1e0dd110c9", "scanner": "scanner-primary", "fingerprint": "ae454290c1b8ae9b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-306f1f90732c8b06", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/utils/useQueryParameterState.ts:42"}, "properties": {"repobilityId": "ba633830fa93b3ac", "scanner": "scanner-primary", "fingerprint": "306f1f90732c8b06", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-9a3d1c252f20a65c", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/BlogMarkdownEditor.tsx:292"}, "properties": {"repobilityId": "f4043fbd23458fda", "scanner": "scanner-primary", "fingerprint": "9a3d1c252f20a65c", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-d9ee5589c994752a", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/MarkdownElement.js:812"}, "properties": {"repobilityId": "e0f6041e35c4b880", "scanner": "scanner-primary", "fingerprint": "d9ee5589c994752a", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-07c1b5646f650f5a", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ComponentsApiContent.js:151"}, "properties": {"repobilityId": "4cf26e3e1250081c", "scanner": "scanner-primary", "fingerprint": "07c1b5646f650f5a", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-dfd3921ea475c383", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/AppSettingsDrawer.js:45"}, "properties": {"repobilityId": "3c4fd7de06e47966", "scanner": "scanner-primary", "fingerprint": "dfd3921ea475c383", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-e9fde2e416b5c74a", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/Ad.js:93"}, "properties": {"repobilityId": "e8dc47bad04628c3", "scanner": "scanner-primary", "fingerprint": "e9fde2e416b5c74a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-5961da2c89c096e5", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/MarkdownDocsV2.js:44"}, "properties": {"repobilityId": "4d7f4cf430644909", "scanner": "scanner-primary", "fingerprint": "5961da2c89c096e5", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-2e8d98d912c2b828", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/Link.tsx:2"}, "properties": {"repobilityId": "d406ec8e69a9d396", "scanner": "scanner-primary", "fingerprint": "2e8d98d912c2b828", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-c3e67b88635edd93", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/AppSearch.js:561"}, "properties": {"repobilityId": "74f49f6ba92e019b", "scanner": "scanner-primary", "fingerprint": "c3e67b88635edd93", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-0e206146e82fe365", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/Notifications.js:240"}, "properties": {"repobilityId": "a5a6e9db276dd1b3", "scanner": "scanner-primary", "fingerprint": "0e206146e82fe365", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-1b6eb903c969c17d", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/AppNavDrawer.js:25"}, "properties": {"repobilityId": "f455afcd6aa0f3cf", "scanner": "scanner-primary", "fingerprint": "1b6eb903c969c17d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-837291b877006ce1", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/AppLayoutDocs.js:80"}, "properties": {"repobilityId": "8aad4953defa7dce", "scanner": "scanner-primary", "fingerprint": "837291b877006ce1", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-e8bc50ad1e89a400", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/ThemeContext.js:218"}, "properties": {"repobilityId": "5e99363d09bed5cc", "scanner": "scanner-primary", "fingerprint": "e8bc50ad1e89a400", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-b0a37b30124a509f", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/AppLayoutDocsFooter.js:449"}, "properties": {"repobilityId": "6804e1a186def00a", "scanner": "scanner-primary", "fingerprint": "b0a37b30124a509f", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-9fb92b1c7691741c", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/HooksApiContent.js:75"}, "properties": {"repobilityId": "db70c295a2d41d3e", "scanner": "scanner-primary", "fingerprint": "9fb92b1c7691741c", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-585774e6f07c401f", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/DemoEditor.tsx:161"}, "properties": {"repobilityId": "8247b0b5e9923818", "scanner": "scanner-primary", "fingerprint": "585774e6f07c401f", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-5d571e52c85d9756", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/InterfaceApiPage.js:23"}, "properties": {"repobilityId": "158ab9a696fa924d", "scanner": "scanner-primary", "fingerprint": "5d571e52c85d9756", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-0fd431ab05226837", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/InterfaceApiPage.js:82"}, "properties": {"repobilityId": "2845974f3de2129e", "scanner": "scanner-primary", "fingerprint": "0fd431ab05226837", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-fec524b7e265431c", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/AdDisplay.js:60"}, "properties": {"repobilityId": "2ce59b01511915a1", "scanner": "scanner-primary", "fingerprint": "fec524b7e265431c", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-3c17bbe9a9135d5b", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/AppFrame.js:100"}, "properties": {"repobilityId": "dda53ba85c142a58", "scanner": "scanner-primary", "fingerprint": "3c17bbe9a9135d5b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-957de6501bcb8bb8", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/DemoSandbox.js:171"}, "properties": {"repobilityId": "f9704e3ddef5fb60", "scanner": "scanner-primary", "fingerprint": "957de6501bcb8bb8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-24a4451735436c61", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/TopLayoutBlog.js:336"}, "properties": {"repobilityId": "42427169b4f2ed88", "scanner": "scanner-primary", "fingerprint": "24a4451735436c61", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-8889e64e881179b8", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/DemoToolbar.js:169"}, "properties": {"repobilityId": "dc3b0d37f845c0a3", "scanner": "scanner-primary", "fingerprint": "8889e64e881179b8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-26aa91fbc8977d16", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/DiamondSponsors.js:10"}, "properties": {"repobilityId": "55adcf987673b991", "scanner": "scanner-primary", "fingerprint": "26aa91fbc8977d16", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-5309f16500415535", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/AppTableOfContents.js:91"}, "properties": {"repobilityId": "d03884c93cabeed0", "scanner": "scanner-primary", "fingerprint": "5309f16500415535", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-20627557bf34bafa", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/AppTableOfContents.js:244"}, "properties": {"repobilityId": "3c199dccdbb86ae5", "scanner": "scanner-primary", "fingerprint": "20627557bf34bafa", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-e66b8e4d8d49a1b8", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/components/ApiPage.js:38"}, "properties": {"repobilityId": "5f88d458a259741b", "scanner": "scanner-primary", "fingerprint": "e66b8e4d8d49a1b8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-e74314d63f8a5ec4", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ApiPage.js:230"}, "properties": {"repobilityId": "818253e35283c0d8", "scanner": "scanner-primary", "fingerprint": "e74314d63f8a5ec4", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-1a91b11db3b83833", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/HighlightedCode.js:35"}, "properties": {"repobilityId": "817343426bd0563a", "scanner": "scanner-primary", "fingerprint": "1a91b11db3b83833", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-949c1fb956a53d07", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ApiPage/table/ClassesTable.tsx:92"}, "properties": {"repobilityId": "6d4e7f960f3b8e64", "scanner": "scanner-primary", "fingerprint": "949c1fb956a53d07", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-b8c377187f749b60", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ApiPage/table/SlotsTable.tsx:105"}, "properties": {"repobilityId": "11a1feb8443fab84", "scanner": "scanner-primary", "fingerprint": "b8c377187f749b60", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-3d0d15fa35ea52e0", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ApiPage/table/PropertiesTable.tsx:112"}, "properties": {"repobilityId": "bde3c4cc1ee3644f", "scanner": "scanner-primary", "fingerprint": "3d0d15fa35ea52e0", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-1445b0e899c2a959", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ApiPage/list/SlotsList.tsx:88"}, "properties": {"repobilityId": "72826cf5876fd433", "scanner": "scanner-primary", "fingerprint": "1445b0e899c2a959", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-e76bed04e25f7eaf", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ApiPage/list/ClassesList.tsx:96"}, "properties": {"repobilityId": "b9308aa6918ff879", "scanner": "scanner-primary", "fingerprint": "e76bed04e25f7eaf", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-2ef751a26e9c18d8", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ApiPage/list/PropertiesList.tsx:105"}, "properties": {"repobilityId": "8f55fa6d9fc3dcd2", "scanner": "scanner-primary", "fingerprint": "2ef751a26e9c18d8", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-7ac77e4efaa58458", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ApiPage/sections/SlotsSection.tsx:76"}, "properties": {"repobilityId": "682a936231c92d76", "scanner": "scanner-primary", "fingerprint": "7ac77e4efaa58458", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-07c201a68268f2e4", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ApiPage/sections/ClassesSection.tsx:114"}, "properties": {"repobilityId": "6b27bab88eeb704c", "scanner": "scanner-primary", "fingerprint": "07c201a68268f2e4", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-4485783e087bd10e", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 docs/src/modules/components/ApiPage/sections/PropertiesSection.js:143"}, "properties": {"repobilityId": "37b81ff359136c99", "scanner": "scanner-primary", "fingerprint": "4485783e087bd10e", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-110150cee26d5132", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 docs/src/modules/sandbox/Dependencies.ts:81"}, "properties": {"repobilityId": "d5131331f5198733", "scanner": "scanner-primary", "fingerprint": "110150cee26d5132", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-10f6007c2c34df24", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 docs/src/modules/deliverables/localFiles.test.ts:17"}, "properties": {"repobilityId": "f2d1757f2c35f4a4", "scanner": "scanner-primary", "fingerprint": "10f6007c2c34df24", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-78f7befad6f65c09", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 docs/src/modules/openapi/docsApiOpenApiSpec.ts:270"}, "properties": {"repobilityId": "cf96826a713ce923", "scanner": "scanner-primary", "fingerprint": "78f7befad6f65c09", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d6ee1dd6ce452689", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/importConsultingInvoices.ts:168"}, "properties": {"repobilityId": "2de33a0eadfa263b", "scanner": "scanner-primary", "fingerprint": "d6ee1dd6ce452689", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d8cd6f7492dc40ac", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 scripts/generateProptypes.ts:226"}, "properties": {"repobilityId": "6cef333fb2b0fcf1", "scanner": "scanner-primary", "fingerprint": "d8cd6f7492dc40ac", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-0f7359bbdb7ccb83", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/generateProptypes.ts:170"}, "properties": {"repobilityId": "cab0b7a3151bc5eb", "scanner": "scanner-primary", "fingerprint": "0f7359bbdb7ccb83", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-be0369672b03c30b", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 scripts/buildApiDocs/projectSettings/getComponentInfo.ts:30"}, "properties": {"repobilityId": "7f61f302bd2ea12d", "scanner": "scanner-primary", "fingerprint": "be0369672b03c30b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-e99c54b8a418a7cb", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 scripts/buildApiDocs/projectSettings/index.ts:77"}, "properties": {"repobilityId": "9e6c702f151b7561", "scanner": "scanner-primary", "fingerprint": "e99c54b8a418a7cb", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-b006c2e5cbdf3881", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 scripts/buildApiDocs/fileExplorerSettings/getComponentInfo.ts:30"}, "properties": {"repobilityId": "4719e3757c6ba55a", "scanner": "scanner-primary", "fingerprint": "b006c2e5cbdf3881", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-37f82d03898c68f9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 scripts/sizeSnapshot/worker.js:13"}, "properties": {"repobilityId": "108a6013266d1a8c", "scanner": "scanner-primary", "fingerprint": "37f82d03898c68f9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-49bd79be49961d58", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 scripts/sizeSnapshot/webpack.config.js:124"}, "properties": {"repobilityId": "d5400873e6e8af1e", "scanner": "scanner-primary", "fingerprint": "49bd79be49961d58", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-9d5de5b02a9bdda5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-media/src/abstractions/KeyboardShortcuts.ts:244"}, "properties": {"repobilityId": "9817027226630f3b", "scanner": "scanner-primary", "fingerprint": "9d5de5b02a9bdda5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-44e8ca8a5a3c114c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-media/src/performance/metrics.ts:278"}, "properties": {"repobilityId": "d1731e1d81dff5a8", "scanner": "scanner-primary", "fingerprint": "44e8ca8a5a3c114c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e80c1c98e9882b4c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-media/src/performance/benchmark.ts:23"}, "properties": {"repobilityId": "f86892ab422c8324", "scanner": "scanner-primary", "fingerprint": "e80c1c98e9882b4c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-78b2a7aaa1e23038", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-media/src/components/MediaCard/MediaCard.tsx:69"}, "properties": {"repobilityId": "37bed437ba0607ce", "scanner": "scanner-primary", "fingerprint": "78b2a7aaa1e23038", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f9408fcde8d810a6", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-media/src/components/MediaCard/MediaCard.stories.tsx:215"}, "properties": {"repobilityId": "8d08a05947b729f9", "scanner": "scanner-primary", "fingerprint": "f9408fcde8d810a6", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a827ad08aec9fee7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-media/src/hooks/useMediaUpload.ts:56"}, "properties": {"repobilityId": "da228ee5621e756a", "scanner": "scanner-primary", "fingerprint": "a827ad08aec9fee7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-031db576eb90dd17", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-media/src/MediaFile/MediaFile.ts:432"}, "properties": {"repobilityId": "a9916033f8ce64de", "scanner": "scanner-primary", "fingerprint": "031db576eb90dd17", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1f0b2973f391e151", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-github/test/integration/PopperChildrenLayout.test.js:126"}, "properties": {"repobilityId": "15a5a055fe18df29", "scanner": "scanner-primary", "fingerprint": "1f0b2973f391e151", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-9a6c1e5be1017b6c", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-github/test/integration/Menu.test.js:266"}, "properties": {"repobilityId": "8a10bbd5dfe5b36f", "scanner": "scanner-primary", "fingerprint": "9a6c1e5be1017b6c", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-19f3724159c38808", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-github/test/typescript/OverridableComponent.spec.tsx:40"}, "properties": {"repobilityId": "3305b3c3761cb1b7", "scanner": "scanner-primary", "fingerprint": "19f3724159c38808", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7c681e8a8202d9d1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-github/src/apiHandlers/getGithubEvents.ts:41"}, "properties": {"repobilityId": "8ae0e55272692b40", "scanner": "scanner-primary", "fingerprint": "7c681e8a8202d9d1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6631d1768075fe9d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-github/src/GithubCalendar/GithubCalendar.tsx:221"}, "properties": {"repobilityId": "4f9a9eb0ddd3fe34", "scanner": "scanner-primary", "fingerprint": "6631d1768075fe9d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ce180a71aa83baf4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-github/src/GithubEvents/GithubEvents.tsx:205"}, "properties": {"repobilityId": "fc2b9cb9118ffb62", "scanner": "scanner-primary", "fingerprint": "ce180a71aa83baf4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3ba3ff187e916e84", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-github/src/GithubEvents/EventTypes/PullRequest/PullRequestEvent.tsx:165"}, "properties": {"repobilityId": "c519a759449e8685", "scanner": "scanner-primary", "fingerprint": "3ba3ff187e916e84", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-d6f8bd7e36cb52f4", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-editor/test/integration/PopperChildrenLayout.test.js:126"}, "properties": {"repobilityId": "2881c26615f9521f", "scanner": "scanner-primary", "fingerprint": "d6f8bd7e36cb52f4", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-d5d4d0abb1fb596b", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-editor/test/integration/Menu.test.js:266"}, "properties": {"repobilityId": "9e69be2d2edc45ca", "scanner": "scanner-primary", "fingerprint": "d5d4d0abb1fb596b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-00e3aca618492cd3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-editor/test/typescript/OverridableComponent.spec.tsx:40"}, "properties": {"repobilityId": "7c7673a3dfc0a582", "scanner": "scanner-primary", "fingerprint": "00e3aca618492cd3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0a3301cffa7e68c8", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-editor/src/Editor/AudioPlayer.tsx:64"}, "properties": {"repobilityId": "15ef7981045d0ede", "scanner": "scanner-primary", "fingerprint": "0a3301cffa7e68c8", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7c0f33b7e3a5e917", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-editor/src/WasmPreview/useWasmRenderer.ts:290"}, "properties": {"repobilityId": "e86a0378c0cd83e5", "scanner": "scanner-primary", "fingerprint": "7c0f33b7e3a5e917", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-804323b5c8e4bd67", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-editor/src/WasmPreview/useWasmRenderer.ts:155"}, "properties": {"repobilityId": "6a1d0750283271ae", "scanner": "scanner-primary", "fingerprint": "804323b5c8e4bd67", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ed1c66843ae926e7", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-editor/src/internals/utils/utils.ts:16"}, "properties": {"repobilityId": "38d04aa43d00a76a", "scanner": "scanner-primary", "fingerprint": "ed1c66843ae926e7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-750b1d7a78589d26", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-editor/src/internals/plugins/useEditorMetadata/useEditorMetadata.test.tsx:77"}, "properties": {"repobilityId": "225695281bd8c4ca", "scanner": "scanner-primary", "fingerprint": "750b1d7a78589d26", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-fb2ea4ee57064092", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-editor/src/internals/plugins/useEditorKeyboard/useEditorKeyboard.ts:114"}, "properties": {"repobilityId": "56325237cef5167a", "scanner": "scanner-primary", "fingerprint": "fb2ea4ee57064092", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-945bc473661ec3c7", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-editor/src/internals/plugins/useEditorKeyboard/useEditorKeyboard.ts:41"}, "properties": {"repobilityId": "e8b7fa81b9e49572", "scanner": "scanner-primary", "fingerprint": "945bc473661ec3c7", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-c395725011d54fbd", "level": "note", "message": {"text": "React Flow <Controls> without dark theming \u2014 packages/sui-editor/src/EditorControls/EditorControls.tsx:629"}, "properties": {"repobilityId": "18969648aa51c41e", "scanner": "scanner-primary", "fingerprint": "c395725011d54fbd", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.controls.no-bg"]}}, {"ruleId": "scanner-a4c5ea856c5a1ec8", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-editor/src/Controllers/AnimationController.ts:75"}, "properties": {"repobilityId": "87cfce665830e493", "scanner": "scanner-primary", "fingerprint": "a4c5ea856c5a1ec8", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-d14ebcd509451564", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-editor/src/Controllers/AnimationController.ts:124"}, "properties": {"repobilityId": "4a814e141dbc78ac", "scanner": "scanner-primary", "fingerprint": "d14ebcd509451564", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3ba17ec2b68a8c9e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-editor/src/DetailView/ControlledVolumeSpan.tsx:60"}, "properties": {"repobilityId": "26895ec53aa2c634", "scanner": "scanner-primary", "fingerprint": "3ba17ec2b68a8c9e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ec1d90caea928980", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-editor/src/DetailView/DetailTrack.tsx:50"}, "properties": {"repobilityId": "4890a56266f67d77", "scanner": "scanner-primary", "fingerprint": "ec1d90caea928980", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-432ac495b28fcee3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-file-explorer/src/File/File.tsx:177"}, "properties": {"repobilityId": "c36c03483fe3befc", "scanner": "scanner-primary", "fingerprint": "432ac495b28fcee3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9e2a5bd059258d35", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-file-explorer/src/FileExplorer/FileExplorer.benchmark.tsx:242"}, "properties": {"repobilityId": "8cf6f5251a8a5c89", "scanner": "scanner-primary", "fingerprint": "9e2a5bd059258d35", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7e963e7b5d9a3afc", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-file-explorer/src/internals/FileIcon/FileIcon.tsx:47"}, "properties": {"repobilityId": "c7408132500e7aa1", "scanner": "scanner-primary", "fingerprint": "7e963e7b5d9a3afc", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-5e181dc373c3e27b", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-file-explorer/src/internals/utils/utils.ts:16"}, "properties": {"repobilityId": "b1be571cf36be124", "scanner": "scanner-primary", "fingerprint": "5e181dc373c3e27b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-aba99936b8af8357", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-file-explorer/src/internals/utils/fileExplorer.ts:34"}, "properties": {"repobilityId": "2cf2e6e69918ec2d", "scanner": "scanner-primary", "fingerprint": "aba99936b8af8357", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-096aefbc86ddcdcd", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-file-explorer/src/internals/plugins/useFileExplorerSelection/useFileExplorerSelection.test.tsx:77"}, "properties": {"repobilityId": "bda78065f04a3024", "scanner": "scanner-primary", "fingerprint": "096aefbc86ddcdcd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-60384d6afdffc99b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-file-explorer/src/internals/plugins/useFileExplorerDnd/useFileExplorerDnd.tsx:649"}, "properties": {"repobilityId": "edbff007336c5211", "scanner": "scanner-primary", "fingerprint": "60384d6afdffc99b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ea90c259bd4f3f11", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-file-explorer/src/internals/plugins/useFileExplorerFiles/useFileExplorerFiles.test.tsx:18"}, "properties": {"repobilityId": "7d579c6ba3321678", "scanner": "scanner-primary", "fingerprint": "ea90c259bd4f3f11", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-3a3d838877f53517", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-file-explorer/src/internals/plugins/useFileExplorerFiles/useFileExplorerFiles.tsx:108"}, "properties": {"repobilityId": "f929cd97ddb581fa", "scanner": "scanner-primary", "fingerprint": "3a3d838877f53517", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-1b7fd0a4bdba14e3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-file-explorer/src/internals/plugins/useFileExplorerFiles/useFileExplorerFiles.tsx:370"}, "properties": {"repobilityId": "35fd5de0031ab2c2", "scanner": "scanner-primary", "fingerprint": "1b7fd0a4bdba14e3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9a2dc5757f59522f", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-file-explorer/src/internals/plugins/useFileExplorerKeyboardNavigation/useFileExplorerKeyboardNavigation.ts:244"}, "properties": {"repobilityId": "fc6b57c2ae84e375", "scanner": "scanner-primary", "fingerprint": "9a2dc5757f59522f", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-0fa1cab815de0811", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-video-renderer/benchmark/wasm-vs-canvas.js:203"}, "properties": {"repobilityId": "6f4d319a0e9c6bdc", "scanner": "scanner-primary", "fingerprint": "0fa1cab815de0811", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e5e0d8d0c3653db7", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-video-renderer/pkg/wasm_preview_bg.js:536"}, "properties": {"repobilityId": "bfe042b844dd307a", "scanner": "scanner-primary", "fingerprint": "e5e0d8d0c3653db7", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-422123e111b610bb", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-video-renderer/pkg/wasm_preview_bg.js:389"}, "properties": {"repobilityId": "157b1ea220a31456", "scanner": "scanner-primary", "fingerprint": "422123e111b610bb", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8d9f7502500b8a28", "level": "note", "message": {"text": "React Flow <Controls> without dark theming \u2014 packages/sui-timeline/src/TimelineControls/TimelineControls.tsx:523"}, "properties": {"repobilityId": "75936e940ce67955", "scanner": "scanner-primary", "fingerprint": "8d9f7502500b8a28", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.controls.no-bg"]}}, {"ruleId": "scanner-9647d3803a2e09f9", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-timeline/src/TimelineLabels/TimelineTrackActions.tsx:35"}, "properties": {"repobilityId": "e84a205a3f316e72", "scanner": "scanner-primary", "fingerprint": "9647d3803a2e09f9", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-76cbefb148d4cec3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-timeline/src/utils/logger.ts:141"}, "properties": {"repobilityId": "2fee97185bacbdc1", "scanner": "scanner-primary", "fingerprint": "76cbefb148d4cec3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-0bd52841ae51e45e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-timeline/src/TimelineProvider/TimelineProviderFunctions.ts:93"}, "properties": {"repobilityId": "fbf115d4966f8df3", "scanner": "scanner-primary", "fingerprint": "0bd52841ae51e45e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-7552c071fe27e11c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-timeline/src/Engine/Engine.ts:559"}, "properties": {"repobilityId": "1ccce8f62dbc8723", "scanner": "scanner-primary", "fingerprint": "7552c071fe27e11c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8eac44cf4f745839", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-media-api/scripts/init-db.ts:41"}, "properties": {"repobilityId": "31bdccd7e873b2ec", "scanner": "scanner-primary", "fingerprint": "8eac44cf4f745839", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9106d0941d5f6d5d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-media-api/scripts/validate-openapi.ts:40"}, "properties": {"repobilityId": "22f959c9046457b5", "scanner": "scanner-primary", "fingerprint": "9106d0941d5f6d5d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f4b30fa72d5f6e75", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-media-api/scripts/export-openapi.ts:34"}, "properties": {"repobilityId": "f47899c4fc694bd0", "scanner": "scanner-primary", "fingerprint": "f4b30fa72d5f6e75", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a07ca72f530458c2", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-media-api/src/media/media.controller.ts:469"}, "properties": {"repobilityId": "d59043b7cf204d69", "scanner": "scanner-primary", "fingerprint": "a07ca72f530458c2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-609eee73142ddd3a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-docs/restructure-components.js:45"}, "properties": {"repobilityId": "9b1dd93586341b96", "scanner": "scanner-primary", "fingerprint": "609eee73142ddd3a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-092ce5ae6740e708", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-docs/verify-components.js:15"}, "properties": {"repobilityId": "2bc9ed94bd3c3d05", "scanner": "scanner-primary", "fingerprint": "092ce5ae6740e708", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b69e5702accebf65", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-docs/update-imports.js:16"}, "properties": {"repobilityId": "a379bc3749520b9b", "scanner": "scanner-primary", "fingerprint": "b69e5702accebf65", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-e77c512bdf6b8801", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-docs/restructure.js:32"}, "properties": {"repobilityId": "2d3bd2fc41da1646", "scanner": "scanner-primary", "fingerprint": "e77c512bdf6b8801", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-5b4c9f3019e74aa4", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-docs/fix-extensions.js:16"}, "properties": {"repobilityId": "ae5d8b8cd6e2cff5", "scanner": "scanner-primary", "fingerprint": "5b4c9f3019e74aa4", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-4d091c5def86e582", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-docs/src/utils.tsx:102"}, "properties": {"repobilityId": "c83b04042c6c3d75", "scanner": "scanner-primary", "fingerprint": "4d091c5def86e582", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-61089b3b48f9e98a", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-docs/src/components/Dependencies.ts:81"}, "properties": {"repobilityId": "b2415c3e2ff36031", "scanner": "scanner-primary", "fingerprint": "61089b3b48f9e98a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-1c46f69dc6553ecd", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-docs/src/components/DemoSandbox.tsx:181"}, "properties": {"repobilityId": "fb10a931126f763d", "scanner": "scanner-primary", "fingerprint": "1c46f69dc6553ecd", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-1066596c4f4db69e", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-docs/src/components/ThemeContext.tsx:226"}, "properties": {"repobilityId": "7360cda13689e895", "scanner": "scanner-primary", "fingerprint": "1066596c4f4db69e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-a72bf8111e2784a5", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/sui-docs/src/components/MarkdownElement.tsx:815"}, "properties": {"repobilityId": "126d90ff2e4a7f21", "scanner": "scanner-primary", "fingerprint": "a72bf8111e2784a5", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-a19f2603d924b7d5", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/sui-docs/src/components/HighlightedCode.tsx:45"}, "properties": {"repobilityId": "f74d1f792999ef7b", "scanner": "scanner-primary", "fingerprint": "a19f2603d924b7d5", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-625f5e5debb9fea3", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 packages/sui-docs/src/components/DemoEditor.tsx:161"}, "properties": {"repobilityId": "7ed30c170b4c0b2d", "scanner": "scanner-primary", "fingerprint": "625f5e5debb9fea3", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-e83af21af35b613d", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-docs/src/components/getProductInfoFromUrl.ts:45"}, "properties": {"repobilityId": "28a632caf035d87f", "scanner": "scanner-primary", "fingerprint": "e83af21af35b613d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-2d60b851cbcbff1b", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-docs/src/components/DemoToolbar.tsx:170"}, "properties": {"repobilityId": "39d8d061ae14ed4a", "scanner": "scanner-primary", "fingerprint": "2d60b851cbcbff1b", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-45fa7c3202f3dcc3", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-docs/src/branding/brandingTheme.ts:82"}, "properties": {"repobilityId": "b69318d328549f2a", "scanner": "scanner-primary", "fingerprint": "45fa7c3202f3dcc3", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-ed0b92ba56790e89", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-common/src/MimeType/StokedUiMime.ts:42"}, "properties": {"repobilityId": "b28ca359194fa9ec", "scanner": "scanner-primary", "fingerprint": "ed0b92ba56790e89", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9fa206dc79796d7d", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 packages/sui-common/src/MimeType/IMimeType.ts:6"}, "properties": {"repobilityId": "04630b3f26dcaeb6", "scanner": "scanner-primary", "fingerprint": "9fa206dc79796d7d", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-189738dc4977305c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-common/src/SocialLinks/SocialLinks.tsx:16"}, "properties": {"repobilityId": "515d04459f8fa6d5", "scanner": "scanner-primary", "fingerprint": "189738dc4977305c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bb4a5b8586738ac5", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-common/src/Types/Types.js:6"}, "properties": {"repobilityId": "350b7180b033c01d", "scanner": "scanner-primary", "fingerprint": "bb4a5b8586738ac5", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f6f037363b2ff2c0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-common/src/Types/Types.ts:9"}, "properties": {"repobilityId": "8b436f3ec912df6f", "scanner": "scanner-primary", "fingerprint": "f6f037363b2ff2c0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-97daf2a72d32833d", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-common/src/GrokLoader/GrokLoader.tsx:61"}, "properties": {"repobilityId": "b474f4b6edc98112", "scanner": "scanner-primary", "fingerprint": "97daf2a72d32833d", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-041b0b76a74191aa", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-common/src/ProviderState/Settings.ts:7"}, "properties": {"repobilityId": "013aedb723be606a", "scanner": "scanner-primary", "fingerprint": "041b0b76a74191aa", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-1461994658547db1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-common/src/ProviderState/ProviderState.ts:150"}, "properties": {"repobilityId": "752af174990322d5", "scanner": "scanner-primary", "fingerprint": "1461994658547db1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bc14320a076fe813", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-common/src/Colors/colors.ts:59"}, "properties": {"repobilityId": "555a03cd0ca2c94b", "scanner": "scanner-primary", "fingerprint": "bc14320a076fe813", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-83468a96482f95c2", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/sui-common/src/LocalDb/VideoDb.tsx:97"}, "properties": {"repobilityId": "2a935ba8f3d7ede5", "scanner": "scanner-primary", "fingerprint": "83468a96482f95c2", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a99aba9a19480327", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/compositor-comparison/node/compositor-bench.js:282"}, "properties": {"repobilityId": "7c81b8b7516e2308", "scanner": "scanner-primary", "fingerprint": "a99aba9a19480327", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8e96953c253d91ad", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/server/scenarios/core.js:10"}, "properties": {"repobilityId": "35bf775a42543bf6", "scanner": "scanner-primary", "fingerprint": "8e96953c253d91ad", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-6994490cf745559e", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/server/scenarios/docs.js:14"}, "properties": {"repobilityId": "6813bd70f6068a2a", "scanner": "scanner-primary", "fingerprint": "6994490cf745559e", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d8dafe01fd7c2bcf", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/server/scenarios/server.js:169"}, "properties": {"repobilityId": "b0ec40901df4cf32", "scanner": "scanner-primary", "fingerprint": "d8dafe01fd7c2bcf", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-b283354d8334da32", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/server/scenarios/styles.js:16"}, "properties": {"repobilityId": "da42461a1f3fdf6c", "scanner": "scanner-primary", "fingerprint": "b283354d8334da32", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8d64adf2aac5c60c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/server/scenarios/system.js:10"}, "properties": {"repobilityId": "a2e4df4adcf8455d", "scanner": "scanner-primary", "fingerprint": "8d64adf2aac5c60c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f784557e6623d8d2", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 benchmark/browser/webpack.config.js:38"}, "properties": {"repobilityId": "c84daff106378809", "scanner": "scanner-primary", "fingerprint": "f784557e6623d8d2", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-5ceea06315a3e25a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 benchmark/browser/scripts/benchmark.js:81"}, "properties": {"repobilityId": "235a54b1c074356c", "scanner": "scanner-primary", "fingerprint": "5ceea06315a3e25a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-11f065438eb8afac", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 examples/material-ui-nextjs-ts-v4-v5-migration/pages/_document.tsx:85"}, "properties": {"repobilityId": "98af35d4a98a98f3", "scanner": "scanner-primary", "fingerprint": "11f065438eb8afac", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-eac62058446e786a", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 examples/material-ui-remix-ts/remix.config.js:8"}, "properties": {"repobilityId": "14256634b57e1cc3", "scanner": "scanner-primary", "fingerprint": "eac62058446e786a", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-0dccea6ceee6a1fb", "level": "warning", "message": {"text": "`dangerouslySetInnerHTML` used in a React component \u2014 examples/joy-ui-nextjs-ts/src/components/ThemeRegistry/EmotionCache.tsx:76"}, "properties": {"repobilityId": "22eb0e53cf8f0b0e", "scanner": "scanner-primary", "fingerprint": "0dccea6ceee6a1fb", "layer": "frontend", "severity": "medium", "confidence": 1.0, "tags": ["frontend-quality", "fq.dangerous-html"]}}, {"ruleId": "scanner-c8696fcd0605eb4e", "level": "none", "message": {"text": "TODO/FIXME marker in shipping code \u2014 examples/base-ui-nextjs-tailwind-ts/src/app/components.tsx:147"}, "properties": {"repobilityId": "41858e8ed8203972", "scanner": "scanner-primary", "fingerprint": "c8696fcd0605eb4e", "layer": "frontend", "severity": "info", "confidence": 1.0, "tags": ["frontend-quality", "fq.todo-marker"]}}, {"ruleId": "scanner-0324467b85e2897b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 examples/material-ui-express-ssr/server.js:70"}, "properties": {"repobilityId": "390230f7d66acf62", "scanner": "scanner-primary", "fingerprint": "0324467b85e2897b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-809ab695f23de2b3", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 examples/material-ui-cra-styled-components/src/serviceWorker.js:44"}, "properties": {"repobilityId": "9126aeba8292a654", "scanner": "scanner-primary", "fingerprint": "809ab695f23de2b3", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-bc6d3db8465a060c", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:18-alpine"}, "properties": {"repobilityId": "dae876ae14b0e4d4", "scanner": "scanner-primary", "fingerprint": "bc6d3db8465a060c", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/sui-media-api/Dockerfile"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-bc6d3db8465a060c", "level": "note", "message": {"text": "Docker base image is tag-pinned but not digest-pinned: node:18-alpine"}, "properties": {"repobilityId": "2796cef6b2cabb83", "scanner": "scanner-primary", "fingerprint": "bc6d3db8465a060c", "layer": "hardware", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "docker", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/sui-media-api/Dockerfile"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-218df0ee504283f1", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in dangerfile.ts:21"}, "properties": {"repobilityId": "1f7bd2028cde2a90", "scanner": "scanner-primary", "fingerprint": "218df0ee504283f1", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dangerfile.ts"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-a17ee9ff535ee743", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in dangerfile.ts:4"}, "properties": {"repobilityId": "172814beb5a4b312", "scanner": "scanner-primary", "fingerprint": "a17ee9ff535ee743", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "dangerfile.ts"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-f9eaf628c61d7d63", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in packages-internal/test-utils/src/createRenderer.tsx:325"}, "properties": {"repobilityId": "bfa14d11caee0968", "scanner": "scanner-primary", "fingerprint": "f9eaf628c61d7d63", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages-internal/test-utils/src/createRenderer.tsx"}, "region": {"startLine": 325}}}]}, {"ruleId": "scanner-38025deeaa3a9f8b", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages-internal/sui-envinfo/envinfo.test.js:1"}, "properties": {"repobilityId": "3b44d76579eb4c4c", "scanner": "scanner-primary", "fingerprint": "38025deeaa3a9f8b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages-internal/sui-envinfo/envinfo.test.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b46181485c57988a", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in packages-internal/sui-envinfo/scripts/build.js:19"}, "properties": {"repobilityId": "467c8d3b7bf99353", "scanner": "scanner-primary", "fingerprint": "b46181485c57988a", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages-internal/sui-envinfo/scripts/build.js"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-5439c69ee6cb5986", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages-internal/sui-envinfo/scripts/build.js:1"}, "properties": {"repobilityId": "62c23d71e679f5ce", "scanner": "scanner-primary", "fingerprint": "5439c69ee6cb5986", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages-internal/sui-envinfo/scripts/build.js"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b2fbb88ed2085b46", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in api/promos.ts:92"}, "properties": {"repobilityId": "96d79618b4204b8a", "scanner": "scanner-primary", "fingerprint": "b2fbb88ed2085b46", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "api/promos.ts"}, "region": {"startLine": 92}}}]}, {"ruleId": "scanner-ccde9c4ca9afd058", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/pages/index.tsx:103"}, "properties": {"repobilityId": "5956d49ae883b036", "scanner": "scanner-primary", "fingerprint": "ccde9c4ca9afd058", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/pages/index.tsx"}, "region": {"startLine": 103}}}]}, {"ruleId": "scanner-1fc042bd1e032c26", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/pages/_document.js:56"}, "properties": {"repobilityId": "c18cf02e5d226f07", "scanner": "scanner-primary", "fingerprint": "1fc042bd1e032c26", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/pages/_document.js"}, "region": {"startLine": 56}}}]}, {"ruleId": "scanner-9f21f4ffad477f1e", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/pages/blog/[slug].tsx:213"}, "properties": {"repobilityId": "55859c06d4845a9c", "scanner": "scanner-primary", "fingerprint": "9f21f4ffad477f1e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/pages/blog/[slug].tsx"}, "region": {"startLine": 213}}}]}, {"ruleId": "scanner-338b46b768957dde", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in docs/pages/products/feedback.tsx:209"}, "properties": {"repobilityId": "a7c1c10dc680a720", "scanner": "scanner-primary", "fingerprint": "338b46b768957dde", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/pages/products/feedback.tsx"}, "region": {"startLine": 209}}}]}, {"ruleId": "scanner-97311ed7e5adf810", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/pages/consulting/home.tsx:61"}, "properties": {"repobilityId": "c72eb012e9778795", "scanner": "scanner-primary", "fingerprint": "97311ed7e5adf810", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/pages/consulting/home.tsx"}, "region": {"startLine": 61}}}]}, {"ruleId": "scanner-39143e2bba7e7439", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in docs/pages/consulting/login.tsx:310"}, "properties": {"repobilityId": "d83dcf93355b3a93", "scanner": "scanner-primary", "fingerprint": "39143e2bba7e7439", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/pages/consulting/login.tsx"}, "region": {"startLine": 310}}}]}, {"ruleId": "scanner-51b97ee413d2dff5", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/pages/experiments/base/listbox.tsx:225"}, "properties": {"repobilityId": "61908efa2f691de6", "scanner": "scanner-primary", "fingerprint": "51b97ee413d2dff5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/pages/experiments/base/listbox.tsx"}, "region": {"startLine": 225}}}]}, {"ruleId": "scanner-4701a1e0a6387aad", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in docs/pages/experiments/base/components-gallery.tsx:252"}, "properties": {"repobilityId": "32fef0f20a5d14bb", "scanner": "scanner-primary", "fingerprint": "4701a1e0a6387aad", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/pages/experiments/base/components-gallery.tsx"}, "region": {"startLine": 252}}}]}, {"ruleId": "scanner-be3cdbfd13d723fa", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/BlogMarkdownEditor.tsx:292"}, "properties": {"repobilityId": "11ed185d7b75bf88", "scanner": "scanner-primary", "fingerprint": "be3cdbfd13d723fa", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/src/modules/components/BlogMarkdownEditor.tsx"}, "region": {"startLine": 292}}}]}, {"ruleId": "scanner-4958b49f6328055e", "level": "warning", "message": {"text": "Insecure pattern 'local_storage_auth_token' in docs/src/modules/components/UsersPage.tsx:147"}, "properties": {"repobilityId": "dbc93615b62fbcbe", "scanner": "scanner-primary", "fingerprint": "4958b49f6328055e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "local_storage_auth_token"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/src/modules/components/UsersPage.tsx"}, "region": {"startLine": 147}}}]}, {"ruleId": "scanner-4ba17e8c5529e90c", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ComponentsApiContent.js:151"}, "properties": {"repobilityId": "b99e2c0aa70a4911", "scanner": "scanner-primary", "fingerprint": "4ba17e8c5529e90c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/src/modules/components/ComponentsApiContent.js"}, "region": {"startLine": 151}}}]}, {"ruleId": "scanner-033aaa147d6a2a35", "level": "error", "message": {"text": "Possible secret in docs/src/modules/components/AppSearch.js"}, "properties": {"repobilityId": "97bfe9b92ced4cdd", "scanner": "scanner-primary", "fingerprint": "033aaa147d6a2a35", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/src/modules/components/AppSearch.js"}, "region": {"startLine": 454}}}]}, {"ruleId": "scanner-e281902f47e02386", "level": "warning", "message": {"text": "Insecure pattern 'insert_adjacent_html' in docs/src/modules/components/AppSearch.js:390"}, "properties": {"repobilityId": "d713c2eb64564263", "scanner": "scanner-primary", "fingerprint": "e281902f47e02386", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "insert_adjacent_html"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/src/modules/components/AppSearch.js"}, "region": {"startLine": 390}}}]}, {"ruleId": "scanner-c37fc2bf028fe5b5", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/Notifications.js:240"}, "properties": {"repobilityId": "f274c2789f8a9f02", "scanner": "scanner-primary", "fingerprint": "c37fc2bf028fe5b5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/src/modules/components/Notifications.js"}, "region": {"startLine": 240}}}]}, {"ruleId": "scanner-7c6a7b4ddab7518b", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/AppLayoutDocsFooter.js:449"}, "properties": {"repobilityId": "73813ae983c0dc56", "scanner": "scanner-primary", "fingerprint": "7c6a7b4ddab7518b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/src/modules/components/AppLayoutDocsFooter.js"}, "region": {"startLine": 449}}}]}, {"ruleId": "scanner-ff0ec060c14e6cfb", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/HooksApiContent.js:75"}, "properties": {"repobilityId": "1d08fb3d5045e3bc", "scanner": "scanner-primary", "fingerprint": "ff0ec060c14e6cfb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/src/modules/components/HooksApiContent.js"}, "region": {"startLine": 75}}}]}, {"ruleId": "scanner-4df06cbc54404447", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/DemoEditor.tsx:161"}, "properties": {"repobilityId": "321a711a710d3361", "scanner": "scanner-primary", "fingerprint": "4df06cbc54404447", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/src/modules/components/DemoEditor.tsx"}, "region": {"startLine": 161}}}]}, {"ruleId": "scanner-5407ccf5a7ca4368", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/InterfaceApiPage.js:82"}, "properties": {"repobilityId": "d2289c5486dbcd9c", "scanner": "scanner-primary", "fingerprint": "5407ccf5a7ca4368", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/src/modules/components/InterfaceApiPage.js"}, "region": {"startLine": 82}}}]}, {"ruleId": "scanner-abf26fcaa7dcd091", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/AdDisplay.js:60"}, "properties": {"repobilityId": "2f8612d256847f90", "scanner": "scanner-primary", "fingerprint": "abf26fcaa7dcd091", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/src/modules/components/AdDisplay.js"}, "region": {"startLine": 60}}}]}, {"ruleId": "scanner-a8a379dd63372094", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/TopLayoutBlog.js:336"}, "properties": {"repobilityId": "8a68ad7fa99c1fc2", "scanner": "scanner-primary", "fingerprint": "a8a379dd63372094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/src/modules/components/TopLayoutBlog.js"}, "region": {"startLine": 336}}}]}, {"ruleId": "scanner-b68a949ac98e4d7d", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/AppTableOfContents.js:244"}, "properties": {"repobilityId": "502f4c5702d3a691", "scanner": "scanner-primary", "fingerprint": "b68a949ac98e4d7d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/src/modules/components/AppTableOfContents.js"}, "region": {"startLine": 244}}}]}, {"ruleId": "scanner-1dd00a4ac9856636", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ApiPage.js:230"}, "properties": {"repobilityId": "5c73c0fb5ae65bac", "scanner": "scanner-primary", "fingerprint": "1dd00a4ac9856636", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/src/modules/components/ApiPage.js"}, "region": {"startLine": 230}}}]}, {"ruleId": "scanner-c9eb75dc0baacf09", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/HighlightedCode.js:35"}, "properties": {"repobilityId": "a22fc8f49bb882fa", "scanner": "scanner-primary", "fingerprint": "c9eb75dc0baacf09", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/src/modules/components/HighlightedCode.js"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-f4cbff9e8aa96a01", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ApiPage/table/ClassesTable.tsx:92"}, "properties": {"repobilityId": "187c26d143e76863", "scanner": "scanner-primary", "fingerprint": "f4cbff9e8aa96a01", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/src/modules/components/ApiPage/table/ClassesTable.tsx"}, "region": {"startLine": 92}}}]}, {"ruleId": "scanner-972f02f41cb3766e", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ApiPage/table/SlotsTable.tsx:105"}, "properties": {"repobilityId": "46e573a0922c18ce", "scanner": "scanner-primary", "fingerprint": "972f02f41cb3766e", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/src/modules/components/ApiPage/table/SlotsTable.tsx"}, "region": {"startLine": 105}}}]}, {"ruleId": "scanner-31e8530cb146ddca", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ApiPage/table/PropertiesTable.tsx:112"}, "properties": {"repobilityId": "72dc1cc7a21a8186", "scanner": "scanner-primary", "fingerprint": "31e8530cb146ddca", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/src/modules/components/ApiPage/table/PropertiesTable.tsx"}, "region": {"startLine": 112}}}]}, {"ruleId": "scanner-94934c0ad3766e0f", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ApiPage/list/SlotsList.tsx:88"}, "properties": {"repobilityId": "9a23b412672df9d5", "scanner": "scanner-primary", "fingerprint": "94934c0ad3766e0f", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/src/modules/components/ApiPage/list/SlotsList.tsx"}, "region": {"startLine": 88}}}]}, {"ruleId": "scanner-45dd91ec3ad81dc8", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ApiPage/list/ClassesList.tsx:96"}, "properties": {"repobilityId": "9ecb933e000e326d", "scanner": "scanner-primary", "fingerprint": "45dd91ec3ad81dc8", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/src/modules/components/ApiPage/list/ClassesList.tsx"}, "region": {"startLine": 96}}}]}, {"ruleId": "scanner-62080e6d267a3a69", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ApiPage/list/PropertiesList.tsx:105"}, "properties": {"repobilityId": "6468fd8dcd59db32", "scanner": "scanner-primary", "fingerprint": "62080e6d267a3a69", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/src/modules/components/ApiPage/list/PropertiesList.tsx"}, "region": {"startLine": 105}}}]}, {"ruleId": "scanner-0bb303b2326b706b", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ApiPage/sections/SlotsSection.tsx:76"}, "properties": {"repobilityId": "93cbef8227bc0632", "scanner": "scanner-primary", "fingerprint": "0bb303b2326b706b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/src/modules/components/ApiPage/sections/SlotsSection.tsx"}, "region": {"startLine": 76}}}]}, {"ruleId": "scanner-dd2c478d3b19c776", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ApiPage/sections/ClassesSection.tsx:114"}, "properties": {"repobilityId": "4c79ae8496a3cf02", "scanner": "scanner-primary", "fingerprint": "dd2c478d3b19c776", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/src/modules/components/ApiPage/sections/ClassesSection.tsx"}, "region": {"startLine": 114}}}]}, {"ruleId": "scanner-a9575adc5a4bfbfe", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in docs/src/modules/components/ApiPage/sections/PropertiesSection.js:143"}, "properties": {"repobilityId": "1e9cdb6ccb25a27b", "scanner": "scanner-primary", "fingerprint": "a9575adc5a4bfbfe", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/src/modules/components/ApiPage/sections/PropertiesSection.js"}, "region": {"startLine": 143}}}]}, {"ruleId": "scanner-d1d6dee86beb9934", "level": "error", "message": {"text": "Possible secret in scripts/npm-local-add-user.sh"}, "properties": {"repobilityId": "0152335038267560", "scanner": "scanner-primary", "fingerprint": "d1d6dee86beb9934", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/npm-local-add-user.sh"}, "region": {"startLine": 5}}}]}, {"ruleId": "scanner-eb2526bd97cf9e75", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in scripts/releaseChangelog.mjs:41"}, "properties": {"repobilityId": "4342d42d85860d70", "scanner": "scanner-primary", "fingerprint": "eb2526bd97cf9e75", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/releaseChangelog.mjs"}, "region": {"startLine": 41}}}]}, {"ruleId": "scanner-d6e2aed92d3ab196", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/releaseChangelog.mjs:2"}, "properties": {"repobilityId": "bfc4f80a7015a236", "scanner": "scanner-primary", "fingerprint": "d6e2aed92d3ab196", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/releaseChangelog.mjs"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-811f90a37255f634", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/npmRelease.mjs:4"}, "properties": {"repobilityId": "5dc839fdfeedf5dd", "scanner": "scanner-primary", "fingerprint": "811f90a37255f634", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/npmRelease.mjs"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-2863398b4bb6caa3", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in scripts/releaseTag.mjs:19"}, "properties": {"repobilityId": "4621078d8e4900c1", "scanner": "scanner-primary", "fingerprint": "2863398b4bb6caa3", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/releaseTag.mjs"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-5401641ae95d8e70", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/releaseTag.mjs:1"}, "properties": {"repobilityId": "bc73167bf21dd52b", "scanner": "scanner-primary", "fingerprint": "5401641ae95d8e70", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/releaseTag.mjs"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-19972dae4b2c76cf", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in scripts/build.mjs:95"}, "properties": {"repobilityId": "87f187a216efeeca", "scanner": "scanner-primary", "fingerprint": "19972dae4b2c76cf", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/build.mjs"}, "region": {"startLine": 95}}}]}, {"ruleId": "scanner-c0c18debf0b8f98c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/build.mjs:1"}, "properties": {"repobilityId": "a7d0f47b903899f9", "scanner": "scanner-primary", "fingerprint": "c0c18debf0b8f98c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/build.mjs"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e45e5550af97aa11", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in scripts/useReactVersion.mjs:53"}, "properties": {"repobilityId": "19aa93758694b6b9", "scanner": "scanner-primary", "fingerprint": "e45e5550af97aa11", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/useReactVersion.mjs"}, "region": {"startLine": 53}}}]}, {"ruleId": "scanner-56effe759ce3c323", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/useReactVersion.mjs:10"}, "properties": {"repobilityId": "5cd829e99acb1643", "scanner": "scanner-primary", "fingerprint": "56effe759ce3c323", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/useReactVersion.mjs"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-b0bbc2e0e3818a00", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in scripts/test.mjs:2"}, "properties": {"repobilityId": "929d12ddb5d9540f", "scanner": "scanner-primary", "fingerprint": "b0bbc2e0e3818a00", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "scripts/test.mjs"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-52779703a4771207", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in packages/sui-editor/src/EditorEngine/EditorEngine.ts:407"}, "properties": {"repobilityId": "c1d21ddccb6bb41b", "scanner": "scanner-primary", "fingerprint": "52779703a4771207", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/sui-editor/src/EditorEngine/EditorEngine.ts"}, "region": {"startLine": 407}}}]}, {"ruleId": "scanner-cd2fcddb0c5ecf6c", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in packages/sui-file-explorer/test-benchmark.html:224"}, "properties": {"repobilityId": "f7d0da885585a513", "scanner": "scanner-primary", "fingerprint": "cd2fcddb0c5ecf6c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/sui-file-explorer/test-benchmark.html"}, "region": {"startLine": 224}}}]}, {"ruleId": "scanner-056c476f2e581804", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/sui-file-explorer/scripts/benchmark.mjs:10"}, "properties": {"repobilityId": "d3ac15c449fd45be", "scanner": "scanner-primary", "fingerprint": "056c476f2e581804", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/sui-file-explorer/scripts/benchmark.mjs"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-15e31e0895cce94a", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in packages/sui-file-explorer/src/FileExplorer/FileExplorer.benchmark.tsx:431"}, "properties": {"repobilityId": "f0b6ad3ca3d2ffe8", "scanner": "scanner-primary", "fingerprint": "15e31e0895cce94a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/sui-file-explorer/src/FileExplorer/FileExplorer.benchmark.tsx"}, "region": {"startLine": 431}}}]}, {"ruleId": "scanner-3ee12ef7f029ef34", "level": "error", "message": {"text": "Insecure pattern 'new_function_used' in packages/sui-video-renderer/pkg/wasm_preview_bg.js:396"}, "properties": {"repobilityId": "52b8966673065ee4", "scanner": "scanner-primary", "fingerprint": "3ee12ef7f029ef34", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "new_function_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/sui-video-renderer/pkg/wasm_preview_bg.js"}, "region": {"startLine": 396}}}]}, {"ruleId": "scanner-9d7d0f80a262c762", "level": "error", "message": {"text": "Possible secret in packages/sui-media-api/k8s/secret.yaml"}, "properties": {"repobilityId": "ed3cda12197fc923", "scanner": "scanner-primary", "fingerprint": "9d7d0f80a262c762", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/sui-media-api/k8s/secret.yaml"}, "region": {"startLine": 49}}}]}, {"ruleId": "scanner-9d7d0f80a262c762", "level": "error", "message": {"text": "Possible secret in packages/sui-media-api/k8s/secret.yaml"}, "properties": {"repobilityId": "b56b7f9352eb59bc", "scanner": "scanner-primary", "fingerprint": "9d7d0f80a262c762", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/sui-media-api/k8s/secret.yaml"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-9d7d0f80a262c762", "level": "error", "message": {"text": "Possible secret in packages/sui-media-api/k8s/secret.yaml"}, "properties": {"repobilityId": "b56b7f9352eb59bc", "scanner": "scanner-primary", "fingerprint": "9d7d0f80a262c762", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/sui-media-api/k8s/secret.yaml"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-9d7d0f80a262c762", "level": "error", "message": {"text": "Possible secret in packages/sui-media-api/k8s/secret.yaml"}, "properties": {"repobilityId": "b56b7f9352eb59bc", "scanner": "scanner-primary", "fingerprint": "9d7d0f80a262c762", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/sui-media-api/k8s/secret.yaml"}, "region": {"startLine": 45}}}]}, {"ruleId": "scanner-3a35d79a3c33aff5", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in packages/sui-media-api/src/lambda.bootstrap.ts:103"}, "properties": {"repobilityId": "1da12295b22cb4dc", "scanner": "scanner-primary", "fingerprint": "3a35d79a3c33aff5", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/sui-media-api/src/lambda.bootstrap.ts"}, "region": {"startLine": 103}}}]}, {"ruleId": "scanner-c6b55ca26efe5fc4", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/sui-media-api/src/media/metadata/metadata-extraction.service.ts:10"}, "properties": {"repobilityId": "7a93fbf75ea11468", "scanner": "scanner-primary", "fingerprint": "c6b55ca26efe5fc4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/sui-media-api/src/media/metadata/metadata-extraction.service.ts"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-2b84d7b5bb74ce14", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/sui-media-api/src/media/metadata/video-processing.service.ts:9"}, "properties": {"repobilityId": "98d81f50d0ec0592", "scanner": "scanner-primary", "fingerprint": "2b84d7b5bb74ce14", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/sui-media-api/src/media/metadata/video-processing.service.ts"}, "region": {"startLine": 9}}}]}, {"ruleId": "scanner-979ba048a7527c1b", "level": "error", "message": {"text": "Insecure pattern 'eval_used' in packages/sui-media-api/src/performance/metadata-extraction.optimization.ts:159"}, "properties": {"repobilityId": "565bd3baeb4927eb", "scanner": "scanner-primary", "fingerprint": "979ba048a7527c1b", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "eval_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/sui-media-api/src/performance/metadata-extraction.optimization.ts"}, "region": {"startLine": 159}}}]}, {"ruleId": "scanner-401ca7c751cbafc0", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/sui-docs/restructure-components.js:6"}, "properties": {"repobilityId": "ae17c47298ba41c0", "scanner": "scanner-primary", "fingerprint": "401ca7c751cbafc0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/sui-docs/restructure-components.js"}, "region": {"startLine": 6}}}]}, {"ruleId": "scanner-214902b0c64aedbb", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in packages/sui-docs/src/components/HighlightedCode.tsx:45"}, "properties": {"repobilityId": "5c9234774b66a243", "scanner": "scanner-primary", "fingerprint": "214902b0c64aedbb", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/sui-docs/src/components/HighlightedCode.tsx"}, "region": {"startLine": 45}}}]}, {"ruleId": "scanner-85b8942f7333a1f9", "level": "warning", "message": {"text": "Insecure pattern 'dangerous_innerhtml' in packages/sui-docs/src/components/DemoEditor.tsx:161"}, "properties": {"repobilityId": "b0a47b71b74eb4a5", "scanner": "scanner-primary", "fingerprint": "85b8942f7333a1f9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "dangerous_innerhtml"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/sui-docs/src/components/DemoEditor.tsx"}, "region": {"startLine": 161}}}]}, {"ruleId": "scanner-f6f82583bcd7bde0", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in infra/api.ts:11"}, "properties": {"repobilityId": "4d6d2677533692ef", "scanner": "scanner-primary", "fingerprint": "f6f82583bcd7bde0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "infra/api.ts"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-6a38f89781e41ce7", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d8b32edf72d3ca64", "scanner": "scanner-primary", "fingerprint": "6a38f89781e41ce7", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages-internal/sui-video-validator/.github/workflows/test.yml"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-6a38f89781e41ce7", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "70dfe26d29f8135f", "scanner": "scanner-primary", "fingerprint": "6a38f89781e41ce7", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages-internal/sui-video-validator/.github/workflows/test.yml"}, "region": {"startLine": 33}}}]}, {"ruleId": "scanner-6a38f89781e41ce7", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2dce88d3c4f5eeae", "scanner": "scanner-primary", "fingerprint": "6a38f89781e41ce7", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages-internal/sui-video-validator/.github/workflows/test.yml"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-6a38f89781e41ce7", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a5a3b6cea8f317d7", "scanner": "scanner-primary", "fingerprint": "6a38f89781e41ce7", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages-internal/sui-video-validator/.github/workflows/test.yml"}, "region": {"startLine": 54}}}]}, {"ruleId": "scanner-6a38f89781e41ce7", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d8b32edf72d3ca64", "scanner": "scanner-primary", "fingerprint": "6a38f89781e41ce7", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages-internal/sui-video-validator/.github/workflows/test.yml"}, "region": {"startLine": 66}}}]}, {"ruleId": "scanner-6a38f89781e41ce7", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "70dfe26d29f8135f", "scanner": "scanner-primary", "fingerprint": "6a38f89781e41ce7", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages-internal/sui-video-validator/.github/workflows/test.yml"}, "region": {"startLine": 69}}}]}, {"ruleId": "scanner-6a38f89781e41ce7", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2dce88d3c4f5eeae", "scanner": "scanner-primary", "fingerprint": "6a38f89781e41ce7", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages-internal/sui-video-validator/.github/workflows/test.yml"}, "region": {"startLine": 74}}}]}, {"ruleId": "scanner-6a38f89781e41ce7", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d8b32edf72d3ca64", "scanner": "scanner-primary", "fingerprint": "6a38f89781e41ce7", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages-internal/sui-video-validator/.github/workflows/test.yml"}, "region": {"startLine": 93}}}]}, {"ruleId": "scanner-6a38f89781e41ce7", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "70dfe26d29f8135f", "scanner": "scanner-primary", "fingerprint": "6a38f89781e41ce7", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages-internal/sui-video-validator/.github/workflows/test.yml"}, "region": {"startLine": 101}}}]}, {"ruleId": "scanner-6a38f89781e41ce7", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "2dce88d3c4f5eeae", "scanner": "scanner-primary", "fingerprint": "6a38f89781e41ce7", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages-internal/sui-video-validator/.github/workflows/test.yml"}, "region": {"startLine": 106}}}]}, {"ruleId": "scanner-6a38f89781e41ce7", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a5a3b6cea8f317d7", "scanner": "scanner-primary", "fingerprint": "6a38f89781e41ce7", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages-internal/sui-video-validator/.github/workflows/test.yml"}, "region": {"startLine": 140}}}]}, {"ruleId": "scanner-8f4c232b4aa78fc9", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "979e3b58c19faf5e", "scanner": "scanner-primary", "fingerprint": "8f4c232b4aa78fc9", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/claude-code-review.yml"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-8f4c232b4aa78fc9", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "7572d8d133564421", "scanner": "scanner-primary", "fingerprint": "8f4c232b4aa78fc9", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/claude-code-review.yml"}, "region": {"startLine": 36}}}]}, {"ruleId": "scanner-77166cbd46fcd8e4", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "50f3b563ffac10e9", "scanner": "scanner-primary", "fingerprint": "77166cbd46fcd8e4", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/claude-code-review.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "54597edb7f5bad38", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 30}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "989a74409a402368", "scanner": "scanner-primary", "fingerprint": "27924aa79fa4a517", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/ci.yml"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-de53ac274e5b4ecf", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "02600186fc092bd4", "scanner": "scanner-primary", "fingerprint": "de53ac274e5b4ecf", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/claude.yml"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-de53ac274e5b4ecf", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "8ead6a2c2bfe167b", "scanner": "scanner-primary", "fingerprint": "de53ac274e5b4ecf", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/claude.yml"}, "region": {"startLine": 35}}}]}, {"ruleId": "scanner-37716d9c0a33ad5c", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "abfb5752158cf655", "scanner": "scanner-primary", "fingerprint": "37716d9c0a33ad5c", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/claude.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-a5037ecad3c32cc8", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "21d59b10ca939848", "scanner": "scanner-primary", "fingerprint": "a5037ecad3c32cc8", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-site.yml"}, "region": {"startLine": 26}}}]}, {"ruleId": "scanner-a5037ecad3c32cc8", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "6082bd58f057a6a4", "scanner": "scanner-primary", "fingerprint": "a5037ecad3c32cc8", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-site.yml"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-a5037ecad3c32cc8", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "c18b16777c3f7b23", "scanner": "scanner-primary", "fingerprint": "a5037ecad3c32cc8", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-site.yml"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-3808dc79ba3f91b4", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "e5c492438c53b765", "scanner": "scanner-primary", "fingerprint": "3808dc79ba3f91b4", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-site.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f3d7c1a5b122c3bd", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "699eac9660609446", "scanner": "scanner-primary", "fingerprint": "f3d7c1a5b122c3bd", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/scorecards.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-66e40d9d6cb55b2b", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "c45e6f6734bbd3c5", "scanner": "scanner-primary", "fingerprint": "66e40d9d6cb55b2b", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/publish-packages.yml"}, "region": {"startLine": 38}}}]}, {"ruleId": "scanner-66e40d9d6cb55b2b", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "55e204f2b717ae1c", "scanner": "scanner-primary", "fingerprint": "66e40d9d6cb55b2b", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/publish-packages.yml"}, "region": {"startLine": 40}}}]}, {"ruleId": "scanner-66e40d9d6cb55b2b", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "55e204f2b717ae1c", "scanner": "scanner-primary", "fingerprint": "66e40d9d6cb55b2b", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/publish-packages.yml"}, "region": {"startLine": 70}}}]}, {"ruleId": "scanner-66e40d9d6cb55b2b", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "c45e6f6734bbd3c5", "scanner": "scanner-primary", "fingerprint": "66e40d9d6cb55b2b", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/publish-packages.yml"}, "region": {"startLine": 96}}}]}, {"ruleId": "scanner-66e40d9d6cb55b2b", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "55e204f2b717ae1c", "scanner": "scanner-primary", "fingerprint": "66e40d9d6cb55b2b", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/publish-packages.yml"}, "region": {"startLine": 98}}}]}, {"ruleId": "scanner-3295c3ff963f5b76", "level": "warning", "message": {"text": "GitHub Actions workflow grants broad write permissions"}, "properties": {"repobilityId": "bfc1f26a78b1e54e", "scanner": "scanner-primary", "fingerprint": "3295c3ff963f5b76", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "least-privilege"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/publish-packages.yml"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cb639d9a10a47b23", "level": "note", "message": {"text": "package.json defines install-time lifecycle scripts"}, "properties": {"repobilityId": "4d02a5c7daed0bc5", "scanner": "scanner-primary", "fingerprint": "cb639d9a10a47b23", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c3b7538b608e709d", "level": "note", "message": {"text": "package.json defines install-time lifecycle scripts"}, "properties": {"repobilityId": "4787106c27c78382", "scanner": "scanner-primary", "fingerprint": "c3b7538b608e709d", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages-internal/stoked-cli/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-4e420e4ef9b9eb06", "level": "note", "message": {"text": "Very large file: packages-internal/cdn/src/App.jsx (1505 lines)"}, "properties": {"repobilityId": "f790abcbfa2987c2", "scanner": "scanner-primary", "fingerprint": "4e420e4ef9b9eb06", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1413ea8928879e8b", "level": "note", "message": {"text": "Very large file: packages-internal/stoked-cli/src/commands/mod.rs (1652 lines)"}, "properties": {"repobilityId": "62582065cb178732", "scanner": "scanner-primary", "fingerprint": "1413ea8928879e8b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-fc56f4059b54e829", "level": "note", "message": {"text": "Very large file: test/bundling/scripts/fixtureTemplateValues.js (1635 lines)"}, "properties": {"repobilityId": "e2fc0afc51577bc4", "scanner": "scanner-primary", "fingerprint": "fc56f4059b54e829", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-1ab081e936da1f0f", "level": "note", "message": {"text": "Very large file: docs/src/components/pricing/PricingTable.tsx (1617 lines)"}, "properties": {"repobilityId": "aa16416cb51fdcd9", "scanner": "scanner-primary", "fingerprint": "1ab081e936da1f0f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-df4c018212691682", "level": "note", "message": {"text": "Very large file: docs/src/modules/components/JoyThemeBuilder.tsx (1742 lines)"}, "properties": {"repobilityId": "db3ee7466f68b49f", "scanner": "scanner-primary", "fingerprint": "df4c018212691682", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-0205a6f776d6110e", "level": "note", "message": {"text": "Very large file: packages/sui-github/src/GithubEvents/GithubEvents.tsx (1377 lines)"}, "properties": {"repobilityId": "f1885a5cab1d1d8a", "scanner": "scanner-primary", "fingerprint": "0205a6f776d6110e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9c227e33ac4fdccd", "level": "note", "message": {"text": "Very large file: packages/sui-cdn/src/CdnBrowser/CdnBrowser.tsx (1442 lines)"}, "properties": {"repobilityId": "7e74c987d74ad7bf", "scanner": "scanner-primary", "fingerprint": "9c227e33ac4fdccd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-c74b33ea64d3a0f7", "level": "note", "message": {"text": "Very large file: packages/sui-video-renderer/compositor/src/compositor.rs (1596 lines)"}, "properties": {"repobilityId": "1ebd9f9ee320c5a8", "scanner": "scanner-primary", "fingerprint": "c74b33ea64d3a0f7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-ea3b5e389d8c9c0f", "level": "note", "message": {"text": "Low test-to-source ratio"}, "properties": {"repobilityId": "ef7b2552cc00a375", "scanner": "scanner-primary", "fingerprint": "ea3b5e389d8c9c0f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["tests"]}}, {"ruleId": "scanner-5a885d9c67943e55", "level": "note", "message": {"text": "156 TODO/FIXME markers"}, "properties": {"repobilityId": "4b38c118003e07d2", "scanner": "scanner-primary", "fingerprint": "5a885d9c67943e55", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["maintenance"]}}, {"ruleId": "scanner-50f2868c9db52456", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages-internal/cdn/package.json"}, "properties": {"repobilityId": "f683093d1733f9c0", "scanner": "scanner-primary", "fingerprint": "50f2868c9db52456", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages-internal/cdn/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0acff74fba82e4b8", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages-internal/proptypes/package.json"}, "properties": {"repobilityId": "1833029ef60259b5", "scanner": "scanner-primary", "fingerprint": "0acff74fba82e4b8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages-internal/proptypes/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-bd5c6f55d69a7b4f", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages-internal/cdn-sui/package.json"}, "properties": {"repobilityId": "1ddc839b5e0ac208", "scanner": "scanner-primary", "fingerprint": "bd5c6f55d69a7b4f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages-internal/cdn-sui/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f5e66ab4f26a3430", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages-internal/rsc-builder/package.json"}, "properties": {"repobilityId": "a90ec53689a679e0", "scanner": "scanner-primary", "fingerprint": "f5e66ab4f26a3430", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages-internal/rsc-builder/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5715df03d028266a", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages-internal/react-docgen-types/package.json"}, "properties": {"repobilityId": "b065a51e9fbff3b6", "scanner": "scanner-primary", "fingerprint": "5715df03d028266a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages-internal/react-docgen-types/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e7bd762d4728d720", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages-internal/test-utils/package.json"}, "properties": {"repobilityId": "0d60775730b14df7", "scanner": "scanner-primary", "fingerprint": "e7bd762d4728d720", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages-internal/test-utils/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d70e5019b7de9aed", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages-internal/markdown/package.json"}, "properties": {"repobilityId": "81d5726bed2668ba", "scanner": "scanner-primary", "fingerprint": "d70e5019b7de9aed", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages-internal/markdown/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-976b6e03f17fb047", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages-internal/netlify-plugin-cache-docs/package.json"}, "properties": {"repobilityId": "04f98d2ad564eed7", "scanner": "scanner-primary", "fingerprint": "976b6e03f17fb047", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages-internal/netlify-plugin-cache-docs/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-35be6525b1970eb1", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages-internal/sui-video-validator/package.json"}, "properties": {"repobilityId": "d53c7a6444a20958", "scanner": "scanner-primary", "fingerprint": "35be6525b1970eb1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages-internal/sui-video-validator/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-55b7dca7ef07406c", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages-internal/eslint-plugin-stoked-ui/package.json"}, "properties": {"repobilityId": "56bf702bc425a2dd", "scanner": "scanner-primary", "fingerprint": "55b7dca7ef07406c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages-internal/eslint-plugin-stoked-ui/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0eb61c73f2a6bf8c", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages-internal/sui-envinfo/package.json"}, "properties": {"repobilityId": "f09aa704f3dba123", "scanner": "scanner-primary", "fingerprint": "0eb61c73f2a6bf8c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages-internal/sui-envinfo/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-cd2dd75029aac675", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages-internal/sui-envinfo/test/package.json"}, "properties": {"repobilityId": "bec4dbdd69fd643f", "scanner": "scanner-primary", "fingerprint": "cd2dd75029aac675", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages-internal/sui-envinfo/test/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-e731e4b78f454931", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages-internal/feedback/package.json"}, "properties": {"repobilityId": "30657a31f5b31fb7", "scanner": "scanner-primary", "fingerprint": "e731e4b78f454931", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages-internal/feedback/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9600d6028175d2d9", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages-internal/api-docs-builder/package.json"}, "properties": {"repobilityId": "ab368babb8ec9278", "scanner": "scanner-primary", "fingerprint": "9600d6028175d2d9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages-internal/api-docs-builder/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-189e1964c007752d", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages-internal/docs-utils/package.json"}, "properties": {"repobilityId": "1d6714e247e37432", "scanner": "scanner-primary", "fingerprint": "189e1964c007752d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages-internal/docs-utils/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5d53f0b13302a0d8", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: test/package.json"}, "properties": {"repobilityId": "b52b5485e8072dfb", "scanner": "scanner-primary", "fingerprint": "5d53f0b13302a0d8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-973740111bc39600", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: test/bundling/fixtures/next-webpack4/package.json"}, "properties": {"repobilityId": "d13a6fff69cd392d", "scanner": "scanner-primary", "fingerprint": "973740111bc39600", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/bundling/fixtures/next-webpack4/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d980f4d3fd5ab47e", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: test/bundling/fixtures/snowpack/package.json"}, "properties": {"repobilityId": "e065f1d5de38dac7", "scanner": "scanner-primary", "fingerprint": "d980f4d3fd5ab47e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/bundling/fixtures/snowpack/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-350df2a648adaaee", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: test/bundling/fixtures/vite/package.json"}, "properties": {"repobilityId": "5850115cf34185cc", "scanner": "scanner-primary", "fingerprint": "350df2a648adaaee", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/bundling/fixtures/vite/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6d0d8a01635961dd", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: test/bundling/fixtures/gatsby/package.json"}, "properties": {"repobilityId": "832b4e074a0ebb3f", "scanner": "scanner-primary", "fingerprint": "6d0d8a01635961dd", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/bundling/fixtures/gatsby/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-29a454ab947e24c2", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: test/bundling/fixtures/node-esm/package.json"}, "properties": {"repobilityId": "a785baae60a6f931", "scanner": "scanner-primary", "fingerprint": "29a454ab947e24c2", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/bundling/fixtures/node-esm/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b1f0b9944f6cbc48", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: test/bundling/fixtures/create-react-app/package.json"}, "properties": {"repobilityId": "65d489d5ddd86868", "scanner": "scanner-primary", "fingerprint": "b1f0b9944f6cbc48", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/bundling/fixtures/create-react-app/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f396e12ffe3130b1", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: test/bundling/fixtures/next-webpack5/package.json"}, "properties": {"repobilityId": "2e88834fbe240e7f", "scanner": "scanner-primary", "fingerprint": "f396e12ffe3130b1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/bundling/fixtures/next-webpack5/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d2b49e2a69faf7cc", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: test/bundling/fixtures/esbuild/package.json"}, "properties": {"repobilityId": "f1968d5a8079c762", "scanner": "scanner-primary", "fingerprint": "d2b49e2a69faf7cc", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "test/bundling/fixtures/esbuild/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-b8fae141f052f3ab", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: docs/package.json"}, "properties": {"repobilityId": "e77ce50b08d152bb", "scanner": "scanner-primary", "fingerprint": "b8fae141f052f3ab", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "docs/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-edd1106c0cb0c05c", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/sui-media/package.json"}, "properties": {"repobilityId": "184e964afab19cdf", "scanner": "scanner-primary", "fingerprint": "edd1106c0cb0c05c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/sui-media/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ed18e75b031c3541", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/sui-github/package.json"}, "properties": {"repobilityId": "a4f2a8fb650f9204", "scanner": "scanner-primary", "fingerprint": "ed18e75b031c3541", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/sui-github/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-ebd0c2a8494c78e3", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/sui-editor/package.json"}, "properties": {"repobilityId": "9ec6cfcd4d7a3200", "scanner": "scanner-primary", "fingerprint": "ebd0c2a8494c78e3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/sui-editor/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-336ae01906077c07", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/sui-file-explorer/package.json"}, "properties": {"repobilityId": "f157b6f1b42a4833", "scanner": "scanner-primary", "fingerprint": "336ae01906077c07", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/sui-file-explorer/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-08c9ed4cd849ac94", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/sui-cdn/package.json"}, "properties": {"repobilityId": "12f88548b3fb2966", "scanner": "scanner-primary", "fingerprint": "08c9ed4cd849ac94", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/sui-cdn/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9b3ff053ac027255", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/sui-timeline/package.json"}, "properties": {"repobilityId": "8eaf7b9279a52a5c", "scanner": "scanner-primary", "fingerprint": "9b3ff053ac027255", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/sui-timeline/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-577ddb65e7ee29d9", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/sui-media-api/package.json"}, "properties": {"repobilityId": "8ce831931f73ce2c", "scanner": "scanner-primary", "fingerprint": "577ddb65e7ee29d9", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/sui-media-api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-da6c23bf8f1d4fbb", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/sui-common-api/package.json"}, "properties": {"repobilityId": "54f1bfe2e389d222", "scanner": "scanner-primary", "fingerprint": "da6c23bf8f1d4fbb", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/sui-common-api/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3bc45aab28fc407f", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/sui-docs/package.json"}, "properties": {"repobilityId": "788ec636658442c6", "scanner": "scanner-primary", "fingerprint": "3bc45aab28fc407f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/sui-docs/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-63888f58af4e5867", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: packages/sui-common/package.json"}, "properties": {"repobilityId": "0e24b3dd0e648e4a", "scanner": "scanner-primary", "fingerprint": "63888f58af4e5867", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/sui-common/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-56b859808c3370f6", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: benchmark/package.json"}, "properties": {"repobilityId": "a401d362f3c2c067", "scanner": "scanner-primary", "fingerprint": "56b859808c3370f6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-80be565d4d984859", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: benchmark/compositor-comparison/package.json"}, "properties": {"repobilityId": "dc6812e3c71cc66c", "scanner": "scanner-primary", "fingerprint": "80be565d4d984859", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "benchmark/compositor-comparison/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-63a8911ac52c2588", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: examples/material-ui-nextjs-ts-v4-v5-migration/package.json"}, "properties": {"repobilityId": "40b4d88d1fda95a9", "scanner": "scanner-primary", "fingerprint": "63a8911ac52c2588", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/material-ui-nextjs-ts-v4-v5-migration/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-85fafb8e013677b1", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: examples/material-ui-nextjs-pages-router-ts/package.json"}, "properties": {"repobilityId": "7248ea0a1b5514ea", "scanner": "scanner-primary", "fingerprint": "85fafb8e013677b1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/material-ui-nextjs-pages-router-ts/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2a781b860632b1f0", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: examples/base-ui-vite-tailwind-ts/package.json"}, "properties": {"repobilityId": "52306d5949c7e63b", "scanner": "scanner-primary", "fingerprint": "2a781b860632b1f0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/base-ui-vite-tailwind-ts/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-afcd3e7e3126bf33", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: examples/material-ui-cra-styled-components-ts/package.json"}, "properties": {"repobilityId": "6b33af0b20f4c4ae", "scanner": "scanner-primary", "fingerprint": "afcd3e7e3126bf33", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/material-ui-cra-styled-components-ts/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9835be513f2444a5", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: examples/material-ui-nextjs-ts/package.json"}, "properties": {"repobilityId": "00bafbeb15fcd3b8", "scanner": "scanner-primary", "fingerprint": "9835be513f2444a5", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/material-ui-nextjs-ts/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-dc2d56efc990be2c", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: examples/material-ui-remix-ts/package.json"}, "properties": {"repobilityId": "322578ade31d57c8", "scanner": "scanner-primary", "fingerprint": "dc2d56efc990be2c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/material-ui-remix-ts/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9bc28eec5728a92f", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: examples/joy-ui-nextjs-ts/package.json"}, "properties": {"repobilityId": "8a4f957f217ca87b", "scanner": "scanner-primary", "fingerprint": "9bc28eec5728a92f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/joy-ui-nextjs-ts/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-95ca63316b112bf8", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: examples/material-ui-cra-tailwind-ts/package.json"}, "properties": {"repobilityId": "838d7b286ceac050", "scanner": "scanner-primary", "fingerprint": "95ca63316b112bf8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/material-ui-cra-tailwind-ts/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-da300a8b043393e6", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: examples/material-ui-vite-ts/package.json"}, "properties": {"repobilityId": "857a76fae3b6a4c9", "scanner": "scanner-primary", "fingerprint": "da300a8b043393e6", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/material-ui-vite-ts/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-f9f533855cb7d4ef", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: examples/base-ui-nextjs-tailwind-ts/package.json"}, "properties": {"repobilityId": "29b7b9bc04e69068", "scanner": "scanner-primary", "fingerprint": "f9f533855cb7d4ef", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/base-ui-nextjs-tailwind-ts/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-5a3268b5325488c3", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: examples/joy-ui-cra-ts/package.json"}, "properties": {"repobilityId": "88f6f136dac285ed", "scanner": "scanner-primary", "fingerprint": "5a3268b5325488c3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/joy-ui-cra-ts/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3a5a11a32277e0e1", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: examples/material-ui-vite/package.json"}, "properties": {"repobilityId": "8ffc6037bb44b2c7", "scanner": "scanner-primary", "fingerprint": "3a5a11a32277e0e1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/material-ui-vite/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-68c7766e2bec99b3", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: examples/material-ui-gatsby/package.json"}, "properties": {"repobilityId": "5f1f1b73ab0fa1e4", "scanner": "scanner-primary", "fingerprint": "68c7766e2bec99b3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/material-ui-gatsby/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-48b2dd600e38e88d", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: examples/material-ui-nextjs/package.json"}, "properties": {"repobilityId": "778533e2e861eb41", "scanner": "scanner-primary", "fingerprint": "48b2dd600e38e88d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/material-ui-nextjs/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-701b945b0daa9996", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: examples/base-ui-cra-ts/package.json"}, "properties": {"repobilityId": "5bd89b6246db0d3a", "scanner": "scanner-primary", "fingerprint": "701b945b0daa9996", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/base-ui-cra-ts/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-6ead080412ba5a6c", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: examples/material-ui-express-ssr/package.json"}, "properties": {"repobilityId": "f4100621922caecf", "scanner": "scanner-primary", "fingerprint": "6ead080412ba5a6c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/material-ui-express-ssr/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-af81e82a5742ab3a", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: examples/joy-ui-vite-ts/package.json"}, "properties": {"repobilityId": "54d09edf4e5b1836", "scanner": "scanner-primary", "fingerprint": "af81e82a5742ab3a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/joy-ui-vite-ts/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2650bec301d5921b", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: examples/material-ui-preact/package.json"}, "properties": {"repobilityId": "6502d95e091232bb", "scanner": "scanner-primary", "fingerprint": "2650bec301d5921b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/material-ui-preact/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-fb79094d8133a0f8", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: examples/base-ui-vite-tailwind/package.json"}, "properties": {"repobilityId": "95099f6e1126339a", "scanner": "scanner-primary", "fingerprint": "fb79094d8133a0f8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/base-ui-vite-tailwind/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-141642d873c3f125", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: examples/material-ui-cra-ts/package.json"}, "properties": {"repobilityId": "092d92e728c73084", "scanner": "scanner-primary", "fingerprint": "141642d873c3f125", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/material-ui-cra-ts/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-9a5965d99808bb5f", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: examples/material-ui-cra-styled-components/package.json"}, "properties": {"repobilityId": "ca9f5db73353a70b", "scanner": "scanner-primary", "fingerprint": "9a5965d99808bb5f", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/material-ui-cra-styled-components/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3e79565c7be7300b", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: examples/base-ui-cra/package.json"}, "properties": {"repobilityId": "15f442b9b819ebf5", "scanner": "scanner-primary", "fingerprint": "3e79565c7be7300b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/base-ui-cra/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-14c130a7e66505ef", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: examples/material-ui-cra/package.json"}, "properties": {"repobilityId": "aa4e8b3ca38f6bac", "scanner": "scanner-primary", "fingerprint": "14c130a7e66505ef", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/material-ui-cra/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3e4ddfe595c2de7c", "level": "note", "message": {"text": "Node manifest has dependencies but no lockfile: examples/material-ui-nextjs-pages-router/package.json"}, "properties": {"repobilityId": "0cb55459b8fd654f", "scanner": "scanner-primary", "fingerprint": "3e4ddfe595c2de7c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["dependency", "lockfile", "reproducibility", "generated-repo-pattern"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "examples/material-ui-nextjs-pages-router/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "3be52f849f898b4f", "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": "a2f1aeecba5ab265", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-9d79c4077342a7d0", "level": "warning", "message": {"text": "Runtime service client appears to use placeholder configuration"}, "properties": {"repobilityId": "3c42249eea788140", "scanner": "scanner-primary", "fingerprint": "9d79c4077342a7d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "runtime-config", "service-client", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "503e39bcd352f826", "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": "ce698d6b2a7b193e", "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": "9e571448e8a46a67", "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": "4ffae4d7acec16da", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-e725d2ab884fbd49", "level": "note", "message": {"text": "Multiple root agent instruction files without precedence"}, "properties": {"repobilityId": "1953db6c89508d22", "scanner": "scanner-primary", "fingerprint": "e725d2ab884fbd49", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["agent-instructions", "governance"]}}, {"ruleId": "scanner-2d2ea5ef382a895d", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages-internal/proptypes/typescript-to-proptypes/test/typescript-to-proptypes.test.ts:50"}, "properties": {"repobilityId": "92650538ec565be3", "scanner": "scanner-primary", "fingerprint": "2d2ea5ef382a895d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4f0a0ea4699ce100", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages-internal/proptypes/typescript-to-proptypes/src/getPropTypesFromFile.ts:361"}, "properties": {"repobilityId": "5dca500a2406c05c", "scanner": "scanner-primary", "fingerprint": "4f0a0ea4699ce100", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-555ec748f43e8ca8", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages-internal/proptypes/typescript-to-proptypes/src/injectPropTypesInFile.ts:208"}, "properties": {"repobilityId": "decdd35c2136337e", "scanner": "scanner-primary", "fingerprint": "555ec748f43e8ca8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-61eeda0a774d0ef1", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages-internal/test-utils/src/fireDiscreteEvent.ts:40"}, "properties": {"repobilityId": "9f950d81f4a2ff5e", "scanner": "scanner-primary", "fingerprint": "61eeda0a774d0ef1", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-64c672bbe6333a7d", "level": "note", "message": {"text": "Legacy-named symbol `isDeprecated` in packages-internal/api-docs-builder/utils/parseSlotsAndClasses.ts:12"}, "properties": {"repobilityId": "93f9fd23a4718ed9", "scanner": "scanner-primary", "fingerprint": "64c672bbe6333a7d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3a57b96b7e097d03", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages-internal/api-docs-builder/ApiBuilders/HookApiBuilder.ts:576"}, "properties": {"repobilityId": "95a20b9add114c9a", "scanner": "scanner-primary", "fingerprint": "3a57b96b7e097d03", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-9a03231c26741f93", "level": "note", "message": {"text": "Legacy-named symbol `isDeprecated` in packages-internal/docs-utils/src/ComponentClassDefinition.ts:6"}, "properties": {"repobilityId": "e0e59509d33ca247", "scanner": "scanner-primary", "fingerprint": "9a03231c26741f93", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-f016c749b2d78d63", "level": "none", "message": {"text": "Commented-code block (5 lines) in projects/media-pairing-poster-detection/build-state.mjs:2"}, "properties": {"repobilityId": "cedd51705d9467e8", "scanner": "scanner-primary", "fingerprint": "f016c749b2d78d63", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5a23a31b78a92e0c", "level": "none", "message": {"text": "Commented-code block (6 lines) in projects/media-pairing-poster-detection/state.mjs:5"}, "properties": {"repobilityId": "e0f379bcde126b0f", "scanner": "scanner-primary", "fingerprint": "5a23a31b78a92e0c", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-33ce41d70107eba5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/pages/_app.js:126"}, "properties": {"repobilityId": "10a73a6f9e4a6d58", "scanner": "scanner-primary", "fingerprint": "33ce41d70107eba5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-517ea5c22920f148", "level": "none", "message": {"text": "Commented-code block (5 lines) in docs/pages/index.tsx:51"}, "properties": {"repobilityId": "4b56ee719403d014", "scanner": "scanner-primary", "fingerprint": "517ea5c22920f148", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-1ed450767ad1bf21", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/pages/products/feedback.tsx:94"}, "properties": {"repobilityId": "d1d9db0568e24c3c", "scanner": "scanner-primary", "fingerprint": "1ed450767ad1bf21", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f97c7d604b25436d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/pages/consulting/login.tsx:286"}, "properties": {"repobilityId": "8e0542681a699cce", "scanner": "scanner-primary", "fingerprint": "f97c7d604b25436d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-f67e8424ef9d9bd4", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/pages/experiments/base/components-gallery.tsx:188"}, "properties": {"repobilityId": "ff063bf1d4e50038", "scanner": "scanner-primary", "fingerprint": "f67e8424ef9d9bd4", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-447232314c95a8d5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/src/products.tsx:1320"}, "properties": {"repobilityId": "304ea92792094f0d", "scanner": "scanner-primary", "fingerprint": "447232314c95a8d5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6e29af3fe02a0496", "level": "none", "message": {"text": "Commented-code block (5 lines) in docs/src/modules/auditBot/llmClient.ts:27"}, "properties": {"repobilityId": "24f4790b7a12eda8", "scanner": "scanner-primary", "fingerprint": "6e29af3fe02a0496", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-edd0db3cdfa85c19", "level": "none", "message": {"text": "Commented-code block (5 lines) in docs/src/modules/auditBot/tools.ts:51"}, "properties": {"repobilityId": "d36093a245d10dff", "scanner": "scanner-primary", "fingerprint": "edd0db3cdfa85c19", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-600dc810331f6c79", "level": "none", "message": {"text": "Commented-code block (6 lines) in docs/src/modules/utils/babel-plugin-jsx-preview.js:45"}, "properties": {"repobilityId": "eb9fbabf264b6fb8", "scanner": "scanner-primary", "fingerprint": "600dc810331f6c79", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-fc631056c8b85c55", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/src/modules/components/Notifications.js:24"}, "properties": {"repobilityId": "d1d22c80ca4da848", "scanner": "scanner-primary", "fingerprint": "fc631056c8b85c55", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-0aeef742a62275b0", "level": "none", "message": {"text": "Commented-code block (7 lines) in docs/src/modules/components/DemoSandbox.js:107"}, "properties": {"repobilityId": "7e7e4e0c3357f5cb", "scanner": "scanner-primary", "fingerprint": "0aeef742a62275b0", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d67d651c9d1d2b5c", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/src/modules/components/BlogEditorForm.tsx:183"}, "properties": {"repobilityId": "688dbd97d899744b", "scanner": "scanner-primary", "fingerprint": "d67d651c9d1d2b5c", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-980ef73beae2bc9d", "level": "note", "message": {"text": "Legacy-named symbol `isDeprecated` in docs/src/modules/components/ApiPage/table/ClassesTable.tsx:80"}, "properties": {"repobilityId": "426f08b554bb6ff1", "scanner": "scanner-primary", "fingerprint": "980ef73beae2bc9d", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-48fd15594dc715a3", "level": "note", "message": {"text": "Legacy-named symbol `isDeprecated` in docs/src/modules/components/ApiPage/table/PropertiesTable.tsx:152"}, "properties": {"repobilityId": "dcb68e346aea5960", "scanner": "scanner-primary", "fingerprint": "48fd15594dc715a3", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-1ddcb433cadb89de", "level": "note", "message": {"text": "Legacy-named symbol `isDeprecated` in docs/src/modules/components/ApiPage/list/ClassesList.tsx:76"}, "properties": {"repobilityId": "410581e127f4a9cc", "scanner": "scanner-primary", "fingerprint": "1ddcb433cadb89de", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8bda0d5cd850b70a", "level": "note", "message": {"text": "Legacy-named symbol `isDeprecated` in docs/src/modules/components/ApiPage/list/PropertiesList.tsx:139"}, "properties": {"repobilityId": "f88a4bf2bffc871f", "scanner": "scanner-primary", "fingerprint": "8bda0d5cd850b70a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-0eb588acf97a05ac", "level": "note", "message": {"text": "Legacy-named symbol `isDeprecated` in docs/src/modules/components/ApiPage/sections/PropertiesSection.js:65"}, "properties": {"repobilityId": "9acaeef64cdf22f0", "scanner": "scanner-primary", "fingerprint": "0eb588acf97a05ac", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-186d70e6ad32b94d", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/src/modules/chat/telegramTransport.ts:124"}, "properties": {"repobilityId": "790341e0e1849ce4", "scanner": "scanner-primary", "fingerprint": "186d70e6ad32b94d", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-985845c9928557d9", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/src/modules/license/StripeEmbeddedCheckout.tsx:53"}, "properties": {"repobilityId": "bca8b86f2b08bc96", "scanner": "scanner-primary", "fingerprint": "985845c9928557d9", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6fcc149b73eaf5d0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 docs/src/layouts/AppHeader.tsx:111"}, "properties": {"repobilityId": "8ab16df89c1ad505", "scanner": "scanner-primary", "fingerprint": "6fcc149b73eaf5d0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-dbe35ba766a5ea8b", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/npmRelease.mjs:191"}, "properties": {"repobilityId": "1a72ab12eef5898a", "scanner": "scanner-primary", "fingerprint": "dbe35ba766a5ea8b", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-ec4ed6d75bd6a5ba", "level": "none", "message": {"text": "Commented-code block (6 lines) in scripts/useReactVersion.mjs:82"}, "properties": {"repobilityId": "70304b2c4d22db05", "scanner": "scanner-primary", "fingerprint": "ec4ed6d75bd6a5ba", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-644e0627faca1ea0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 scripts/sizeSnapshot/loadComparison.js:25"}, "properties": {"repobilityId": "c4b0a3f4934801a1", "scanner": "scanner-primary", "fingerprint": "644e0627faca1ea0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-37fd6245555c8dba", "level": "note", "message": {"text": "Legacy-named symbol `saveFileDeprecated` in packages/sui-media/src/WebFile/WebFile.ts:12"}, "properties": {"repobilityId": "c025298e68d29d2b", "scanner": "scanner-primary", "fingerprint": "37fd6245555c8dba", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-59df71798cdd0991", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-media/src/WebFile/WebFile.ts:236"}, "properties": {"repobilityId": "82b88316dc099b3f", "scanner": "scanner-primary", "fingerprint": "59df71798cdd0991", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-6f175d5221bff913", "level": "none", "message": {"text": "Commented-code block (13 lines) in packages/sui-media/src/components/MediaCard/MediaCard.tsx:326"}, "properties": {"repobilityId": "5736c0f17127ea2a", "scanner": "scanner-primary", "fingerprint": "6f175d5221bff913", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b1238f219ff88e7", "level": "note", "message": {"text": "Legacy-named symbol `saveFileDeprecated` in packages/sui-media/src/FileSystemApi/FileSystemApi.ts:62"}, "properties": {"repobilityId": "bc3ff68935cd950a", "scanner": "scanner-primary", "fingerprint": "4b1238f219ff88e7", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-da7a44b3a42d6927", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-media/src/hooks/useMediaGallery.ts:36"}, "properties": {"repobilityId": "ed1a5062f8e1831e", "scanner": "scanner-primary", "fingerprint": "da7a44b3a42d6927", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-61ce81bb675e6386", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-media/src/server/next-handler.ts:81"}, "properties": {"repobilityId": "0d42e0e882c536d1", "scanner": "scanner-primary", "fingerprint": "61ce81bb675e6386", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-537862593812d3c1", "level": "note", "message": {"text": "Legacy-named symbol `saveFileDeprecated` in packages/sui-media/src/MediaFile/MediaFile.ts:26"}, "properties": {"repobilityId": "70176dfd30a30bc4", "scanner": "scanner-primary", "fingerprint": "537862593812d3c1", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-8ba9007ee090a106", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/sui-media/src/App/AppFile/AppFile.ts:202"}, "properties": {"repobilityId": "9005a52b693807f3", "scanner": "scanner-primary", "fingerprint": "8ba9007ee090a106", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8848debfdfb9a962", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-media/src/App/AppFile/AppFile.ts:88"}, "properties": {"repobilityId": "95ddf1c4418ba8b3", "scanner": "scanner-primary", "fingerprint": "8848debfdfb9a962", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-40b0d41b8bf2f493", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-github/src/apiHandlers/githubApi.ts:34"}, "properties": {"repobilityId": "f395e238608769fb", "scanner": "scanner-primary", "fingerprint": "40b0d41b8bf2f493", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-873743d95d4c7e18", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-github/src/apiHandlers/getGithubContributions.ts:117"}, "properties": {"repobilityId": "5500e7259394e9e2", "scanner": "scanner-primary", "fingerprint": "873743d95d4c7e18", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-dbdf5cb099f08af6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-github/src/apiHandlers/getPullRequestDetails.ts:41"}, "properties": {"repobilityId": "d5f9bc975e55bd13", "scanner": "scanner-primary", "fingerprint": "dbdf5cb099f08af6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-42cef079d6b488d7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-github/src/apiHandlers/getGithubEvents.ts:64"}, "properties": {"repobilityId": "fd7b0d9336d90b30", "scanner": "scanner-primary", "fingerprint": "42cef079d6b488d7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-00bcab1539e218e2", "level": "none", "message": {"text": "Commented-code block (9 lines) in packages/sui-github/src/GithubEvents/GithubEvents.tsx:324"}, "properties": {"repobilityId": "3ad6571fd0b0cb9c", "scanner": "scanner-primary", "fingerprint": "00bcab1539e218e2", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4d6168ccde0d19b7", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-github/src/GithubEvents/GithubEvents.tsx:220"}, "properties": {"repobilityId": "f5eb33f367246aa3", "scanner": "scanner-primary", "fingerprint": "4d6168ccde0d19b7", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-412d8ac38102bdc0", "level": "note", "message": {"text": "Legacy-named symbol `projects_v2` in packages/sui-github/src/GithubEvents/EventTypes/ProjectsV2Event.tsx:17"}, "properties": {"repobilityId": "ed70fb73d1efcd35", "scanner": "scanner-primary", "fingerprint": "412d8ac38102bdc0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6d57a108aec1f0cb", "level": "none", "message": {"text": "Commented-code block (19 lines) in packages/sui-github/src/GithubEvents/EventTypes/PullRequest/PullRequestEvent.tsx:329"}, "properties": {"repobilityId": "8da761c724394559", "scanner": "scanner-primary", "fingerprint": "6d57a108aec1f0cb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8c019bd4dc0aae61", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-github/src/GithubEvents/EventTypes/PullRequest/PullRequestEvent.tsx:21"}, "properties": {"repobilityId": "2078bb9fe8a69f28", "scanner": "scanner-primary", "fingerprint": "8c019bd4dc0aae61", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-76720538d22f603f", "level": "none", "message": {"text": "Commented-code block (14 lines) in packages/sui-github/src/GithubEvents/EventTypes/PullRequest/FileChanges.tsx:14"}, "properties": {"repobilityId": "a7027fa11652fb33", "scanner": "scanner-primary", "fingerprint": "76720538d22f603f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bc77e93360dd065e", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/sui-editor/src/EditorView/EditorView.tsx:43"}, "properties": {"repobilityId": "026c03ac1887d076", "scanner": "scanner-primary", "fingerprint": "bc77e93360dd065e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d111689195fcf200", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/sui-editor/src/internals/useEditor/useEditorModels.ts:17"}, "properties": {"repobilityId": "de68bf6cc5c7e2ba", "scanner": "scanner-primary", "fingerprint": "d111689195fcf200", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0101f80698c3234d", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/sui-editor/src/DetailView/ControlledColor.tsx:74"}, "properties": {"repobilityId": "d162a682903ea18d", "scanner": "scanner-primary", "fingerprint": "0101f80698c3234d", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-ea2248e03af0e14a", "level": "note", "message": {"text": "Legacy-named symbol `FileExplorerLegacy` in packages/sui-file-explorer/src/index.ts:19"}, "properties": {"repobilityId": "0c3497367a45b1ac", "scanner": "scanner-primary", "fingerprint": "ea2248e03af0e14a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-76904c6ba9e648ff", "level": "note", "message": {"text": "Legacy-named symbol `FileExplorerLegacy` in packages/sui-file-explorer/src/FileExplorer/FileExplorerWithFlags.tsx:5"}, "properties": {"repobilityId": "717b001c7a8680e6", "scanner": "scanner-primary", "fingerprint": "76904c6ba9e648ff", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-6f0f6d7fc31b8ad0", "level": "note", "message": {"text": "Legacy-named symbol `FileExplorerLegacy` in packages/sui-file-explorer/src/FileExplorer/FileExplorerLegacy.tsx:70"}, "properties": {"repobilityId": "e585f679cce8af2c", "scanner": "scanner-primary", "fingerprint": "6f0f6d7fc31b8ad0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-fd74882b754beb5a", "level": "note", "message": {"text": "Legacy-named symbol `FileExplorerLegacy` in packages/sui-file-explorer/src/FileExplorer/index.ts:2"}, "properties": {"repobilityId": "0146e0d33ef9bb32", "scanner": "scanner-primary", "fingerprint": "fd74882b754beb5a", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-3ffbcb0fbc64918b", "level": "note", "message": {"text": "Legacy-named symbol `FileExplorerLegacy` in packages/sui-file-explorer/src/FileExplorer/FileExplorer.tsx:6"}, "properties": {"repobilityId": "dbbb0d496d43b23e", "scanner": "scanner-primary", "fingerprint": "3ffbcb0fbc64918b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "legacy-marker", "dead-code"]}}, {"ruleId": "scanner-66fdbccfbf2e9c8a", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/sui-file-explorer/src/internals/plugins/useFileExplorerDnd/muiXDndAdapters.ts:100"}, "properties": {"repobilityId": "6f06a82063522944", "scanner": "scanner-primary", "fingerprint": "66fdbccfbf2e9c8a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3cb65b1abd906d60", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/sui-timeline/src/Timeline/Timeline.tsx:188"}, "properties": {"repobilityId": "ae07916685d784a5", "scanner": "scanner-primary", "fingerprint": "3cb65b1abd906d60", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-445d1d989f0aa437", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/sui-media-api/scripts/init-db.ts:69"}, "properties": {"repobilityId": "b634a77fd7e2351b", "scanner": "scanner-primary", "fingerprint": "445d1d989f0aa437", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-543885ea0d2117d5", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/sui-docs/src/components/DemoSandbox.tsx:117"}, "properties": {"repobilityId": "273d20ac5b383636", "scanner": "scanner-primary", "fingerprint": "543885ea0d2117d5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a5baa8829d04b1d1", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/sui-common/src/LocalDb/VideoDb.tsx:19"}, "properties": {"repobilityId": "152393e5559670fe", "scanner": "scanner-primary", "fingerprint": "a5baa8829d04b1d1", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-1fa265907f90048a", "level": "none", "message": {"text": "Commented-code block (5 lines) in examples/material-ui-cra-styled-components/src/serviceWorker.js:4"}, "properties": {"repobilityId": "18bddf0528306dd6", "scanner": "scanner-primary", "fingerprint": "1fa265907f90048a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-050eccbfadc86871", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 examples/material-ui-cra-styled-components/src/serviceWorker.js:103"}, "properties": {"repobilityId": "7d55ea63dee7221a", "scanner": "scanner-primary", "fingerprint": "050eccbfadc86871", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-df38278981a4454a", "level": "none", "message": {"text": "Commented-code block (14 lines) in any/file/using/Grid.tsx:4"}, "properties": {"repobilityId": "c7b167db338e1ce3", "scanner": "scanner-primary", "fingerprint": "df38278981a4454a", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5ac5c14a5adf5371", "level": "none", "message": {"text": "Commented-code block (6 lines) in any/file/using/AutoSizer.tsx:4"}, "properties": {"repobilityId": "6b9d8d3296b5df2c", "scanner": "scanner-primary", "fingerprint": "5ac5c14a5adf5371", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c39d22c0a61fa8d6", "level": "none", "message": {"text": "Commented-code block (8 lines) in any/file/using/Table.tsx:4"}, "properties": {"repobilityId": "4eee137b53a21ab3", "scanner": "scanner-primary", "fingerprint": "c39d22c0a61fa8d6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-aee1acc4fac708df", "level": "none", "message": {"text": "Commented-code block (12 lines) in any/file/using/List.tsx:4"}, "properties": {"repobilityId": "05050f309dd48bab", "scanner": "scanner-primary", "fingerprint": "aee1acc4fac708df", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-491d5d55a316d7f3", "level": "none", "message": {"text": "Commented-code block (13 lines) in any/file/using/virtualized/List.tsx:4"}, "properties": {"repobilityId": "45ba91805d823c2a", "scanner": "scanner-primary", "fingerprint": "491d5d55a316d7f3", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2e0ac1bc93db6d07", "level": "none", "message": {"text": "Commented-code block (9 lines) in infra/site.ts:127"}, "properties": {"repobilityId": "075bdb55c7ee2b66", "scanner": "scanner-primary", "fingerprint": "2e0ac1bc93db6d07", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4b235250166de838", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/functions/deploy-succeeded.js:20"}, "properties": {"repobilityId": "76cfeadcc9a17af8", "scanner": "scanner-primary", "fingerprint": "4b235250166de838", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-7ff671545f021ad3", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 netlify/edge-functions/og-image.tsx:234"}, "properties": {"repobilityId": "e03de21ce4f32217", "scanner": "scanner-primary", "fingerprint": "7ff671545f021ad3", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-02239bc53ac450e8", "level": "note", "message": {"text": "107 env vars used in code but missing from .env.example"}, "properties": {"repobilityId": "a99555aef34f19c1", "scanner": "scanner-primary", "fingerprint": "02239bc53ac450e8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["integrity", "config-drift"]}}, {"ruleId": "scanner-5fb2e799a6d96fa9", "level": "error", "message": {"text": "Dangling fetch: GET https://fonts.google.com/metadata/icons (docs/scripts/updateIconSynonyms.js:19)"}, "properties": {"repobilityId": "1c2f9d95d5dfe9f7", "scanner": "scanner-primary", "fingerprint": "5fb2e799a6d96fa9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f301edec82f4ffce", "level": "error", "message": {"text": "Dangling fetch: GET /sw.js (docs/pages/_app.js:126)"}, "properties": {"repobilityId": "21639def69f41a6c", "scanner": "scanner-primary", "fingerprint": "f301edec82f4ffce", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-57f60c80daac47dc", "level": "error", "message": {"text": "Dangling fetch: GET https://api.github.com/repos/stoked-ui/sui/branches (docs/pages/versions.js:29)"}, "properties": {"repobilityId": "bb1bc0feb28e7903", "scanner": "scanner-primary", "fingerprint": "57f60c80daac47dc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-46724dc97643ee21", "level": "error", "message": {"text": "Dangling fetch: GET https://srv.buysellads.com/ads/CE7DC23W.json (docs/src/modules/components/AdCarbon.js:73)"}, "properties": {"repobilityId": "373a26d17cc4b394", "scanner": "scanner-primary", "fingerprint": "46724dc97643ee21", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5aae214fbcba90a9", "level": "error", "message": {"text": "Dangling fetch: GET /static/error-codes.json (docs/src/pages/production-error/ErrorDecoder.js:50)"}, "properties": {"repobilityId": "f11f7ce2cc55fcab", "scanner": "scanner-primary", "fingerprint": "5aae214fbcba90a9", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-2324d2c51d002486", "level": "error", "message": {"text": "Dangling fetch: GET https://api.github.com/repos/${repo}/actions/workflows/${encodeURIComponent(workflow)}/runs?per_page=20&event=${encodeURIComponent(event)}&status=completed (scripts/npmRelease.mjs:191)"}, "properties": {"repobilityId": "3799046910b3f5f0", "scanner": "scanner-primary", "fingerprint": "2324d2c51d002486", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-38ed4510fa8b88b4", "level": "error", "message": {"text": "Dangling fetch: POST https://circleci.com/api/v2/project/gh/${repo[1]}/pipeline (netlify/functions/deploy-succeeded.js:20)"}, "properties": {"repobilityId": "2f4b0c23bf618a3d", "scanner": "scanner-primary", "fingerprint": "38ed4510fa8b88b4", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-145319090ef27d0d", "level": "error", "message": {"text": "Dangling fetch: POST https://graph.facebook.com/v21.0/${phoneNumberId}/messages (docs/pages/api/chat/send.ts:57)"}, "properties": {"repobilityId": "ebeb5714714737de", "scanner": "scanner-primary", "fingerprint": "145319090ef27d0d", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5bfb1ba68e84c769", "level": "error", "message": {"text": "Dangling fetch: POST /api/auth/cli/authorize (docs/pages/cli/auth.tsx:66)"}, "properties": {"repobilityId": "a42af629cceb5351", "scanner": "scanner-primary", "fingerprint": "5bfb1ba68e84c769", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1b2315ceea97b3be", "level": "error", "message": {"text": "Dangling fetch: GET /static/components-gallery/base-theme.css (docs/pages/experiments/base/components-gallery.tsx:188)"}, "properties": {"repobilityId": "2104f34dbe31a402", "scanner": "scanner-primary", "fingerprint": "1b2315ceea97b3be", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-46338983d84b02f2", "level": "error", "message": {"text": "Dangling fetch: POST https://api.telegram.org/bot${cfg.botToken}/sendMessage (docs/src/modules/auditBot/notifyTelegram.ts:126)"}, "properties": {"repobilityId": "dcdf91b4324517fb", "scanner": "scanner-primary", "fingerprint": "46338983d84b02f2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-1987f770e717caa2", "level": "error", "message": {"text": "Dangling fetch: POST /api/audit/turn (docs/src/modules/auditBot/channels/web/components/AuditBot.tsx:91)"}, "properties": {"repobilityId": "b4afae984c26a666", "scanner": "scanner-primary", "fingerprint": "1987f770e717caa2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-f03355b787123abc", "level": "error", "message": {"text": "Dangling fetch: POST /api/audit/save-lead (docs/src/modules/auditBot/channels/web/components/AuditBot.tsx:147)"}, "properties": {"repobilityId": "653abde2cb8e3dba", "scanner": "scanner-primary", "fingerprint": "f03355b787123abc", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-621e1780020fb9b2", "level": "error", "message": {"text": "Dangling fetch: POST https://api.telegram.org/bot${config.botToken}/sendMessage (docs/src/modules/chat/telegramTransport.ts:124)"}, "properties": {"repobilityId": "698496d21adc089c", "scanner": "scanner-primary", "fingerprint": "621e1780020fb9b2", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-5b4b3d1193fade37", "level": "error", "message": {"text": "Dangling fetch: GET /api/licenses/checkout-complete?session_id=${encodeURIComponent(sid)} (docs/src/modules/license/CheckoutSuccess.tsx:40)"}, "properties": {"repobilityId": "e922d6ede43ecffe", "scanner": "scanner-primary", "fingerprint": "5b4b3d1193fade37", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8bd2cf4e06d50b21", "level": "error", "message": {"text": "Dangling fetch: POST /api/licenses/checkout (docs/src/modules/license/StripeEmbeddedCheckout.tsx:53)"}, "properties": {"repobilityId": "72b3c47ad6494b38", "scanner": "scanner-primary", "fingerprint": "8bd2cf4e06d50b21", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-aed2a25261507f9e", "level": "error", "message": {"text": "Dangling fetch: POST https://api.github.com/graphql (packages/sui-github/src/apiHandlers/getGithubContributions.ts:117)"}, "properties": {"repobilityId": "3db8f22a5638cc29", "scanner": "scanner-primary", "fingerprint": "aed2a25261507f9e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-c25493b20933567e", "level": "error", "message": {"text": "Dangling fetch: GET https://fonts.cdnfonts.com/s/15449/IBMPlexSans-SemiBold.woff (netlify/edge-functions/og-image.tsx:234)"}, "properties": {"repobilityId": "3b92cda294ee5789", "scanner": "scanner-primary", "fingerprint": "c25493b20933567e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-731b80d979cf2b65", "level": "error", "message": {"text": "Dangling fetch: GET https://fonts.cdnfonts.com/s/85793/GeneralSans-Semibold.woff (netlify/edge-functions/og-image.tsx:242)"}, "properties": {"repobilityId": "0ab9830a1c22c3b5", "scanner": "scanner-primary", "fingerprint": "731b80d979cf2b65", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-cbe97176f6697e2e", "level": "error", "message": {"text": "Dangling fetch: GET https://fonts.cdnfonts.com/s/85793/GeneralSans-Bold.woff (netlify/edge-functions/og-image.tsx:250)"}, "properties": {"repobilityId": "f492f4b8103b00c8", "scanner": "scanner-primary", "fingerprint": "cbe97176f6697e2e", "layer": "api", "severity": "high", "confidence": 1.0, "tags": ["wiring", "dangling-fetch", "fetch"]}}, {"ruleId": "scanner-8f95d7ec49f00406", "level": "note", "message": {"text": "Unused endpoint: POST /feedback"}, "properties": {"repobilityId": "e9bd8cd48909a195", "scanner": "scanner-primary", "fingerprint": "8f95d7ec49f00406", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-69601745d960377a", "level": "note", "message": {"text": "Unused endpoint: GET /feedback/{id}"}, "properties": {"repobilityId": "ebd85c78d2dbd98a", "scanner": "scanner-primary", "fingerprint": "69601745d960377a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5baa8971ebe192a1", "level": "note", "message": {"text": "Unused endpoint: GET /"}, "properties": {"repobilityId": "6ff4178b0cf8a8a9", "scanner": "scanner-primary", "fingerprint": "5baa8971ebe192a1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-dbe4c12d322a14da", "level": "note", "message": {"text": "Unused endpoint: GET /spacing"}, "properties": {"repobilityId": "8462fc4f1fd8a5db", "scanner": "scanner-primary", "fingerprint": "dbe4c12d322a14da", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7516fbae36f0b54d", "level": "note", "message": {"text": "Unused endpoint: GET /palette"}, "properties": {"repobilityId": "637daccff61a2c71", "scanner": "scanner-primary", "fingerprint": "7516fbae36f0b54d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-45c45555041fa74b", "level": "note", "message": {"text": "Unused endpoint: GET /system"}, "properties": {"repobilityId": "9215ff3a9991b5bd", "scanner": "scanner-primary", "fingerprint": "45c45555041fa74b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fade22e58a8b85af", "level": "note", "message": {"text": "Unused endpoint: GET /avatar"}, "properties": {"repobilityId": "3e08d196354aed0d", "scanner": "scanner-primary", "fingerprint": "fade22e58a8b85af", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-293637eec32dd5d5", "level": "note", "message": {"text": "Unused endpoint: GET /styled-function"}, "properties": {"repobilityId": "925d87e0d1c526d8", "scanner": "scanner-primary", "fingerprint": "293637eec32dd5d5", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-1e46d0846d3428e4", "level": "note", "message": {"text": "Unused endpoint: GET /box"}, "properties": {"repobilityId": "8fd9f3b97dbd5368", "scanner": "scanner-primary", "fingerprint": "1e46d0846d3428e4", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-594f1bddc20e54d3", "level": "note", "message": {"text": "Unused endpoint: USE /build"}, "properties": {"repobilityId": "531cd5e73e1ca022", "scanner": "scanner-primary", "fingerprint": "594f1bddc20e54d3", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8292c0931391749a", "level": "note", "message": {"text": "Unused endpoint: POST /auth/register"}, "properties": {"repobilityId": "0ef1cb47d0a08be0", "scanner": "scanner-primary", "fingerprint": "8292c0931391749a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8fdbacfe9430a6ed", "level": "note", "message": {"text": "Unused endpoint: POST /auth/login"}, "properties": {"repobilityId": "bf3f9223d3c3a709", "scanner": "scanner-primary", "fingerprint": "8fdbacfe9430a6ed", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-ac42422b23e45104", "level": "note", "message": {"text": "Unused endpoint: GET /auth/me"}, "properties": {"repobilityId": "da960a19f26ed38f", "scanner": "scanner-primary", "fingerprint": "ac42422b23e45104", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6685d40686d63393", "level": "note", "message": {"text": "Unused endpoint: GET /protected"}, "properties": {"repobilityId": "2b10617e856ae60e", "scanner": "scanner-primary", "fingerprint": "6685d40686d63393", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-8a2d53021b410f23", "level": "note", "message": {"text": "Unused endpoint: POST /articles"}, "properties": {"repobilityId": "18f60baf5298d75e", "scanner": "scanner-primary", "fingerprint": "8a2d53021b410f23", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-38539c06ecf79fff", "level": "note", "message": {"text": "Unused endpoint: GET /media/api/info"}, "properties": {"repobilityId": "66eecb17fc6a0720", "scanner": "scanner-primary", "fingerprint": "38539c06ecf79fff", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0fddb95595304584", "level": "note", "message": {"text": "Unused endpoint: DELETE /media/:id"}, "properties": {"repobilityId": "9056024863423e6e", "scanner": "scanner-primary", "fingerprint": "0fddb95595304584", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-0499b651a70b26a7", "level": "note", "message": {"text": "Unused endpoint: POST /media/:id/restore"}, "properties": {"repobilityId": "ab4356b703ca4cac", "scanner": "scanner-primary", "fingerprint": "0499b651a70b26a7", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-6fbff8e4a1af6ac1", "level": "note", "message": {"text": "Unused endpoint: POST /media/:id/extract-metadata"}, "properties": {"repobilityId": "34170ea3e731be09", "scanner": "scanner-primary", "fingerprint": "6fbff8e4a1af6ac1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-373991646e851ec1", "level": "note", "message": {"text": "Unused endpoint: POST /media/:id/generate-thumbnail"}, "properties": {"repobilityId": "5350bdf8d659f8bf", "scanner": "scanner-primary", "fingerprint": "373991646e851ec1", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7aa5ea332572e536", "level": "note", "message": {"text": "Unused endpoint: POST /uploads/initiate"}, "properties": {"repobilityId": "cf829ea9fe4d6524", "scanner": "scanner-primary", "fingerprint": "7aa5ea332572e536", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-97a422a92aab9a5a", "level": "note", "message": {"text": "Unused endpoint: GET /uploads/:sessionId/status"}, "properties": {"repobilityId": "7e8b509374148c67", "scanner": "scanner-primary", "fingerprint": "97a422a92aab9a5a", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-5ec6df8184b7a0e2", "level": "note", "message": {"text": "Unused endpoint: POST /uploads/:sessionId/sync"}, "properties": {"repobilityId": "b77712ae7ac557a0", "scanner": "scanner-primary", "fingerprint": "5ec6df8184b7a0e2", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-fd386261ec0f885e", "level": "note", "message": {"text": "Unused endpoint: POST /uploads/:sessionId/urls"}, "properties": {"repobilityId": "919b02526399375f", "scanner": "scanner-primary", "fingerprint": "fd386261ec0f885e", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-a38ee4d01cef160b", "level": "note", "message": {"text": "Unused endpoint: POST /uploads/:sessionId/parts/:partNumber/complete"}, "properties": {"repobilityId": "8ca80be1db69a695", "scanner": "scanner-primary", "fingerprint": "a38ee4d01cef160b", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-3c79acdd1a6d5950", "level": "note", "message": {"text": "Unused endpoint: POST /uploads/:sessionId/complete"}, "properties": {"repobilityId": "eb56600bd26ce0c7", "scanner": "scanner-primary", "fingerprint": "3c79acdd1a6d5950", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-77eac94cc29bdb8f", "level": "note", "message": {"text": "Unused endpoint: DELETE /uploads/:sessionId"}, "properties": {"repobilityId": "ff199ecae33e4433", "scanner": "scanner-primary", "fingerprint": "77eac94cc29bdb8f", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}, {"ruleId": "scanner-7e1889194a387e9d", "level": "note", "message": {"text": "Unused endpoint: GET /uploads/active"}, "properties": {"repobilityId": "d1b8728da1f85da0", "scanner": "scanner-primary", "fingerprint": "7e1889194a387e9d", "layer": "api", "severity": "low", "confidence": 1.0, "tags": ["wiring", "unused-endpoint"]}}]}]}