{"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-98d764c3bf481809", "name": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/verify-ios-network.ts:180", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/verify-ios-network.ts:180"}, "fullDescription": {"text": "Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable.\n\nWhy: Hygiene \u2014 easy to leak debug output.\nRule id: fq.console-leak"}, "properties": {"scanner": "scanner-primary", "layer": "frontend", "severity": "low", "confidence": 1.0}}, {"id": "scanner-58ada2b679cdc823", "name": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/setup-ios.ts:128", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/setup-ios.ts:128"}, "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-a7d5085d73952553", "name": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/doctor.ts:46", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/doctor.ts:46"}, "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-8b27245f27191c4c", "name": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/init.ts:152", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/init.ts:152"}, "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-208b7bde5e72c94b", "name": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/expect.ts:1517", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/expect.ts:1517"}, "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-9335898de1dd70d0", "name": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/setup-ios-device.ts:385", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/setup-ios-device.ts:385"}, "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-45b3973a012aa950", "name": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/cli.ts:91", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/cli.ts:91"}, "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-79cae27d32e2465a", "name": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/build-ios-agent.ts:223", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/build-ios-agent.ts:223"}, "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-3645867d5ecdfa21", "name": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/configure-ios-network.ts:171", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/configure-ios-network.ts:171"}, "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-d311de74379bc487", "name": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/ios-simulator-build.ts:141", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/ios-simulator-build.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-f7689ef22aa39bf1", "name": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/__tests__/trace-collector.test.ts:500", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/__tests__/trace-collector.test.ts:500"}, "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-ac5061cadd83ae67", "name": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/trace/show-trace-server.ts:108", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/trace/show-trace-server.ts:108"}, "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-3154a2a8f37bc677", "name": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/ui-mode/ui-server.ts:1475", "shortDescription": {"text": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/ui-mode/ui-server.ts:1475"}, "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-9398d91e4e2b067a", "name": "Insecure pattern 'node_child_process' in packages/tapsmith/scripts/fetch-bezels.mjs:27", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/scripts/fetch-bezels.mjs:27"}, "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-f06cb321fd2bb1a0", "name": "Insecure pattern 'node_child_process' in packages/tapsmith/src/ios-host-ip-check.ts:20", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/ios-host-ip-check.ts:20"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-77a292c4291d1907", "name": "Insecure pattern 'node_child_process' in packages/tapsmith/src/verify-ios-network.ts:25", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/verify-ios-network.ts:25"}, "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-f5540e81f4b1daf4", "name": "Insecure pattern 'node_child_process' in packages/tapsmith/src/setup-ios.ts:17", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/setup-ios.ts:17"}, "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-09b49a5e019e9e9c", "name": "Insecure pattern 'node_child_process' in packages/tapsmith/src/watch.ts:15", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/watch.ts:15"}, "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-70b5b74f1f8d731d", "name": "Insecure pattern 'node_child_process' in packages/tapsmith/src/ios-trust-probe.ts:29", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/ios-trust-probe.ts:29"}, "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-5ea4385536f6d4e8", "name": "Insecure pattern 'exec_used' in packages/tapsmith/src/emulator.ts:378", "shortDescription": {"text": "Insecure pattern 'exec_used' in packages/tapsmith/src/emulator.ts:378"}, "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-a79453a5f59351ba", "name": "Insecure pattern 'node_child_process' in packages/tapsmith/src/emulator.ts:11", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/emulator.ts:11"}, "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-98e8a5e83c4efc7d", "name": "Insecure pattern 'node_child_process' in packages/tapsmith/src/doctor.ts:11", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/doctor.ts:11"}, "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-298a95a106df4336", "name": "Insecure pattern 'node_child_process' in packages/tapsmith/src/webkit-inspector.ts:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/webkit-inspector.ts:13"}, "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-d5bd584daffd1281", "name": "Insecure pattern 'node_child_process' in packages/tapsmith/src/init.ts:1", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/init.ts: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-d1e70684d4fd6505", "name": "Possible secret in packages/tapsmith/src/setup-ios-device.ts", "shortDescription": {"text": "Possible secret in packages/tapsmith/src/setup-ios-device.ts"}, "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-37bc1cc448af5bdc", "name": "Insecure pattern 'node_child_process' in packages/tapsmith/src/setup-ios-device.ts:21", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/setup-ios-device.ts:21"}, "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-99a77afe01bd8629", "name": "Insecure pattern 'node_child_process' in packages/tapsmith/src/ios-devicectl.ts:17", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/ios-devicectl.ts:17"}, "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-9919e8e690fbb240", "name": "Insecure pattern 'node_child_process' in packages/tapsmith/src/ios-device-resolve.ts:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/ios-device-resolve.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-e39c92207fb33f25", "name": "Insecure pattern 'node_child_process' in packages/tapsmith/src/launch-progress.ts:3", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/launch-progress.ts:3"}, "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-d2fdf4a5d8ceddcf", "name": "Insecure pattern 'node_child_process' in packages/tapsmith/src/cli.ts:32", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/cli.ts:32"}, "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-14d573b72ec0f315", "name": "Insecure pattern 'node_child_process' in packages/tapsmith/src/build-ios-agent.ts:31", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/build-ios-agent.ts:31"}, "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-3bdb01a5e02f18b9", "name": "Insecure pattern 'node_child_process' in packages/tapsmith/src/configure-ios-network.ts:19", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/configure-ios-network.ts:19"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-8bc2fc9e58f0d8f0", "name": "Insecure pattern 'node_child_process' in packages/tapsmith/src/ios-simulator.ts:13", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/ios-simulator.ts:13"}, "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-ad35f1de76f9d612", "name": "Insecure pattern 'node_child_process' in packages/tapsmith/src/daemon-bin.ts:12", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/daemon-bin.ts:12"}, "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-1ce47c513618685d", "name": "Insecure pattern 'node_child_process' in packages/tapsmith/src/port-utils.ts:8", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/port-utils.ts:8"}, "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-4bb00672702fe18a", "name": "Insecure pattern 'node_child_process' in packages/tapsmith/src/dispatcher.ts:11", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/dispatcher.ts:11"}, "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-30da21c6205a047d", "name": "Insecure pattern 'node_child_process' in packages/tapsmith/src/ios-profile-expiry.ts:19", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/ios-profile-expiry.ts:19"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-b1f189f06e9ee4ae", "name": "Insecure pattern 'node_child_process' in packages/tapsmith/src/ios-simulator-build.ts:10", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/ios-simulator-build.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-fe09cb2025bbc0fc", "name": "Insecure pattern 'node_child_process' in packages/tapsmith/src/list-devices.ts:21", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/list-devices.ts:21"}, "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-960f0cdf3eb3daa6", "name": "Insecure pattern 'node_child_process' in packages/tapsmith/src/__tests__/dispatcher.test.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/__tests__/dispatcher.test.ts: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-465ec1c301d43cc7", "name": "Insecure pattern 'node_child_process' in packages/tapsmith/src/__tests__/ios-simulator.test.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/__tests__/ios-simulator.test.ts: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-a07af203c1d01a8b", "name": "Insecure pattern 'node_child_process' in packages/tapsmith/src/__tests__/ios-simulator-build.test.ts:4", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/__tests__/ios-simulator-build.test.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-3bb12f3c0dad9bf9", "name": "Insecure pattern 'node_child_process' in packages/tapsmith/src/__tests__/port-utils.test.ts:2", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/__tests__/port-utils.test.ts: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-476e5915b7420e75", "name": "Insecure pattern 'direct_innerhtml_assignment' in packages/tapsmith/src/trace/show-trace-server.ts:228", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in packages/tapsmith/src/trace/show-trace-server.ts:228"}, "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-d1e76ffc2e67d420", "name": "Insecure pattern 'cors_wildcard' in packages/tapsmith/src/trace/show-trace-server.ts:79", "shortDescription": {"text": "Insecure pattern 'cors_wildcard' in packages/tapsmith/src/trace/show-trace-server.ts:79"}, "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-41b67ac4f84f4c74", "name": "Insecure pattern 'direct_innerhtml_assignment' in packages/tapsmith/src/reporters/html.ts:226", "shortDescription": {"text": "Insecure pattern 'direct_innerhtml_assignment' in packages/tapsmith/src/reporters/html.ts:226"}, "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-a4197ef18f1d7c06", "name": "Insecure pattern 'node_child_process' in packages/tapsmith/src/mcp/headless-dispatcher.ts:3", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/mcp/headless-dispatcher.ts:3"}, "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-76e3c46f46969d06", "name": "Insecure pattern 'node_child_process' in packages/tapsmith/src/mcp/connection.ts:4", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/mcp/connection.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-e85094f766ceac38", "name": "Insecure pattern 'node_child_process' in packages/tapsmith/src/ui-mode/ui-server.ts:19", "shortDescription": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/ui-mode/ui-server.ts:19"}, "fullDescription": {"text": "Found a known-risky pattern (node_child_process). Review and replace if possible."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-6372cebde0220094", "name": "No auth library detected", "shortDescription": {"text": "No auth library detected"}, "fullDescription": {"text": "The scanner did not find any standard auth library (JWT, OAuth, NextAuth, Auth0, etc.). The repo has auth/admin/session surface indicators, so auth may live in custom code, in a separate service, or be missing."}, "properties": {"scanner": "scanner-primary", "layer": "security", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-aa08922051042fbb", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "cloudflare/wrangler-action@v3 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-419c7fcdf11fc660", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "cloudflare/wrangler-action@v3 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-7f9c9608041167ee", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/cache@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-6f781c63b95abf9d", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "cloudflare/wrangler-action@v3 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-27924aa79fa4a517", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/cache@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-46c644c6227e4d4a", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/cache@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-289be5680c2040a6", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "actions/cache@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-4b7da50a3fa6730b", "name": "GitHub Action is tag-pinned rather than SHA-pinned", "shortDescription": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "fullDescription": {"text": "cloudflare/wrangler-action@v3 can move without a code change in this repo. Pin third-party actions to a reviewed 40-character commit SHA."}, "properties": {"scanner": "scanner-primary", "layer": "cicd", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-322fa8e0b40da82f", "name": "Install-time lifecycle script performs network/shell-sensitive actions", "shortDescription": {"text": "Install-time lifecycle script performs network/shell-sensitive actions"}, "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": "medium", "confidence": 1.0}}, {"id": "scanner-2c112e2ce1021f57", "name": "Install-time lifecycle script performs network/shell-sensitive actions", "shortDescription": {"text": "Install-time lifecycle script performs network/shell-sensitive actions"}, "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": "medium", "confidence": 1.0}}, {"id": "scanner-c28b9daf0f3976e1", "name": "Install-time lifecycle script performs network/shell-sensitive actions", "shortDescription": {"text": "Install-time lifecycle script performs network/shell-sensitive actions"}, "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": "medium", "confidence": 1.0}}, {"id": "scanner-0140f11040e3eda8", "name": "Install-time lifecycle script performs network/shell-sensitive actions", "shortDescription": {"text": "Install-time lifecycle script performs network/shell-sensitive actions"}, "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": "medium", "confidence": 1.0}}, {"id": "scanner-c0cdd5d66a2d9c55", "name": "Very large file: packages/tapsmith/src/element-handle.ts (1520 lines)", "shortDescription": {"text": "Very large file: packages/tapsmith/src/element-handle.ts (1520 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-99f88b52f71cc7f8", "name": "Very large file: packages/tapsmith/src/expect.ts (1920 lines)", "shortDescription": {"text": "Very large file: packages/tapsmith/src/expect.ts (1920 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-180f0e534608b76e", "name": "Very large file: packages/tapsmith/src/cli.ts (2635 lines)", "shortDescription": {"text": "Very large file: packages/tapsmith/src/cli.ts (2635 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-76b09112128e5b47", "name": "Very large file: packages/tapsmith/src/runner.ts (1873 lines)", "shortDescription": {"text": "Very large file: packages/tapsmith/src/runner.ts (1873 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-2c54a0ee3ec3f9e0", "name": "Very large file: packages/tapsmith/src/dispatcher.ts (1910 lines)", "shortDescription": {"text": "Very large file: packages/tapsmith/src/dispatcher.ts (1910 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-e2b0688c6c208c21", "name": "Very large file: packages/tapsmith/src/__tests__/expect.test.ts (2015 lines)", "shortDescription": {"text": "Very large file: packages/tapsmith/src/__tests__/expect.test.ts (2015 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-190e010b28be5121", "name": "Very large file: packages/tapsmith/src/__tests__/element-handle.test.ts (2281 lines)", "shortDescription": {"text": "Very large file: packages/tapsmith/src/__tests__/element-handle.test.ts (2281 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-26e8b17520e6a391", "name": "Very large file: packages/tapsmith/src/__tests__/runner.test.ts (1438 lines)", "shortDescription": {"text": "Very large file: packages/tapsmith/src/__tests__/runner.test.ts (1438 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-9051fd1c8b962a01", "name": "Very large file: packages/tapsmith/src/ui-mode/main.tsx (1421 lines)", "shortDescription": {"text": "Very large file: packages/tapsmith/src/ui-mode/main.tsx (1421 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-b1905b2c81f05d71", "name": "Very large file: packages/tapsmith/src/ui-mode/ui-server.ts (4002 lines)", "shortDescription": {"text": "Very large file: packages/tapsmith/src/ui-mode/ui-server.ts (4002 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-b36ea516fd8a960c", "name": "Very large file: packages/tapsmith/src/ui-mode/styles/ui-mode.css.ts (2349 lines)", "shortDescription": {"text": "Very large file: packages/tapsmith/src/ui-mode/styles/ui-mode.css.ts (2349 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-28ea1f5df5ed72b8", "name": "Very large file: packages/tapsmith-core/src/grpc_server.rs (7094 lines)", "shortDescription": {"text": "Very large file: packages/tapsmith-core/src/grpc_server.rs (7094 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-3c05fac193cda542", "name": "Very large file: packages/tapsmith-core/src/agent_comms.rs (2200 lines)", "shortDescription": {"text": "Very large file: packages/tapsmith-core/src/agent_comms.rs (2200 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-59ca8bea98848d7b", "name": "Very large file: packages/tapsmith-core/src/network_proxy.rs (4177 lines)", "shortDescription": {"text": "Very large file: packages/tapsmith-core/src/network_proxy.rs (4177 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-828d2d91372bba36", "name": "Very large file: packages/tapsmith-core/src/ios/device.rs (1556 lines)", "shortDescription": {"text": "Very large file: packages/tapsmith-core/src/ios/device.rs (1556 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-3ab5d313dda8e5f9", "name": "Debug logging residue appears in source files", "shortDescription": {"text": "Debug logging residue appears in source files"}, "fullDescription": {"text": "Found 399 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 98 placeholder/mock markers across 36 source files. This often means the repo looks complete while core flows still use generated scaffolding or fake data."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-2d0c7b7ab8f8aacf", "name": "Critical user flow still appears backed by mock or placeholder data", "shortDescription": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "fullDescription": {"text": "A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "medium", "confidence": 1.0}}, {"id": "scanner-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-57c2dadde91f2f65", "name": "Commented-code block (8 lines) in website/scripts/sync-docs.mjs:6", "shortDescription": {"text": "Commented-code block (8 lines) in website/scripts/sync-docs.mjs:6"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-3279ecdf66ddd783", "name": "Commented-code block (5 lines) in test-app/plugins/with-webview-debugging.js:1", "shortDescription": {"text": "Commented-code block (5 lines) in test-app/plugins/with-webview-debugging.js:1"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2f528679ec130722", "name": "Commented-code block (5 lines) in packages/tapsmith/vite.config.ui-mode.ts:18", "shortDescription": {"text": "Commented-code block (5 lines) in packages/tapsmith/vite.config.ui-mode.ts:18"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a79846889251e633", "name": "Commented-code block (6 lines) in packages/tapsmith/scripts/fetch-bezels.mjs:151", "shortDescription": {"text": "Commented-code block (6 lines) in packages/tapsmith/scripts/fetch-bezels.mjs:151"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-de17ecb910781a53", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/tapsmith/scripts/fetch-bezels.mjs:56", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/tapsmith/scripts/fetch-bezels.mjs:56"}, "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-298e0d28bc8383f8", "name": "Commented-code block (5 lines) in packages/tapsmith/src/verify-ios-network.ts:189", "shortDescription": {"text": "Commented-code block (5 lines) in packages/tapsmith/src/verify-ios-network.ts:189"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6fd3caea12870fe2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/tapsmith/src/verify-ios-network.ts:151", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/tapsmith/src/verify-ios-network.ts:151"}, "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-79d8b004603cb6fe", "name": "Commented-code block (5 lines) in packages/tapsmith/src/watch.ts:187", "shortDescription": {"text": "Commented-code block (5 lines) in packages/tapsmith/src/watch.ts:187"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-34e0f85392387646", "name": "Commented-code block (5 lines) in packages/tapsmith/src/ios-trust-probe.ts:53", "shortDescription": {"text": "Commented-code block (5 lines) in packages/tapsmith/src/ios-trust-probe.ts:53"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-0f774cd03e293704", "name": "Commented-code block (5 lines) in packages/tapsmith/src/worker-runner.ts:126", "shortDescription": {"text": "Commented-code block (5 lines) in packages/tapsmith/src/worker-runner.ts:126"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-539d3e768d444906", "name": "Commented-code block (5 lines) in packages/tapsmith/src/element-handle.ts:882", "shortDescription": {"text": "Commented-code block (5 lines) in packages/tapsmith/src/element-handle.ts:882"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8389702aa043dbef", "name": "Commented-code block (7 lines) in packages/tapsmith/src/setup-ios-device.ts:401", "shortDescription": {"text": "Commented-code block (7 lines) in packages/tapsmith/src/setup-ios-device.ts:401"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2d098cf7747257e2", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/tapsmith/src/api-request.ts:139", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/tapsmith/src/api-request.ts:139"}, "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-a8cdf62f3e2f1952", "name": "Commented-code block (5 lines) in packages/tapsmith/src/session-preflight.ts:110", "shortDescription": {"text": "Commented-code block (5 lines) in packages/tapsmith/src/session-preflight.ts:110"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7aa3a95ba914ab7f", "name": "Commented-code block (9 lines) in packages/tapsmith/src/grpc-client.ts:299", "shortDescription": {"text": "Commented-code block (9 lines) in packages/tapsmith/src/grpc-client.ts:299"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4d85db6dd525a044", "name": "Commented-code block (6 lines) in packages/tapsmith/src/cli.ts:354", "shortDescription": {"text": "Commented-code block (6 lines) in packages/tapsmith/src/cli.ts:354"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-6895a6357afed066", "name": "Commented-code block (7 lines) in packages/tapsmith/src/network.ts:174", "shortDescription": {"text": "Commented-code block (7 lines) in packages/tapsmith/src/network.ts:174"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7bac78511a659572", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/tapsmith/src/network.ts:156", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/tapsmith/src/network.ts:156"}, "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-30515c49a85cf475", "name": "Commented-code block (5 lines) in packages/tapsmith/src/build-ios-agent.ts:416", "shortDescription": {"text": "Commented-code block (5 lines) in packages/tapsmith/src/build-ios-agent.ts:416"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a06be412e8984787", "name": "Commented-code block (6 lines) in packages/tapsmith/src/configure-ios-network.ts:383", "shortDescription": {"text": "Commented-code block (6 lines) in packages/tapsmith/src/configure-ios-network.ts:383"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-2290dcd9e8d68420", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/tapsmith/src/device.ts:835", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/tapsmith/src/device.ts:835"}, "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-09e0bb7f514f8d29", "name": "Commented-code block (5 lines) in packages/tapsmith/src/runner.ts:228", "shortDescription": {"text": "Commented-code block (5 lines) in packages/tapsmith/src/runner.ts:228"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-53d8cb24bcb73a5e", "name": "Commented-code block (8 lines) in packages/tapsmith/src/dispatcher.ts:813", "shortDescription": {"text": "Commented-code block (8 lines) in packages/tapsmith/src/dispatcher.ts:813"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bf5a98af7af38fb6", "name": "Commented-code block (5 lines) in packages/tapsmith/src/list-devices.ts:173", "shortDescription": {"text": "Commented-code block (5 lines) in packages/tapsmith/src/list-devices.ts:173"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-514d5cfa340298cb", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/tapsmith/src/__tests__/network.test.ts:237", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/tapsmith/src/__tests__/network.test.ts:237"}, "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-fbba86d0fe9952a0", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/tapsmith/src/__tests__/api-request.test.ts:124", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/tapsmith/src/__tests__/api-request.test.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-11ab7c7ddd77994f", "name": "Commented-code block (5 lines) in packages/tapsmith/src/__tests__/reporter.test.ts:433", "shortDescription": {"text": "Commented-code block (5 lines) in packages/tapsmith/src/__tests__/reporter.test.ts:433"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a7b7915a07108324", "name": "Commented-code block (5 lines) in packages/tapsmith/src/__tests__/expect.test.ts:1259", "shortDescription": {"text": "Commented-code block (5 lines) in packages/tapsmith/src/__tests__/expect.test.ts:1259"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-c9725bb314029632", "name": "Commented-code block (6 lines) in packages/tapsmith/src/__tests__/element-handle.test.ts:1187", "shortDescription": {"text": "Commented-code block (6 lines) in packages/tapsmith/src/__tests__/element-handle.test.ts:1187"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-5ea8965a9f12b144", "name": "Commented-code block (7 lines) in packages/tapsmith/src/__tests__/config.test.ts:235", "shortDescription": {"text": "Commented-code block (7 lines) in packages/tapsmith/src/__tests__/config.test.ts:235"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-06b35033498973e5", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/tapsmith/src/__tests__/show-trace-server.test.ts:45", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/tapsmith/src/__tests__/show-trace-server.test.ts:45"}, "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-976da1929df80ebf", "name": "Commented-code block (5 lines) in packages/tapsmith/src/trace/trace-collector.ts:139", "shortDescription": {"text": "Commented-code block (5 lines) in packages/tapsmith/src/trace/trace-collector.ts:139"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d35b971c1c649966", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/tapsmith/src/trace/show-trace-server.ts:150", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/tapsmith/src/trace/show-trace-server.ts:150"}, "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-47435da641247619", "name": "Commented-code block (6 lines) in packages/tapsmith/src/trace/filter-hosts.ts:33", "shortDescription": {"text": "Commented-code block (6 lines) in packages/tapsmith/src/trace/filter-hosts.ts:33"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-d4a9d86a10b9ea87", "name": "Commented-code block (5 lines) in packages/tapsmith/src/mcp/selector-helper.ts:126", "shortDescription": {"text": "Commented-code block (5 lines) in packages/tapsmith/src/mcp/selector-helper.ts:126"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-8c7a38e82719f6de", "name": "Commented-code block (8 lines) in packages/tapsmith/src/ui-mode/ui-worker.ts:308", "shortDescription": {"text": "Commented-code block (8 lines) in packages/tapsmith/src/ui-mode/ui-worker.ts:308"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-645360af056fe0d5", "name": "Commented-code block (5 lines) in packages/tapsmith/src/ui-mode/main.tsx:222", "shortDescription": {"text": "Commented-code block (5 lines) in packages/tapsmith/src/ui-mode/main.tsx:222"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-163fe4e0c41c4bbb", "name": "Commented-code block (6 lines) in packages/tapsmith/src/ui-mode/ui-run.ts:160", "shortDescription": {"text": "Commented-code block (6 lines) in packages/tapsmith/src/ui-mode/ui-run.ts:160"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-a7135ef2aa3d8fc8", "name": "Commented-code block (5 lines) in packages/tapsmith/src/ui-mode/ui-server.ts:381", "shortDescription": {"text": "Commented-code block (5 lines) in packages/tapsmith/src/ui-mode/ui-server.ts:381"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-15aa49979f4253c5", "name": "Commented-code block (6 lines) in packages/tapsmith/src/ui-mode/hooks/use-test-tree.ts:45", "shortDescription": {"text": "Commented-code block (6 lines) in packages/tapsmith/src/ui-mode/hooks/use-test-tree.ts:45"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-4ff3624645d51eb6", "name": "`fetch()` without try/.catch or AbortSignal \u2014 packages/tapsmith/src/trace-viewer/main.tsx:49", "shortDescription": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/tapsmith/src/trace-viewer/main.tsx:49"}, "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-81ddb92adf3e5f2b", "name": "Commented-code block (7 lines) in packages/tapsmith/src/trace-viewer/components/selector-matching.ts:14", "shortDescription": {"text": "Commented-code block (7 lines) in packages/tapsmith/src/trace-viewer/components/selector-matching.ts:14"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-56facacf9261ff95", "name": "Commented-code block (5 lines) in packages/tapsmith/src/trace-viewer/components/ScreenshotPanel.tsx:319", "shortDescription": {"text": "Commented-code block (5 lines) in packages/tapsmith/src/trace-viewer/components/ScreenshotPanel.tsx:319"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-7e8e1ed9208b0f4e", "name": "Commented-code block (7 lines) in packages/tapsmith/src/trace-viewer/components/selector-pick.ts:43", "shortDescription": {"text": "Commented-code block (7 lines) in packages/tapsmith/src/trace-viewer/components/selector-pick.ts: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-2f4939662930e924", "name": "Commented-code block (7 lines) in packages/tapsmith/src/trace-viewer/components/selector-generation.ts:220", "shortDescription": {"text": "Commented-code block (7 lines) in packages/tapsmith/src/trace-viewer/components/selector-generation.ts:220"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-bb48375f393759ce", "name": "Commented-code block (5 lines) in e2e/tests/app-state.test.ts:3", "shortDescription": {"text": "Commented-code block (5 lines) in e2e/tests/app-state.test.ts:3"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-80d8b30fb2234011", "name": "Commented-code block (5 lines) in e2e/tests/known-bugs.test.ts:25", "shortDescription": {"text": "Commented-code block (5 lines) in e2e/tests/known-bugs.test.ts:25"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-82d991ee677976f9", "name": "Commented-code block (12 lines) in e2e/tests/selector-regressions.test.ts:76", "shortDescription": {"text": "Commented-code block (12 lines) in e2e/tests/selector-regressions.test.ts:76"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-de0c329c4c9bb306", "name": "Commented-code block (5 lines) in e2e/tests/mirror-touch-stream-smoke.test.ts:25", "shortDescription": {"text": "Commented-code block (5 lines) in e2e/tests/mirror-touch-stream-smoke.test.ts:25"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}, {"id": "scanner-cc6fdea193f7555f", "name": "Commented-code block (6 lines) in e2e/tests/app-state-keychain.ios.test.ts:7", "shortDescription": {"text": "Commented-code block (6 lines) in e2e/tests/app-state-keychain.ios.test.ts:7"}, "fullDescription": {"text": "A long run of `//` or `#` lines usually means abandoned code. Delete or move to git history. Keeps the canvas + dead-code detection honest."}, "properties": {"scanner": "scanner-primary", "layer": "quality", "severity": "info", "confidence": 1.0}}]}}, "automationDetails": {"id": "repobility/18873"}, "properties": {"repository": "samsmithyeah/tapsmith", "repoUrl": "https://github.com/samsmithyeah/tapsmith", "branch": "main"}, "results": [{"ruleId": "scanner-98d764c3bf481809", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/verify-ios-network.ts:180"}, "properties": {"repobilityId": "d41ea341ef3c9e08", "scanner": "scanner-primary", "fingerprint": "98d764c3bf481809", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-58ada2b679cdc823", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/setup-ios.ts:128"}, "properties": {"repobilityId": "0ab59f5353925eff", "scanner": "scanner-primary", "fingerprint": "58ada2b679cdc823", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-a7d5085d73952553", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/doctor.ts:46"}, "properties": {"repobilityId": "48f607a4a05803cd", "scanner": "scanner-primary", "fingerprint": "a7d5085d73952553", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-8b27245f27191c4c", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/init.ts:152"}, "properties": {"repobilityId": "cc9a79dd08937998", "scanner": "scanner-primary", "fingerprint": "8b27245f27191c4c", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-208b7bde5e72c94b", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/expect.ts:1517"}, "properties": {"repobilityId": "c979e7d289c509af", "scanner": "scanner-primary", "fingerprint": "208b7bde5e72c94b", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9335898de1dd70d0", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/setup-ios-device.ts:385"}, "properties": {"repobilityId": "898fbaa7dbccb0f1", "scanner": "scanner-primary", "fingerprint": "9335898de1dd70d0", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-45b3973a012aa950", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/cli.ts:91"}, "properties": {"repobilityId": "7019adde21c331d9", "scanner": "scanner-primary", "fingerprint": "45b3973a012aa950", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-79cae27d32e2465a", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/build-ios-agent.ts:223"}, "properties": {"repobilityId": "9c124bfd60890d3e", "scanner": "scanner-primary", "fingerprint": "79cae27d32e2465a", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3645867d5ecdfa21", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/configure-ios-network.ts:171"}, "properties": {"repobilityId": "a0cbd87dc17d314f", "scanner": "scanner-primary", "fingerprint": "3645867d5ecdfa21", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-d311de74379bc487", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/ios-simulator-build.ts:141"}, "properties": {"repobilityId": "0c1495102af808ce", "scanner": "scanner-primary", "fingerprint": "d311de74379bc487", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-f7689ef22aa39bf1", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/__tests__/trace-collector.test.ts:500"}, "properties": {"repobilityId": "4d0b8cc3eba4b3eb", "scanner": "scanner-primary", "fingerprint": "f7689ef22aa39bf1", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-ac5061cadd83ae67", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/trace/show-trace-server.ts:108"}, "properties": {"repobilityId": "5de740f74b3a957a", "scanner": "scanner-primary", "fingerprint": "ac5061cadd83ae67", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-3154a2a8f37bc677", "level": "note", "message": {"text": "Stray `console.log` in TS/JS \u2014 packages/tapsmith/src/ui-mode/ui-server.ts:1475"}, "properties": {"repobilityId": "3a2e0391a303728a", "scanner": "scanner-primary", "fingerprint": "3154a2a8f37bc677", "layer": "frontend", "severity": "low", "confidence": 1.0, "tags": ["frontend-quality", "fq.console-leak"]}}, {"ruleId": "scanner-9398d91e4e2b067a", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/scripts/fetch-bezels.mjs:27"}, "properties": {"repobilityId": "0003514fd2dcdf99", "scanner": "scanner-primary", "fingerprint": "9398d91e4e2b067a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/scripts/fetch-bezels.mjs"}, "region": {"startLine": 27}}}]}, {"ruleId": "scanner-f06cb321fd2bb1a0", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/ios-host-ip-check.ts:20"}, "properties": {"repobilityId": "4ed0129013fd9b39", "scanner": "scanner-primary", "fingerprint": "f06cb321fd2bb1a0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/ios-host-ip-check.ts"}, "region": {"startLine": 20}}}]}, {"ruleId": "scanner-77a292c4291d1907", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/verify-ios-network.ts:25"}, "properties": {"repobilityId": "a20535408081fc54", "scanner": "scanner-primary", "fingerprint": "77a292c4291d1907", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/verify-ios-network.ts"}, "region": {"startLine": 25}}}]}, {"ruleId": "scanner-f5540e81f4b1daf4", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/setup-ios.ts:17"}, "properties": {"repobilityId": "140f070741128233", "scanner": "scanner-primary", "fingerprint": "f5540e81f4b1daf4", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/setup-ios.ts"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-09b49a5e019e9e9c", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/watch.ts:15"}, "properties": {"repobilityId": "bf16ddc0277dcd2b", "scanner": "scanner-primary", "fingerprint": "09b49a5e019e9e9c", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/watch.ts"}, "region": {"startLine": 15}}}]}, {"ruleId": "scanner-70b5b74f1f8d731d", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/ios-trust-probe.ts:29"}, "properties": {"repobilityId": "feb6e8bc139fcb73", "scanner": "scanner-primary", "fingerprint": "70b5b74f1f8d731d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/ios-trust-probe.ts"}, "region": {"startLine": 29}}}]}, {"ruleId": "scanner-5ea4385536f6d4e8", "level": "error", "message": {"text": "Insecure pattern 'exec_used' in packages/tapsmith/src/emulator.ts:378"}, "properties": {"repobilityId": "12b037df0f62280e", "scanner": "scanner-primary", "fingerprint": "5ea4385536f6d4e8", "layer": "security", "severity": "high", "confidence": 1.0, "tags": ["owasp", "exec_used"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/emulator.ts"}, "region": {"startLine": 378}}}]}, {"ruleId": "scanner-a79453a5f59351ba", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/emulator.ts:11"}, "properties": {"repobilityId": "e24fb1b8f4482b84", "scanner": "scanner-primary", "fingerprint": "a79453a5f59351ba", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/emulator.ts"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-98e8a5e83c4efc7d", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/doctor.ts:11"}, "properties": {"repobilityId": "e3eb001d37a734e1", "scanner": "scanner-primary", "fingerprint": "98e8a5e83c4efc7d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/doctor.ts"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-298a95a106df4336", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/webkit-inspector.ts:13"}, "properties": {"repobilityId": "0231d743b754bd13", "scanner": "scanner-primary", "fingerprint": "298a95a106df4336", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/webkit-inspector.ts"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-d5bd584daffd1281", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/init.ts:1"}, "properties": {"repobilityId": "f57ab78aaf463d1f", "scanner": "scanner-primary", "fingerprint": "d5bd584daffd1281", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/init.ts"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-d1e70684d4fd6505", "level": "error", "message": {"text": "Possible secret in packages/tapsmith/src/setup-ios-device.ts"}, "properties": {"repobilityId": "e18324598a7b3c97", "scanner": "scanner-primary", "fingerprint": "d1e70684d4fd6505", "layer": "security", "severity": "critical", "confidence": 1.0, "tags": ["secrets"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/setup-ios-device.ts"}, "region": {"startLine": 235}}}]}, {"ruleId": "scanner-37bc1cc448af5bdc", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/setup-ios-device.ts:21"}, "properties": {"repobilityId": "f1b4a5fa9d9de7fb", "scanner": "scanner-primary", "fingerprint": "37bc1cc448af5bdc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/setup-ios-device.ts"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-99a77afe01bd8629", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/ios-devicectl.ts:17"}, "properties": {"repobilityId": "d6516561c8a73d80", "scanner": "scanner-primary", "fingerprint": "99a77afe01bd8629", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/ios-devicectl.ts"}, "region": {"startLine": 17}}}]}, {"ruleId": "scanner-9919e8e690fbb240", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/ios-device-resolve.ts:10"}, "properties": {"repobilityId": "7471eaa345b05c70", "scanner": "scanner-primary", "fingerprint": "9919e8e690fbb240", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/ios-device-resolve.ts"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-e39c92207fb33f25", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/launch-progress.ts:3"}, "properties": {"repobilityId": "f7da03294c966d2f", "scanner": "scanner-primary", "fingerprint": "e39c92207fb33f25", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/launch-progress.ts"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-d2fdf4a5d8ceddcf", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/cli.ts:32"}, "properties": {"repobilityId": "94901d9d51efed2c", "scanner": "scanner-primary", "fingerprint": "d2fdf4a5d8ceddcf", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/cli.ts"}, "region": {"startLine": 32}}}]}, {"ruleId": "scanner-14d573b72ec0f315", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/build-ios-agent.ts:31"}, "properties": {"repobilityId": "41f7af68bffc07e6", "scanner": "scanner-primary", "fingerprint": "14d573b72ec0f315", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/build-ios-agent.ts"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-3bdb01a5e02f18b9", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/configure-ios-network.ts:19"}, "properties": {"repobilityId": "9a139be5faa8e2c7", "scanner": "scanner-primary", "fingerprint": "3bdb01a5e02f18b9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/configure-ios-network.ts"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-8bc2fc9e58f0d8f0", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/ios-simulator.ts:13"}, "properties": {"repobilityId": "aa9ae30476b4a048", "scanner": "scanner-primary", "fingerprint": "8bc2fc9e58f0d8f0", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/ios-simulator.ts"}, "region": {"startLine": 13}}}]}, {"ruleId": "scanner-ad35f1de76f9d612", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/daemon-bin.ts:12"}, "properties": {"repobilityId": "e4329bd792fd6ca5", "scanner": "scanner-primary", "fingerprint": "ad35f1de76f9d612", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/daemon-bin.ts"}, "region": {"startLine": 12}}}]}, {"ruleId": "scanner-1ce47c513618685d", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/port-utils.ts:8"}, "properties": {"repobilityId": "82c8df29a1a86a72", "scanner": "scanner-primary", "fingerprint": "1ce47c513618685d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/port-utils.ts"}, "region": {"startLine": 8}}}]}, {"ruleId": "scanner-4bb00672702fe18a", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/dispatcher.ts:11"}, "properties": {"repobilityId": "d921c316f601cb6f", "scanner": "scanner-primary", "fingerprint": "4bb00672702fe18a", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/dispatcher.ts"}, "region": {"startLine": 11}}}]}, {"ruleId": "scanner-30da21c6205a047d", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/ios-profile-expiry.ts:19"}, "properties": {"repobilityId": "6ccad052238b8974", "scanner": "scanner-primary", "fingerprint": "30da21c6205a047d", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/ios-profile-expiry.ts"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-b1f189f06e9ee4ae", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/ios-simulator-build.ts:10"}, "properties": {"repobilityId": "55721b3e4af99c67", "scanner": "scanner-primary", "fingerprint": "b1f189f06e9ee4ae", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/ios-simulator-build.ts"}, "region": {"startLine": 10}}}]}, {"ruleId": "scanner-fe09cb2025bbc0fc", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/list-devices.ts:21"}, "properties": {"repobilityId": "baebcbbdb8b592c4", "scanner": "scanner-primary", "fingerprint": "fe09cb2025bbc0fc", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/list-devices.ts"}, "region": {"startLine": 21}}}]}, {"ruleId": "scanner-960f0cdf3eb3daa6", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/__tests__/dispatcher.test.ts:2"}, "properties": {"repobilityId": "a63521abf41f7f8f", "scanner": "scanner-primary", "fingerprint": "960f0cdf3eb3daa6", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/__tests__/dispatcher.test.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-465ec1c301d43cc7", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/__tests__/ios-simulator.test.ts:2"}, "properties": {"repobilityId": "c75e27c42f9d0911", "scanner": "scanner-primary", "fingerprint": "465ec1c301d43cc7", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/__tests__/ios-simulator.test.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-a07af203c1d01a8b", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/__tests__/ios-simulator-build.test.ts:4"}, "properties": {"repobilityId": "64a344305184a4ae", "scanner": "scanner-primary", "fingerprint": "a07af203c1d01a8b", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/__tests__/ios-simulator-build.test.ts"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-3bb12f3c0dad9bf9", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/__tests__/port-utils.test.ts:2"}, "properties": {"repobilityId": "9eaa83c2514ef05e", "scanner": "scanner-primary", "fingerprint": "3bb12f3c0dad9bf9", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/__tests__/port-utils.test.ts"}, "region": {"startLine": 2}}}]}, {"ruleId": "scanner-476e5915b7420e75", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in packages/tapsmith/src/trace/show-trace-server.ts:228"}, "properties": {"repobilityId": "72f3e2578d497b98", "scanner": "scanner-primary", "fingerprint": "476e5915b7420e75", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/trace/show-trace-server.ts"}, "region": {"startLine": 228}}}]}, {"ruleId": "scanner-d1e76ffc2e67d420", "level": "warning", "message": {"text": "Insecure pattern 'cors_wildcard' in packages/tapsmith/src/trace/show-trace-server.ts:79"}, "properties": {"repobilityId": "1151d8ad8fb54c38", "scanner": "scanner-primary", "fingerprint": "d1e76ffc2e67d420", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "cors_wildcard"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/trace/show-trace-server.ts"}, "region": {"startLine": 79}}}]}, {"ruleId": "scanner-41b67ac4f84f4c74", "level": "warning", "message": {"text": "Insecure pattern 'direct_innerhtml_assignment' in packages/tapsmith/src/reporters/html.ts:226"}, "properties": {"repobilityId": "02e2640e54c1872e", "scanner": "scanner-primary", "fingerprint": "41b67ac4f84f4c74", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "direct_innerhtml_assignment"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/reporters/html.ts"}, "region": {"startLine": 226}}}]}, {"ruleId": "scanner-a4197ef18f1d7c06", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/mcp/headless-dispatcher.ts:3"}, "properties": {"repobilityId": "ea96d271ba9a1a6b", "scanner": "scanner-primary", "fingerprint": "a4197ef18f1d7c06", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/mcp/headless-dispatcher.ts"}, "region": {"startLine": 3}}}]}, {"ruleId": "scanner-76e3c46f46969d06", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/mcp/connection.ts:4"}, "properties": {"repobilityId": "4fa041c73d84705b", "scanner": "scanner-primary", "fingerprint": "76e3c46f46969d06", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/mcp/connection.ts"}, "region": {"startLine": 4}}}]}, {"ruleId": "scanner-e85094f766ceac38", "level": "warning", "message": {"text": "Insecure pattern 'node_child_process' in packages/tapsmith/src/ui-mode/ui-server.ts:19"}, "properties": {"repobilityId": "3dbad1ef924649e9", "scanner": "scanner-primary", "fingerprint": "e85094f766ceac38", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["owasp", "node_child_process"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "packages/tapsmith/src/ui-mode/ui-server.ts"}, "region": {"startLine": 19}}}]}, {"ruleId": "scanner-6372cebde0220094", "level": "warning", "message": {"text": "No auth library detected"}, "properties": {"repobilityId": "a5b6035a5bbf8054", "scanner": "scanner-primary", "fingerprint": "6372cebde0220094", "layer": "security", "severity": "medium", "confidence": 1.0, "tags": ["coverage", "auth"]}}, {"ruleId": "scanner-aa08922051042fbb", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "5f1f275873084404", "scanner": "scanner-primary", "fingerprint": "aa08922051042fbb", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/preview-website.yml"}, "region": {"startLine": 42}}}]}, {"ruleId": "scanner-aa08922051042fbb", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "4c0debdfd805ccbe", "scanner": "scanner-primary", "fingerprint": "aa08922051042fbb", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/preview-website.yml"}, "region": {"startLine": 50}}}]}, {"ruleId": "scanner-419c7fcdf11fc660", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "d15761e9b161c679", "scanner": "scanner-primary", "fingerprint": "419c7fcdf11fc660", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-website.yml"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-7f9c9608041167ee", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "535ffe6dadfa5820", "scanner": "scanner-primary", "fingerprint": "7f9c9608041167ee", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/e2e-ios.yml"}, "region": {"startLine": 31}}}]}, {"ruleId": "scanner-7f9c9608041167ee", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "535ffe6dadfa5820", "scanner": "scanner-primary", "fingerprint": "7f9c9608041167ee", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/e2e-ios.yml"}, "region": {"startLine": 91}}}]}, {"ruleId": "scanner-7f9c9608041167ee", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a832dea6cd853d2f", "scanner": "scanner-primary", "fingerprint": "7f9c9608041167ee", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/e2e-ios.yml"}, "region": {"startLine": 160}}}]}, {"ruleId": "scanner-7f9c9608041167ee", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a832dea6cd853d2f", "scanner": "scanner-primary", "fingerprint": "7f9c9608041167ee", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/e2e-ios.yml"}, "region": {"startLine": 166}}}]}, {"ruleId": "scanner-7f9c9608041167ee", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a832dea6cd853d2f", "scanner": "scanner-primary", "fingerprint": "7f9c9608041167ee", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/e2e-ios.yml"}, "region": {"startLine": 172}}}]}, {"ruleId": "scanner-7f9c9608041167ee", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "99b535e18c433de3", "scanner": "scanner-primary", "fingerprint": "7f9c9608041167ee", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/e2e-ios.yml"}, "region": {"startLine": 286}}}]}, {"ruleId": "scanner-7f9c9608041167ee", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "99b535e18c433de3", "scanner": "scanner-primary", "fingerprint": "7f9c9608041167ee", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/e2e-ios.yml"}, "region": {"startLine": 312}}}]}, {"ruleId": "scanner-7f9c9608041167ee", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "99b535e18c433de3", "scanner": "scanner-primary", "fingerprint": "7f9c9608041167ee", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/e2e-ios.yml"}, "region": {"startLine": 320}}}]}, {"ruleId": "scanner-7f9c9608041167ee", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "a832dea6cd853d2f", "scanner": "scanner-primary", "fingerprint": "7f9c9608041167ee", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/e2e-ios.yml"}, "region": {"startLine": 349}}}]}, {"ruleId": "scanner-7f9c9608041167ee", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "99b535e18c433de3", "scanner": "scanner-primary", "fingerprint": "7f9c9608041167ee", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/e2e-ios.yml"}, "region": {"startLine": 365}}}]}, {"ruleId": "scanner-6f781c63b95abf9d", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "7686f43da17c4f4c", "scanner": "scanner-primary", "fingerprint": "6f781c63b95abf9d", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/deploy-trace-viewer.yml"}, "region": {"startLine": 39}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "54c8f1b47dd62535", "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": 80}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "54c8f1b47dd62535", "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": 123}}}]}, {"ruleId": "scanner-27924aa79fa4a517", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "54c8f1b47dd62535", "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": 160}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e040b5c136c9f9b8", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 51}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "5ab0c5bd71e63ad8", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 97}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "e040b5c136c9f9b8", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 120}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "5ab0c5bd71e63ad8", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 134}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "5ab0c5bd71e63ad8", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 140}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "5ab0c5bd71e63ad8", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 200}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b0f359fc82dc1097", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 228}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b0f359fc82dc1097", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 291}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b0f359fc82dc1097", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 297}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b0f359fc82dc1097", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 369}}}]}, {"ruleId": "scanner-46c644c6227e4d4a", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b0f359fc82dc1097", "scanner": "scanner-primary", "fingerprint": "46c644c6227e4d4a", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/release.yml"}, "region": {"startLine": 375}}}]}, {"ruleId": "scanner-289be5680c2040a6", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b6ac923fb4ca1a7d", "scanner": "scanner-primary", "fingerprint": "289be5680c2040a6", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/e2e-android.yml"}, "region": {"startLine": 34}}}]}, {"ruleId": "scanner-289be5680c2040a6", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b6ac923fb4ca1a7d", "scanner": "scanner-primary", "fingerprint": "289be5680c2040a6", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/e2e-android.yml"}, "region": {"startLine": 66}}}]}, {"ruleId": "scanner-289be5680c2040a6", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b6ac923fb4ca1a7d", "scanner": "scanner-primary", "fingerprint": "289be5680c2040a6", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/e2e-android.yml"}, "region": {"startLine": 96}}}]}, {"ruleId": "scanner-289be5680c2040a6", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "257d69ce2fe0a52c", "scanner": "scanner-primary", "fingerprint": "289be5680c2040a6", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/e2e-android.yml"}, "region": {"startLine": 169}}}]}, {"ruleId": "scanner-289be5680c2040a6", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "257d69ce2fe0a52c", "scanner": "scanner-primary", "fingerprint": "289be5680c2040a6", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/e2e-android.yml"}, "region": {"startLine": 175}}}]}, {"ruleId": "scanner-289be5680c2040a6", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "257d69ce2fe0a52c", "scanner": "scanner-primary", "fingerprint": "289be5680c2040a6", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/e2e-android.yml"}, "region": {"startLine": 181}}}]}, {"ruleId": "scanner-289be5680c2040a6", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "b6ac923fb4ca1a7d", "scanner": "scanner-primary", "fingerprint": "289be5680c2040a6", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/e2e-android.yml"}, "region": {"startLine": 191}}}]}, {"ruleId": "scanner-289be5680c2040a6", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "cc610251ce0b4726", "scanner": "scanner-primary", "fingerprint": "289be5680c2040a6", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/e2e-android.yml"}, "region": {"startLine": 260}}}]}, {"ruleId": "scanner-289be5680c2040a6", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "cc610251ce0b4726", "scanner": "scanner-primary", "fingerprint": "289be5680c2040a6", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/e2e-android.yml"}, "region": {"startLine": 268}}}]}, {"ruleId": "scanner-289be5680c2040a6", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "257d69ce2fe0a52c", "scanner": "scanner-primary", "fingerprint": "289be5680c2040a6", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/e2e-android.yml"}, "region": {"startLine": 297}}}]}, {"ruleId": "scanner-289be5680c2040a6", "level": "note", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "cc610251ce0b4726", "scanner": "scanner-primary", "fingerprint": "289be5680c2040a6", "layer": "cicd", "severity": "low", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/e2e-android.yml"}, "region": {"startLine": 313}}}]}, {"ruleId": "scanner-4b7da50a3fa6730b", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "eb2ccf0b17e7a238", "scanner": "scanner-primary", "fingerprint": "4b7da50a3fa6730b", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/preview-trace-viewer.yml"}, "region": {"startLine": 44}}}]}, {"ruleId": "scanner-4b7da50a3fa6730b", "level": "warning", "message": {"text": "GitHub Action is tag-pinned rather than SHA-pinned"}, "properties": {"repobilityId": "ccf1cbd930712273", "scanner": "scanner-primary", "fingerprint": "4b7da50a3fa6730b", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "github-actions", "pinned-dependencies"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": ".github/workflows/preview-trace-viewer.yml"}, "region": {"startLine": 52}}}]}, {"ruleId": "scanner-322fa8e0b40da82f", "level": "warning", "message": {"text": "Install-time lifecycle script performs network/shell-sensitive actions"}, "properties": {"repobilityId": "35bc1eb4af208929", "scanner": "scanner-primary", "fingerprint": "322fa8e0b40da82f", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "npm-packages/core-linux-x64/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-2c112e2ce1021f57", "level": "warning", "message": {"text": "Install-time lifecycle script performs network/shell-sensitive actions"}, "properties": {"repobilityId": "63930df7c2cbd894", "scanner": "scanner-primary", "fingerprint": "2c112e2ce1021f57", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "npm-packages/core-linux-arm64/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c28b9daf0f3976e1", "level": "warning", "message": {"text": "Install-time lifecycle script performs network/shell-sensitive actions"}, "properties": {"repobilityId": "dbd57a4c89f158a1", "scanner": "scanner-primary", "fingerprint": "c28b9daf0f3976e1", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "npm-packages/core-darwin-x64/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-0140f11040e3eda8", "level": "warning", "message": {"text": "Install-time lifecycle script performs network/shell-sensitive actions"}, "properties": {"repobilityId": "234d85c1b88647db", "scanner": "scanner-primary", "fingerprint": "0140f11040e3eda8", "layer": "cicd", "severity": "medium", "confidence": 1.0, "tags": ["supply-chain", "npm", "install-scripts"]}, "locations": [{"physicalLocation": {"artifactLocation": {"uri": "npm-packages/core-darwin-arm64/package.json"}, "region": {"startLine": 1}}}]}, {"ruleId": "scanner-c0cdd5d66a2d9c55", "level": "note", "message": {"text": "Very large file: packages/tapsmith/src/element-handle.ts (1520 lines)"}, "properties": {"repobilityId": "a62a6cdcdeb01b39", "scanner": "scanner-primary", "fingerprint": "c0cdd5d66a2d9c55", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-99f88b52f71cc7f8", "level": "note", "message": {"text": "Very large file: packages/tapsmith/src/expect.ts (1920 lines)"}, "properties": {"repobilityId": "29f05ac608abdc06", "scanner": "scanner-primary", "fingerprint": "99f88b52f71cc7f8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-180f0e534608b76e", "level": "note", "message": {"text": "Very large file: packages/tapsmith/src/cli.ts (2635 lines)"}, "properties": {"repobilityId": "a96c310ae73dc767", "scanner": "scanner-primary", "fingerprint": "180f0e534608b76e", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-76b09112128e5b47", "level": "note", "message": {"text": "Very large file: packages/tapsmith/src/runner.ts (1873 lines)"}, "properties": {"repobilityId": "1b7c1fdd9b6a1a27", "scanner": "scanner-primary", "fingerprint": "76b09112128e5b47", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-2c54a0ee3ec3f9e0", "level": "note", "message": {"text": "Very large file: packages/tapsmith/src/dispatcher.ts (1910 lines)"}, "properties": {"repobilityId": "7c8eb13ecc27080d", "scanner": "scanner-primary", "fingerprint": "2c54a0ee3ec3f9e0", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-e2b0688c6c208c21", "level": "note", "message": {"text": "Very large file: packages/tapsmith/src/__tests__/expect.test.ts (2015 lines)"}, "properties": {"repobilityId": "da02dcb58b7fa7c5", "scanner": "scanner-primary", "fingerprint": "e2b0688c6c208c21", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-190e010b28be5121", "level": "note", "message": {"text": "Very large file: packages/tapsmith/src/__tests__/element-handle.test.ts (2281 lines)"}, "properties": {"repobilityId": "9c245077571e7e95", "scanner": "scanner-primary", "fingerprint": "190e010b28be5121", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-26e8b17520e6a391", "level": "note", "message": {"text": "Very large file: packages/tapsmith/src/__tests__/runner.test.ts (1438 lines)"}, "properties": {"repobilityId": "09f6c3d57172dbda", "scanner": "scanner-primary", "fingerprint": "26e8b17520e6a391", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-9051fd1c8b962a01", "level": "note", "message": {"text": "Very large file: packages/tapsmith/src/ui-mode/main.tsx (1421 lines)"}, "properties": {"repobilityId": "33715ce98ad646ee", "scanner": "scanner-primary", "fingerprint": "9051fd1c8b962a01", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b1905b2c81f05d71", "level": "note", "message": {"text": "Very large file: packages/tapsmith/src/ui-mode/ui-server.ts (4002 lines)"}, "properties": {"repobilityId": "ad30c848db028abb", "scanner": "scanner-primary", "fingerprint": "b1905b2c81f05d71", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-b36ea516fd8a960c", "level": "note", "message": {"text": "Very large file: packages/tapsmith/src/ui-mode/styles/ui-mode.css.ts (2349 lines)"}, "properties": {"repobilityId": "be64c55e9bfe31d0", "scanner": "scanner-primary", "fingerprint": "b36ea516fd8a960c", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-28ea1f5df5ed72b8", "level": "note", "message": {"text": "Very large file: packages/tapsmith-core/src/grpc_server.rs (7094 lines)"}, "properties": {"repobilityId": "e97d60d70f49eb6d", "scanner": "scanner-primary", "fingerprint": "28ea1f5df5ed72b8", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3c05fac193cda542", "level": "note", "message": {"text": "Very large file: packages/tapsmith-core/src/agent_comms.rs (2200 lines)"}, "properties": {"repobilityId": "27a9b0be2252d70e", "scanner": "scanner-primary", "fingerprint": "3c05fac193cda542", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-59ca8bea98848d7b", "level": "note", "message": {"text": "Very large file: packages/tapsmith-core/src/network_proxy.rs (4177 lines)"}, "properties": {"repobilityId": "a5183c00236bbe8a", "scanner": "scanner-primary", "fingerprint": "59ca8bea98848d7b", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-828d2d91372bba36", "level": "note", "message": {"text": "Very large file: packages/tapsmith-core/src/ios/device.rs (1556 lines)"}, "properties": {"repobilityId": "a1e992a862d860f6", "scanner": "scanner-primary", "fingerprint": "828d2d91372bba36", "layer": "quality", "severity": "low", "confidence": 1.0, "tags": ["complexity"]}}, {"ruleId": "scanner-3ab5d313dda8e5f9", "level": "note", "message": {"text": "Debug logging residue appears in source files"}, "properties": {"repobilityId": "4f3883981689339a", "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": "c483878455ddb17b", "scanner": "scanner-primary", "fingerprint": "72b2a6250083a784", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "incomplete", "generated-repo-pattern"]}}, {"ruleId": "scanner-2d0c7b7ab8f8aacf", "level": "warning", "message": {"text": "Critical user flow still appears backed by mock or placeholder data"}, "properties": {"repobilityId": "24e4356279a981d9", "scanner": "scanner-primary", "fingerprint": "2d0c7b7ab8f8aacf", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["placeholder", "mock-data", "critical-flow", "generated-repo-pattern"]}}, {"ruleId": "scanner-ea8f3013f588db25", "level": "note", "message": {"text": "Shallow git history limits provenance confidence"}, "properties": {"repobilityId": "4e6d1bb7d5654440", "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": "e6bcd0519e8c3111", "scanner": "scanner-primary", "fingerprint": "8424db9c75e04ba4", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["provenance", "git-history", "generated-repo-pattern"]}}, {"ruleId": "scanner-57c2dadde91f2f65", "level": "none", "message": {"text": "Commented-code block (8 lines) in website/scripts/sync-docs.mjs:6"}, "properties": {"repobilityId": "0b20d4f0be8c5432", "scanner": "scanner-primary", "fingerprint": "57c2dadde91f2f65", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-3279ecdf66ddd783", "level": "none", "message": {"text": "Commented-code block (5 lines) in test-app/plugins/with-webview-debugging.js:1"}, "properties": {"repobilityId": "ea82f4971a37d8a7", "scanner": "scanner-primary", "fingerprint": "3279ecdf66ddd783", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2f528679ec130722", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/tapsmith/vite.config.ui-mode.ts:18"}, "properties": {"repobilityId": "bc6a26ae86111c11", "scanner": "scanner-primary", "fingerprint": "2f528679ec130722", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a79846889251e633", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/tapsmith/scripts/fetch-bezels.mjs:151"}, "properties": {"repobilityId": "6361f5ea21dea9a2", "scanner": "scanner-primary", "fingerprint": "a79846889251e633", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de17ecb910781a53", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/tapsmith/scripts/fetch-bezels.mjs:56"}, "properties": {"repobilityId": "5f64626f46cc321b", "scanner": "scanner-primary", "fingerprint": "de17ecb910781a53", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-298e0d28bc8383f8", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/tapsmith/src/verify-ios-network.ts:189"}, "properties": {"repobilityId": "a291b37e7034450e", "scanner": "scanner-primary", "fingerprint": "298e0d28bc8383f8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6fd3caea12870fe2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/tapsmith/src/verify-ios-network.ts:151"}, "properties": {"repobilityId": "181512e9be861d78", "scanner": "scanner-primary", "fingerprint": "6fd3caea12870fe2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-79d8b004603cb6fe", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/tapsmith/src/watch.ts:187"}, "properties": {"repobilityId": "58ee991193b07744", "scanner": "scanner-primary", "fingerprint": "79d8b004603cb6fe", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-34e0f85392387646", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/tapsmith/src/ios-trust-probe.ts:53"}, "properties": {"repobilityId": "25a808ff0e286b80", "scanner": "scanner-primary", "fingerprint": "34e0f85392387646", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-0f774cd03e293704", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/tapsmith/src/worker-runner.ts:126"}, "properties": {"repobilityId": "e50d839b1a31e929", "scanner": "scanner-primary", "fingerprint": "0f774cd03e293704", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-539d3e768d444906", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/tapsmith/src/element-handle.ts:882"}, "properties": {"repobilityId": "b7389d835e7889a1", "scanner": "scanner-primary", "fingerprint": "539d3e768d444906", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8389702aa043dbef", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/tapsmith/src/setup-ios-device.ts:401"}, "properties": {"repobilityId": "3b704397ac0432e5", "scanner": "scanner-primary", "fingerprint": "8389702aa043dbef", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2d098cf7747257e2", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/tapsmith/src/api-request.ts:139"}, "properties": {"repobilityId": "be6c3b1740fdebe0", "scanner": "scanner-primary", "fingerprint": "2d098cf7747257e2", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-a8cdf62f3e2f1952", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/tapsmith/src/session-preflight.ts:110"}, "properties": {"repobilityId": "18a516727fa133df", "scanner": "scanner-primary", "fingerprint": "a8cdf62f3e2f1952", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7aa3a95ba914ab7f", "level": "none", "message": {"text": "Commented-code block (9 lines) in packages/tapsmith/src/grpc-client.ts:299"}, "properties": {"repobilityId": "7d8e9d0974dafc34", "scanner": "scanner-primary", "fingerprint": "7aa3a95ba914ab7f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4d85db6dd525a044", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/tapsmith/src/cli.ts:354"}, "properties": {"repobilityId": "384c3c1718d0f9a9", "scanner": "scanner-primary", "fingerprint": "4d85db6dd525a044", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-6895a6357afed066", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/tapsmith/src/network.ts:174"}, "properties": {"repobilityId": "9b3b0bc4b8e8f5ec", "scanner": "scanner-primary", "fingerprint": "6895a6357afed066", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7bac78511a659572", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/tapsmith/src/network.ts:156"}, "properties": {"repobilityId": "a60a3d43979e5a8a", "scanner": "scanner-primary", "fingerprint": "7bac78511a659572", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-30515c49a85cf475", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/tapsmith/src/build-ios-agent.ts:416"}, "properties": {"repobilityId": "05b336e3cef1c19d", "scanner": "scanner-primary", "fingerprint": "30515c49a85cf475", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a06be412e8984787", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/tapsmith/src/configure-ios-network.ts:383"}, "properties": {"repobilityId": "760ea719e3f0ac6b", "scanner": "scanner-primary", "fingerprint": "a06be412e8984787", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2290dcd9e8d68420", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/tapsmith/src/device.ts:835"}, "properties": {"repobilityId": "70d8cdfe31ae817d", "scanner": "scanner-primary", "fingerprint": "2290dcd9e8d68420", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-09e0bb7f514f8d29", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/tapsmith/src/runner.ts:228"}, "properties": {"repobilityId": "1770244520b4b978", "scanner": "scanner-primary", "fingerprint": "09e0bb7f514f8d29", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-53d8cb24bcb73a5e", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/tapsmith/src/dispatcher.ts:813"}, "properties": {"repobilityId": "a5016fefe7e35ffa", "scanner": "scanner-primary", "fingerprint": "53d8cb24bcb73a5e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bf5a98af7af38fb6", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/tapsmith/src/list-devices.ts:173"}, "properties": {"repobilityId": "99dfe4cdfbe9ebb6", "scanner": "scanner-primary", "fingerprint": "bf5a98af7af38fb6", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-514d5cfa340298cb", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/tapsmith/src/__tests__/network.test.ts:237"}, "properties": {"repobilityId": "1a80ae8a69c0446c", "scanner": "scanner-primary", "fingerprint": "514d5cfa340298cb", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-fbba86d0fe9952a0", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/tapsmith/src/__tests__/api-request.test.ts:124"}, "properties": {"repobilityId": "b7a93c6aee9415c6", "scanner": "scanner-primary", "fingerprint": "fbba86d0fe9952a0", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-11ab7c7ddd77994f", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/tapsmith/src/__tests__/reporter.test.ts:433"}, "properties": {"repobilityId": "6b20d37a70860149", "scanner": "scanner-primary", "fingerprint": "11ab7c7ddd77994f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7b7915a07108324", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/tapsmith/src/__tests__/expect.test.ts:1259"}, "properties": {"repobilityId": "a99154902a6751a6", "scanner": "scanner-primary", "fingerprint": "a7b7915a07108324", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-c9725bb314029632", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/tapsmith/src/__tests__/element-handle.test.ts:1187"}, "properties": {"repobilityId": "1bd76d5f1fe86492", "scanner": "scanner-primary", "fingerprint": "c9725bb314029632", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-5ea8965a9f12b144", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/tapsmith/src/__tests__/config.test.ts:235"}, "properties": {"repobilityId": "16acbe240907e4ee", "scanner": "scanner-primary", "fingerprint": "5ea8965a9f12b144", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-06b35033498973e5", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/tapsmith/src/__tests__/show-trace-server.test.ts:45"}, "properties": {"repobilityId": "8b3d47f8b883b091", "scanner": "scanner-primary", "fingerprint": "06b35033498973e5", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-976da1929df80ebf", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/tapsmith/src/trace/trace-collector.ts:139"}, "properties": {"repobilityId": "986b0a98a4145212", "scanner": "scanner-primary", "fingerprint": "976da1929df80ebf", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d35b971c1c649966", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/tapsmith/src/trace/show-trace-server.ts:150"}, "properties": {"repobilityId": "30a6f2249e38c765", "scanner": "scanner-primary", "fingerprint": "d35b971c1c649966", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-47435da641247619", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/tapsmith/src/trace/filter-hosts.ts:33"}, "properties": {"repobilityId": "edbc464bacf955fb", "scanner": "scanner-primary", "fingerprint": "47435da641247619", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-d4a9d86a10b9ea87", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/tapsmith/src/mcp/selector-helper.ts:126"}, "properties": {"repobilityId": "95da8685554ea741", "scanner": "scanner-primary", "fingerprint": "d4a9d86a10b9ea87", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-8c7a38e82719f6de", "level": "none", "message": {"text": "Commented-code block (8 lines) in packages/tapsmith/src/ui-mode/ui-worker.ts:308"}, "properties": {"repobilityId": "5dffbde6a83d63f3", "scanner": "scanner-primary", "fingerprint": "8c7a38e82719f6de", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-645360af056fe0d5", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/tapsmith/src/ui-mode/main.tsx:222"}, "properties": {"repobilityId": "2ea1841344f174e4", "scanner": "scanner-primary", "fingerprint": "645360af056fe0d5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-163fe4e0c41c4bbb", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/tapsmith/src/ui-mode/ui-run.ts:160"}, "properties": {"repobilityId": "88d49b4e2c8b1d1b", "scanner": "scanner-primary", "fingerprint": "163fe4e0c41c4bbb", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-a7135ef2aa3d8fc8", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/tapsmith/src/ui-mode/ui-server.ts:381"}, "properties": {"repobilityId": "79f8f3f9c5477223", "scanner": "scanner-primary", "fingerprint": "a7135ef2aa3d8fc8", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-15aa49979f4253c5", "level": "none", "message": {"text": "Commented-code block (6 lines) in packages/tapsmith/src/ui-mode/hooks/use-test-tree.ts:45"}, "properties": {"repobilityId": "f6feaf5151022c3d", "scanner": "scanner-primary", "fingerprint": "15aa49979f4253c5", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-4ff3624645d51eb6", "level": "warning", "message": {"text": "`fetch()` without try/.catch or AbortSignal \u2014 packages/tapsmith/src/trace-viewer/main.tsx:49"}, "properties": {"repobilityId": "1107bdf9337a4fa1", "scanner": "scanner-primary", "fingerprint": "4ff3624645d51eb6", "layer": "quality", "severity": "medium", "confidence": 1.0, "tags": ["integrity", "fragile-runtime", "robustness"]}}, {"ruleId": "scanner-81ddb92adf3e5f2b", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/tapsmith/src/trace-viewer/components/selector-matching.ts:14"}, "properties": {"repobilityId": "f8fd3343df894276", "scanner": "scanner-primary", "fingerprint": "81ddb92adf3e5f2b", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-56facacf9261ff95", "level": "none", "message": {"text": "Commented-code block (5 lines) in packages/tapsmith/src/trace-viewer/components/ScreenshotPanel.tsx:319"}, "properties": {"repobilityId": "dad8b4f09e8eb8a1", "scanner": "scanner-primary", "fingerprint": "56facacf9261ff95", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-7e8e1ed9208b0f4e", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/tapsmith/src/trace-viewer/components/selector-pick.ts:43"}, "properties": {"repobilityId": "04331d3d3a7c8c71", "scanner": "scanner-primary", "fingerprint": "7e8e1ed9208b0f4e", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-2f4939662930e924", "level": "none", "message": {"text": "Commented-code block (7 lines) in packages/tapsmith/src/trace-viewer/components/selector-generation.ts:220"}, "properties": {"repobilityId": "cb81de85894cebe8", "scanner": "scanner-primary", "fingerprint": "2f4939662930e924", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-bb48375f393759ce", "level": "none", "message": {"text": "Commented-code block (5 lines) in e2e/tests/app-state.test.ts:3"}, "properties": {"repobilityId": "9c6d7539e2a3d0c1", "scanner": "scanner-primary", "fingerprint": "bb48375f393759ce", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-80d8b30fb2234011", "level": "none", "message": {"text": "Commented-code block (5 lines) in e2e/tests/known-bugs.test.ts:25"}, "properties": {"repobilityId": "b4f566a516c7c1ff", "scanner": "scanner-primary", "fingerprint": "80d8b30fb2234011", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-82d991ee677976f9", "level": "none", "message": {"text": "Commented-code block (12 lines) in e2e/tests/selector-regressions.test.ts:76"}, "properties": {"repobilityId": "0b3b1e0b61f086bc", "scanner": "scanner-primary", "fingerprint": "82d991ee677976f9", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-de0c329c4c9bb306", "level": "none", "message": {"text": "Commented-code block (5 lines) in e2e/tests/mirror-touch-stream-smoke.test.ts:25"}, "properties": {"repobilityId": "f3c1017b2d9d05a2", "scanner": "scanner-primary", "fingerprint": "de0c329c4c9bb306", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}, {"ruleId": "scanner-cc6fdea193f7555f", "level": "none", "message": {"text": "Commented-code block (6 lines) in e2e/tests/app-state-keychain.ios.test.ts:7"}, "properties": {"repobilityId": "c2d7ede82569f7dc", "scanner": "scanner-primary", "fingerprint": "cc6fdea193f7555f", "layer": "quality", "severity": "info", "confidence": 1.0, "tags": ["integrity", "commented-code", "dead-code"]}}]}]}