idb is a flexible command line interface for automating iOS simulators and devices
This report summarizes scanner evidence for facebook/idb, a Swift project with 5,362 GitHub stars. SynthScan examined 273,092 lines of code across 1651 source files, recording 1316 pattern matches distributed across 16 syntactic categories. The legacy adjusted pattern signal is 5.2 (Moderate pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 1165 finding(s).
Are imports declared and package/API names verified? 81 finding(s).
Are wrappers, guards, and repeated structures necessary? 1011 finding(s).
Which changes need focused human review? 1316 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 1316 distinct pattern matches across 16 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | homebrew_tests.py | 245 | def test_latest_is_the_newest_release(self): | CODE |
| LOW⚡ | homebrew_tests.py | 251 | def test_an_unknown_tag_is_reported(self): | CODE |
| LOW⚡ | homebrew_tests.py | 260 | def test_a_run_of_another_workflow_is_refused(self): | CODE |
| LOW⚡ | homebrew_tests.py | 269 | def test_a_malformed_run_is_refused(self): | CODE |
| LOW⚡ | homebrew_tests.py | 273 | def test_pull_request_resolves_through_its_head(self): | CODE |
| LOW⚡ | homebrew_tests.py | 338 | def test_an_artifact_redirect_without_a_location_is_reported(self): | CODE |
| LOW⚡ | homebrew_tests.py | 345 | def test_artifacts_need_a_token(self): | CODE |
| LOW⚡ | homebrew_tests.py | 350 | def test_an_exhausted_rate_limit_suggests_a_token(self): | CODE |
| LOW⚡ | homebrew_tests.py | 361 | def test_token_prefers_the_environment(self): | CODE |
| LOW⚡ | homebrew_tests.py | 368 | def test_token_falls_back_to_gh(self): | CODE |
| LOW⚡ | homebrew_tests.py | 378 | def test_matching_formulae_pass(self): | CODE |
| LOW⚡ | homebrew_tests.py | 382 | def test_a_tampered_formula_is_refused(self): | CODE |
| LOW⚡ | homebrew_tests.py | 388 | def test_a_missing_formula_is_refused(self): | CODE |
| LOW⚡ | homebrew_tests.py | 396 | def test_runner_paths_become_the_downloaded_assets(self): | CODE |
| LOW⚡ | homebrew_tests.py | 441 | def test_a_tampered_release_installs_nothing(self): | CODE |
| LOW⚡ | homebrew_tests.py | 448 | def test_a_release_without_formulae_is_reported(self): | CODE |
| LOW⚡ | homebrew_tests.py | 457 | def test_a_ci_build_points_at_the_downloaded_assets(self): | CODE |
| LOW⚡ | homebrew_tests.py | 641 | def test_cursor_stays_within_the_rows(self): | CODE |
| LOW⚡ | homebrew_tests.py | 649 | def test_enter_installs_the_selected_build(self): | CODE |
| LOW⚡ | homebrew_tests.py | 654 | def test_tab_switches_and_keeps_each_cursor(self): | CODE |
| LOW⚡ | homebrew_tests.py | 662 | def test_an_uninstallable_build_explains_itself(self): | CODE |
| LOW⚡ | homebrew_tests.py | 668 | def test_enter_on_an_empty_tab_does_nothing(self): | CODE |
| LOW | homebrew_tests.py | 288 | def test_a_short_sha_is_expanded_before_looking_up_runs(self): | CODE |
| LOW | homebrew_tests.py | 302 | def test_a_commit_without_a_passing_run_is_reported(self): | CODE |
| LOW | homebrew_tests.py | 312 | def test_anything_else_is_a_branch(self): | CODE |
| LOW | homebrew_tests.py | 326 | def test_artifact_redirect_is_followed_without_the_token(self): | CODE |
| LOW | homebrew_tests.py | 408 | def test_an_asset_the_build_lacks_is_reported(self): | CODE |
| LOW | homebrew_tests.py | 418 | def test_a_release_is_staged_and_installed_fully_qualified(self): | CODE |
| LOW | homebrew_tests.py | 469 | def test_a_run_without_the_wheel_is_reported(self): | CODE |
| LOW | homebrew_tests.py | 475 | def test_replacing_a_facebook_fb_install_needs_confirmation(self): | CODE |
| LOW | homebrew_tests.py | 490 | def test_a_confirmed_replacement_removes_the_metapackage_too(self): | CODE |
| LOW | homebrew_tests.py | 501 | def test_yes_replaces_without_asking(self): | CODE |
| LOW | homebrew_tests.py | 517 | def test_replacing_an_earlier_local_build_does_not_ask(self): | CODE |
| LOW | homebrew_tests.py | 527 | def test_reports_each_formula_and_the_local_build(self): | CODE |
| LOW | homebrew_tests.py | 546 | def test_the_local_build_is_not_reported_for_a_stable_install(self): | CODE |
| LOW | homebrew_tests.py | 556 | def test_removes_local_builds_and_restores_the_stable_formula(self): | CODE |
| LOW | homebrew_tests.py | 572 | def test_ci_rows_say_why_a_run_cannot_be_installed(self): | CODE |
| LOW | homebrew_tests.py | 601 | def test_release_rows_flag_releases_without_formulae(self): | CODE |
| LOW | homebrew_tests.py | 611 | def test_release_rows_skip_drafts_and_list_newest_first(self): | CODE |
| LOW | homebrew_tests.py | 683 | def test_errors_exit_nonzero_with_a_message(self): | CODE |
| LOW | idb/grpc/dap.py | 131 | async def read_next_dap_protocol_message(stream: StreamReader) -> bytes: | CODE |
| LOW | idb/grpc/xctrace.py | 34 | async def xctrace_drain_until_running( | CODE |
| LOW | idb/grpc/xctrace.py | 66 | def formatted_time_to_seconds(formatted_time: str | None) -> float | None: | CODE |
| LOW | idb/grpc/client.py | 259 | def _quiescence_event_from_grpc( | CODE |
| LOW | idb/grpc/client.py | 288 | def log_and_handle_exceptions(grpc_method_name: str): # pyre-ignore | CODE |
| LOW | idb/grpc/client.py | 666 | async def accessibility_wait_result( | CODE |
| LOW | idb/grpc/client.py | 699 | async def _accessibility_wait_result( | CODE |
| LOW | idb/grpc/client.py | 972 | async def clear_delivered_notifications(self, bundle_id: str) -> None: | CODE |
| LOW | idb/grpc/client.py | 1656 | async def _handle_code_coverage_in_response( | CODE |
| LOW | idb/grpc/xctest.py | 56 | def extract_paths_from_xctestrun(path: str, logger: Logger | None = None) -> list[str]: | CODE |
| LOW | idb/grpc/xctest.py | 262 | def save_activities_attachments(activity: TestActivity, path: str) -> None: | CODE |
| LOW | idb/grpc/xctest.py | 275 | def attachment_to_file_extension(attachment: TestAttachment) -> str: | CODE |
| LOW | idb/grpc/instruments.py | 18 | async def instruments_generate_bytes( | CODE |
| LOW | idb/grpc/instruments.py | 34 | async def instruments_drain_until_running( | CODE |
| LOW | idb/grpc/instruments.py | 49 | async def instruments_drain_until_stop( | CODE |
| LOW | idb/grpc/instruments.py | 67 | def translate_instruments_timings( | CODE |
| LOW | idb/grpc/management.py | 88 | async def _check_domain_socket_is_bound(path: str) -> bool: | CODE |
| LOW | idb/grpc/target.py | 75 | def screen_dimensions_to_grpc(dimensions: ScreenDimensions) -> GrpcScreenDimensions: | CODE |
| LOW | idb/grpc/install.py | 235 | async def _generate_framework_chunks( | CODE |
| LOW | idb/grpc/install.py | 265 | def select_stream_compression( | CODE |
| 875 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | project.yml | 1 | # @generated by the idb project.yml generator -- do not edit by hand. | COMMENT |
| LOW | build.sh | 241 | # skipped because no identity precedes it. | COMMENT |
| LOW | build.sh | 901 | build | COMMENT |
| LOW | …eworkBridge/SimulatorFrameworkBridge-Bridging-Header.h | 1 | /* | COMMENT |
| LOW | …rFrameworkBridge/Runtime/Private/KeyedArchivePrivate.h | 1 | /* | COMMENT |
| LOW | …atorFrameworkBridge/Runtime/Private/AXRuntimePrivate.h | 1 | /* | COMMENT |
| LOW | …rkBridge/Runtime/Private/RunningBoardServicesPrivate.h | 1 | /* | COMMENT |
| LOW | …rameworkBridge/Runtime/Private/AXPTranslationPrivate.h | 1 | /* | COMMENT |
| LOW | …mulatorFrameworkBridge/Runtime/Private/PhotosPrivate.h | 1 | /* | COMMENT |
| LOW | …ulatorFrameworkBridge/Swift/AccessibilityService.swift | 41 | private let requestMaxNodes = BridgeAXWire.Request.maxNodes.rawValue | COMMENT |
| LOW | …ulatorFrameworkBridge/Swift/AccessibilityService.swift | 61 | // Reader-derived keys (below) are spelled in the reader's own namespace, not `XC_kAXXC*`, so the two | COMMENT |
| LOW | …ulatorFrameworkBridge/Swift/AccessibilityService.swift | 121 | // rather than about any one application. | COMMENT |
| LOW | …ulatorFrameworkBridge/Swift/AccessibilityService.swift | 261 | var processIdentifier: pid_t = 0 | COMMENT |
| LOW | REPLTests/ReplRunTelemetryTests.swift | 81 | #expect(ReplRunStage.connect.rawValue == "connect") | COMMENT |
| LOW | idb/utils/contextlib.py | 161 | raise | COMMENT |
| LOW | idb/common/types.py | 281 | # caller who believes they are getting a smaller image finds out that they | COMMENT |
| LOW | idb/common/types.py | 341 | # | COMMENT |
| LOW | FBControlCore/Management/Target.swift | 81 | // MARK: - Target Protocol | COMMENT |
| LOW | FBControlCore/Subprocess/HostSubprocess.swift | 61 | } | COMMENT |
| LOW | FBControlCore/Subprocess/SubprocessInput.swift | 1 | /* | COMMENT |
| LOW | FBControlCore/Subprocess/SubprocessInput.swift | 21 | /// | COMMENT |
| LOW | FBControlCore/Subprocess/FileBackedOutput.swift | 1 | /* | COMMENT |
| LOW | …onLibTests/Tests/Unit/CompanionLibTransientTests.swift | 41 | #expect((request.testTargetAppBundleID) == nil) | COMMENT |
| LOW | …onLibTests/Tests/Unit/CompanionLibTransientTests.swift | 101 | coverageRequest: coverageRequest, | COMMENT |
| LOW | …orFrameworkBridge/SimulatorFrameworkBridgeClient.swift | 81 | /// Launches a copy of the guest that daemons see as a particular app. | COMMENT |
| LOW | …orControl/SimulatorFrameworkBridge/AXBridgeError.swift | 21 | /// The guest could not bind the private frameworks it reads through, so it can serve no request. The | COMMENT |
| LOW | FBSimulatorControl/Framebuffer/Framebuffer.swift | 41 | COMMENT | |
| LOW | FBSimulatorControl/HID/SimulatorHIDTransport.swift | 21 | /// two-finger touch, button and keyboard — and, where a target needs both, the Indigo transport | COMMENT |
| LOW | FBSimulatorControl/HID/SimulatorIndigoHID.swift | 121 | COMMENT | |
| LOW | FBSimulatorControl/HID/SimulatorDTUHIDConnection.swift | 21 | COMMENT | |
| LOW | FBSimulatorControl/HID/SimulatorDTUHIDConnection.swift | 61 | COMMENT | |
| LOW | …SimulatorControl/Commands/SimulatorAudioCommands.swift | 181 | } | COMMENT |
| LOW | …torControl/Commands/SimulatorRuntimeToolCommands.swift | 41 | COMMENT | |
| LOW | …torControl/Commands/SimulatorRuntimeToolCommands.swift | 61 | /// | COMMENT |
| LOW | FBSimulatorBridgeProtocol/BridgeAXWire.swift | 21 | case frame = "XC_kAXXCAttributeFrame" | COMMENT |
| LOW | FBSimulatorBridgeProtocol/BridgeAXWire.swift | 41 | /// `XC_kAXXC*` attribute: the guest hit-tests inline while it walks, sparing the host a round trip per | COMMENT |
| LOW | FBSimulatorBridgeProtocol/BridgeAXWire.swift | 121 | /// remedy applies — while the envelope's `error` carries the detail. An unknown or absent kind | COMMENT |
| LOW | FBSimulatorBridgeProtocol/BridgeAXClientType.swift | 1 | /* | COMMENT |
| LOW | FBSimulatorBridgeProtocol/BridgeAXClientType.swift | 61 | } | COMMENT |
| LOW | …ts/Tests/Smoke/Support/ProvidedSimulatorTestCase.swift | 21 | /// A test case for tests that need a booted simulator but do not own one. | COMMENT |
| LOW | Tools/SimScope/SimScopeRemote/SimScopeRemote.swift | 121 | /// | COMMENT |
| LOW | Tools/SimScope/SimScopeProtocol/ControlSocket.swift | 41 | /// Support that came to 107 for an ordinary home directory, so addressing a second device could | COMMENT |
| LOW | Tools/SimScope/SimScopeProtocol/AgentProtocol.swift | 41 | case hitTest(point: CGPoint) | COMMENT |
| LOW | Tools/SimScope/SimScopeProtocol/AgentProtocol.swift | 61 | /// failure of working from screenshots. | COMMENT |
| LOW | Tools/SimScope/SimScope/AXTree.swift | 41 | /// structural containers (`Any`, unlabelled images, numeric-only types) provide nothing and are | COMMENT |
| LOW | Tools/SimScope/SimScope/AXTree.swift | 61 | /// | COMMENT |
| LOW | Tools/SimScope/SimScope/AXTree.swift | 81 | /// Deliberately narrower than `blocked`. Most blocked elements are blocked for reasons that have | COMMENT |
| LOW | Tools/SimScope/SimScope/AXTree.swift | 101 | /// Not actionable for some reason other than occlusion — never a control, disabled, zero-sized. | COMMENT |
| LOW | Tools/SimScope/SimScope/AXTree.swift | 421 | /// meaningful nodes themselves (for the coverage visualization overlay). | COMMENT |
| LOW | Tools/SimScope/SimScope/DeviceWindowController.swift | 121 | COMMENT | |
| LOW | Tools/SimScope/SimScope/TreeInspector.swift | 21 | /// | COMMENT |
| LOW | Tools/SimScope/SimScope/TreeInspector.swift | 61 | private var roots: [AXOutlineNode] = [] | COMMENT |
| LOW | Tools/SimScope/SimScope/TreeInspector.swift | 241 | readTask = nil | COMMENT |
| LOW | Tools/SimScope/SimScope/TreeInspector.swift | 501 | } | COMMENT |
| LOW | Tools/SimScope/SimScope/CodeInjector.swift | 41 | /// an error — an author iterating on a snippet spends most of their runs here. | COMMENT |
| LOW | Tools/SimScope/SimScope/CodeInjector.swift | 121 | // MARK: - Running on the app's main thread | COMMENT |
| LOW | Tools/SimScope/SimScope/SimBackend.swift | 201 | /// frontmost read. | COMMENT |
| LOW | Tools/SimScope/SimScope/SimBackend.swift | 281 | case let .guestBridge(p): | COMMENT |
| LOW | Tools/SimScope/SimScope/SimulatorView.swift | 461 | COMMENT | |
| LOW | ZstdDecompress/zstddeclib.c | 81 | * header and the script 'combine.sh' combines the whole zstd source code | COMMENT |
| 117 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | build.sh | 54 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | build.sh | 56 | # ============================================================================= | COMMENT |
| MEDIUM | build.sh | 535 | # ============================================================================= | COMMENT |
| MEDIUM | build.sh | 537 | # ============================================================================= | COMMENT |
| MEDIUM | build.sh | 701 | # ============================================================================= | COMMENT |
| MEDIUM | build.sh | 703 | # ============================================================================= | COMMENT |
| MEDIUM | build.sh | 1078 | # ============================================================================= | COMMENT |
| MEDIUM | build.sh | 1080 | # ============================================================================= | COMMENT |
| MEDIUM | build.sh | 1142 | # ============================================================================= | COMMENT |
| MEDIUM | build.sh | 1144 | # ============================================================================= | COMMENT |
| MEDIUM | build.sh | 1222 | # ============================================================================= | COMMENT |
| MEDIUM | build.sh | 1224 | # ============================================================================= | COMMENT |
| MEDIUM⚡ | tests/build-test.sh | 313 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/build-test.sh | 315 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/build-test.sh | 323 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/build-test.sh | 325 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/build-test.sh | 333 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/build-test.sh | 335 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/build-test.sh | 486 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/build-test.sh | 488 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/build-test.sh | 527 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/build-test.sh | 533 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/build-test.sh | 565 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | tests/build-test.sh | 567 | # --------------------------------------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | idb/grpc/tests/xctrace_tests.py | 165 | except asyncio.CancelledError: | CODE |
| HIGH | idb/cli/main.py | 116 | except concurrent.futures.CancelledError: | CODE |
| HIGH | idb/cli/commands/accessibility.py | 572 | except asyncio.TimeoutError: | CODE |
| HIGH | idb/common/signal.py | 43 | except Exception: | CODE |
| HIGH | idb/common/companion_set.py | 50 | except OSError: | CODE |
| HIGH | idb/common/companion_set.py | 54 | except OSError: | CODE |
| HIGH | idb/common/companion_set.py | 93 | except OSError: | CODE |
| HIGH | idb/common/companion_set.py | 98 | except OSError: | CODE |
| HIGH | idb/common/tar.py | 295 | except FileExistsError: | CODE |
| HIGH | EndToEndTests/harness.py | 165 | except ProcessLookupError: | CODE |
| HIGH | EndToEndTests/harness.py | 439 | except asyncio.TimeoutError: | CODE |
| HIGH | EndToEndTests/harness.py | 898 | except OSError: | CODE |
| HIGH | EndToEndTests/harness.py | 2954 | except (BrokenPipeError, ConnectionResetError): | CODE |
| HIGH | EndToEndTests/harness.py | 3256 | except (OSError, asyncio.TimeoutError): | CODE |
| HIGH | EndToEndTests/harness.py | 1159 | except subprocess.TimeoutExpired: | CODE |
| HIGH | Benchmarks/install_bench.py | 194 | except OSError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | homebrew.py | 31 | CODE | |
| LOW | idb/grpc/hid.py | 8 | CODE | |
| LOW | idb/grpc/hid.py | 8 | CODE | |
| LOW | idb/grpc/tests/xctrace_tests.py | 7 | CODE | |
| LOW | idb/grpc/tests/dap_tests.py | 7 | CODE | |
| LOW | idb/grpc/tests/debugserver_tests.py | 7 | CODE | |
| LOW | idb/grpc/tests/stream_test_support.py | 7 | CODE | |
| LOW | idb/grpc/tests/instruments_tests.py | 7 | CODE | |
| LOW | idb/grpc/tests/wave9_management_tests.py | 7 | CODE | |
| LOW | idb/grpc/tests/launch_tests.py | 7 | CODE | |
| LOW | idb/grpc/tests/xctest_tests.py | 7 | CODE | |
| LOW | idb/grpc/tests/install_tests.py | 7 | CODE | |
| LOW | idb/grpc/tests/repl_contract_tests.py | 7 | CODE | |
| LOW | idb/grpc/tests/file_tests.py | 7 | CODE | |
| LOW | idb/utils/contextlib.py | 262 | CODE | |
| LOW | idb/cli/command_tree.py | 25 | CODE | |
| LOW | idb/cli/main.py | 31 | CODE | |
| LOW | idb/cli/tests/wave9_contract_tests.py | 7 | CODE | |
| LOW | idb/cli/tests/interactive_output_tests.py | 7 | CODE | |
| LOW | idb/cli/tests/interactive_contract_tests.py | 7 | CODE | |
| LOW | idb/cli/tests/wave9_output_tests.py | 7 | CODE | |
| LOW | idb/cli/tests/command_tree_tests.py | 14 | CODE | |
| LOW | idb/common/plugin.py | 8 | CODE | |
| LOW | idb/common/tests/wave9_lifecycle_tests.py | 7 | CODE | |
| LOW | CI/test_plan_tests.py | 6 | CODE | |
| LOW | CI/check_documentation_links.py | 8 | CODE | |
| LOW | CI/check_documentation_links_tests.py | 6 | CODE | |
| LOW | CI/dependency_lock.py | 8 | CODE | |
| LOW | CI/provision_simulator.py | 13 | CODE | |
| LOW | CI/test_plan.py | 13 | CODE | |
| LOW | CI/end_to_end_shard.py | 12 | CODE | |
| LOW | CI/binary_sizes.py | 18 | CODE | |
| LOW | CI/dependency_lock_tests.py | 6 | CODE | |
| LOW | CI/binary_sizes_tests.py | 8 | CODE | |
| LOW | CI/generate_documentation.py | 19 | CODE | |
| LOW | CI/end_to_end_shard_tests.py | 6 | CODE | |
| LOW | CI/collect_diagnostics_tests.py | 8 | CODE | |
| LOW | CI/generate_documentation_tests.py | 8 | CODE | |
| LOW | CI/collect_diagnostics.py | 11 | CODE | |
| LOW | CI/provision_simulator_tests.py | 8 | CODE | |
| LOW | EndToEndTests/test_targets.py | 8 | CODE | |
| LOW | EndToEndTests/documentation.py | 30 | CODE | |
| LOW | EndToEndTests/harness.py | 14 | CODE | |
| LOW | EndToEndTests/test_services.py | 8 | CODE | |
| LOW | EndToEndTests/test_applications.py | 8 | CODE | |
| LOW | EndToEndTests/test_applications.py | 21 | CODE | |
| LOW | EndToEndTests/harness_tests.py | 12 | CODE | |
| LOW | EndToEndTests/harness_tests.py | 20 | CODE | |
| LOW | EndToEndTests/test_files.py | 12 | CODE | |
| LOW | EndToEndTests/test_application_listing.py | 8 | CODE | |
| LOW | EndToEndTests/test_system.py | 8 | CODE | |
| LOW | EndToEndTests/test_capture.py | 8 | CODE | |
| LOW | EndToEndTests/test_demos.py | 15 | CODE | |
| LOW | EndToEndTests/accessibility_tests.py | 15 | CODE | |
| LOW | EndToEndTests/install_fixtures.py | 12 | CODE | |
| LOW | EndToEndTests/test_install.py | 13 | CODE | |
| LOW | EndToEndTests/documentation_tests.py | 13 | CODE | |
| LOW | EndToEndTests/test_accessibility.py | 17 | CODE | |
| LOW | Benchmarks/floor.py | 14 | CODE | |
| LOW | Benchmarks/install_bench.py | 51 | CODE | |
| 2 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | idb/grpc/client.py | 1966 | await self.push( | CODE |
| HIGH | idb/grpc/tests/xctrace_tests.py | 156 | stream.push(XctraceRecordResponse(log=b"during\n")) | CODE |
| HIGH | idb/grpc/tests/file_tests.py | 109 | await client.push( | CODE |
| HIGH | idb/cli/tests/interactive_output_tests.py | 392 | '{"bundle_id": "id", "name": null, "architectures": null}\n', | CODE |
| HIGH | idb/cli/commands/file.py | 281 | return await client.push( | CODE |
| HIGH | idb/cli/commands/file.py | 381 | await client.push( | CODE |
| HIGH | idb/common/tests/wave9_state_tests.py | 30 | b'[{"udid": "alpha", "is_local": false, "pid": null, ' | CODE |
| HIGH | idb/common/tests/wave9_state_tests.py | 34 | b'[{"udid": "alpha", "is_local": false, "pid": null, ' | CODE |
| HIGH | idb/common/tests/wave9_state_tests.py | 181 | b'[{"udid": "unknown", "is_local": false, "pid": null, ' | CODE |
| HIGH | EndToEndTests/test_demos.py | 156 | if shown.isHidden || shown.alpha == 0 { return false } | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | homebrew.py | 1011 | CODE | |
| LOW | homebrew.py | 760 | CODE | |
| LOW | homebrew.py | 818 | CODE | |
| LOW | idb/grpc/client.py | 458 | CODE | |
| LOW | idb/grpc/hid.py | 161 | CODE | |
| LOW | idb/grpc/xctest.py | 56 | CODE | |
| LOW | idb/grpc/status_details.py | 39 | CODE | |
| LOW | idb/grpc/management.py | 164 | CODE | |
| LOW | idb/grpc/install.py | 306 | CODE | |
| LOW | idb/grpc/tests/log_tests.py | 135 | CODE | |
| LOW | idb/grpc/tests/xctrace_tests.py | 85 | CODE | |
| LOW | idb/grpc/tests/launch_tests.py | 25 | CODE | |
| LOW | idb/utils/contextlib.py | 21 | CODE | |
| LOW | idb/utils/contextlib.py | 191 | CODE | |
| LOW | idb/cli/commands/file.py | 141 | CODE | |
| LOW | idb/common/tests/tar_tests.py | 62 | CODE | |
| LOW | idb/common/tests/wave9_state_tests.py | 103 | CODE | |
| LOW | idb/common/tests/wave9_state_tests.py | 452 | CODE | |
| LOW | CI/dependency_lock.py | 59 | CODE | |
| LOW | CI/test_plan.py | 113 | CODE | |
| LOW | CI/binary_sizes.py | 228 | CODE | |
| LOW | CI/generate_documentation.py | 505 | CODE | |
| LOW | EndToEndTests/harness.py | 1396 | CODE | |
| LOW | EndToEndTests/harness.py | 1819 | CODE | |
| LOW | EndToEndTests/harness.py | 3011 | CODE | |
| LOW | EndToEndTests/test_services.py | 62 | CODE | |
| LOW | EndToEndTests/test_services.py | 158 | CODE | |
| LOW | EndToEndTests/harness_tests.py | 1239 | CODE | |
| LOW | EndToEndTests/install_fixtures.py | 240 | CODE | |
| LOW | EndToEndTests/documentation_tests.py | 166 | CODE | |
| LOW | EndToEndTests/documentation_tests.py | 565 | CODE | |
| LOW | Benchmarks/install_bench.py | 309 | CODE | |
| LOW | Benchmarks/install_bench.py | 743 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …bTests/Tests/Unit/IDBCommandExecutorInstallTests.swift | 95 | #expect(harness.executor.storageManager.application.persistedBundleIDs == ["com.example.sample"]) | COMMENT |
| MEDIUM | …bTests/Tests/Unit/IDBCommandExecutorInstallTests.swift | 106 | #expect(try await harness.target.application.installed(bundleID: "com.example.sample").bundle.path == artifact.path. | COMMENT |
| MEDIUM | …bTests/Tests/Unit/IDBCommandExecutorInstallTests.swift | 117 | #expect(try harness.executor.storageManager.xctest.testDescriptor(withID: "com.example.sampletests").url.lastPathCom | COMMENT |
| MEDIUM | …bTests/Tests/Unit/IDBCommandExecutorInstallTests.swift | 161 | #expect(artifact.path.deletingLastPathComponent().deletingLastPathComponent().standardizedFileURL.path == harness.ex | COMMENT |
| MEDIUM | CI/generate_documentation.py | 614 | # The harness stops a recorder that is too slow to produce its first frame, | COMMENT |
| MEDIUM⚡ | CI/generate_documentation_tests.py | 866 | # The harness stops a recorder that is slow to produce frames, and the | STRING |
| MEDIUM⚡ | EndToEndTests/harness_tests.py | 1577 | # this harness does not know says no more than no verdict. | COMMENT |
| MEDIUM | EndToEndTests/harness_tests.py | 2951 | # Start the harness deadline only after a descendant owns the outputs. | COMMENT |
| MEDIUM | .github/workflows/ci.yml | 155 | # boot one itself, so this job is the harness that supplies it, named by | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | idb/grpc/client.py | 400 | except Exception as ex: | CODE |
| LOW | idb/grpc/management.py | 68 | except Exception: | CODE |
| LOW | idb/grpc/management.py | 96 | except Exception: | CODE |
| LOW | idb/cli/main.py | 93 | except Exception: | CODE |
| LOW | idb/common/logging.py | 121 | except Exception as ex: | CODE |
| LOW | idb/common/logging.py | 154 | except Exception as ex: | CODE |
| LOW | idb/common/signal.py | 43 | except Exception: | CODE |
| MEDIUM | idb/common/signal.py | 40 | def _close() -> None: | CODE |
| LOW⚡ | idb/common/companion.py | 103 | except Exception as e: | CODE |
| LOW⚡ | idb/common/companion.py | 118 | except Exception as e: | CODE |
| LOW | idb/common/companion.py | 333 | except Exception: | CODE |
| LOW | idb/common/companion.py | 353 | except Exception as e: | CODE |
| LOW | idb/common/plugin.py | 31 | except Exception: | CODE |
| LOW | idb/common/plugin.py | 106 | except Exception: | CODE |
| LOW | idb/common/plugin.py | 118 | except Exception: | CODE |
| LOW | idb/common/plugin.py | 199 | except Exception: | CODE |
| LOW | idb/common/plugin.py | 219 | except Exception: | CODE |
| LOW | idb/common/plugin.py | 240 | except Exception: | CODE |
| MEDIUM | REPL/CLI/ReplRunner.swift | 121 | print("Error: \(error)") | CODE |
| MEDIUM | REPL/CLI/ReplayCommand.swift | 88 | print("Error: \(error)") | STRING |
| MEDIUM | REPL/CLI/ReplayCommand.swift | 90 | print("Error: \(error)") | STRING |
| LOW | EndToEndTests/harness.py | 2726 | except Exception as error: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …bTests/Tests/Unit/IDBCommandExecutorInstallTests.swift | 253 | let pushed = harness.executor.storageManager.dylib.basePath.appendingPathComponent("nested/libSample.dylib") | CODE |
| CRITICAL | …ntrol/CoreDevice/SimulatorDisplayUpdatesProtocol.swift | 50 | return event.status.pushing.elements.last.map(SimulatorDisplayProtocol.report(of:)) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | idb/grpc/client.py | 931 | async def set_location(self, latitude: float, longitude: float) -> None: | CODE |
| LOW | idb/grpc/client.py | 1316 | async def set_orientation(self, orientation: HIDOrientationType) -> None: | CODE |
| LOW | idb/grpc/client.py | 1331 | async def set_hinge_angle(self, angle: float) -> None: | CODE |
| LOW | idb/grpc/tests/wave9_management_tests.py | 100 | async def _set_companions(self, *companions: CompanionInfo) -> None: | CODE |
| LOW | idb/cli/main.py | 37 | __all__ = [ | CODE |
| LOW | idb/common/types.py | 1035 | async def set_location(self, latitude: float, longitude: float) -> None: | CODE |
| LOW | idb/common/types.py | 1124 | async def set_orientation(self, orientation: HIDOrientationType) -> None: | CODE |
| LOW | idb/common/types.py | 1136 | async def set_hinge_angle(self, angle: float) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | idb/common/types.py | 499 | "placeholder": AccessibilitySearchableKey.PLACEHOLDER, | CODE |
| LOW | …nit/SimulatorFrameworkBridge/AXWireContractTests.swift | 84 | .placeholder: "placeholder", | CODE |
| LOW | FBAXCore/AccessibilityKeys.swift | 31 | case placeholder = "placeholder" | CODE |
| LOW | FBAXCore/AccessibilityKeys.swift | 90 | case placeholder = "placeholder" | CODE |
| LOW | FBAXCore/AccessibilityLegacyRendering.swift | 74 | put(placeholder, "placeholder") | CODE |
| LOW | …Tests/Tests/Unit/AccessibilitySerializationTests.swift | 1261 | for unrequested in ["identifier", "type", "frame", "enabled", "pid", "traits", "placeholder", "is_remote"] { | CODE |
| LOW | …Tests/Tests/Unit/AccessibilitySerializationTests.swift | 1319 | case .placeholder: return "placeholder" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | idb/grpc/tests/log_tests.py | 52 | # Create a mock client with mocked stub | COMMENT |
| MEDIUM | idb/grpc/tests/log_tests.py | 57 | # Create an async iterator for the messages | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | idb/grpc/client.py | 1689 | CODE | |
| LOW | idb/grpc/client.py | 1840 | CODE | |
| LOW | idb/common/types.py | 900 | CODE | |
| LOW | idb/common/types.py | 1289 | CODE | |
| LOW | CI/generate_documentation_tests.py | 102 | CODE | |
| LOW | EndToEndTests/harness.py | 604 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | build.sh | 11 | # Check if xattrs are supported on the current filesystem | COMMENT |
| LOW⚡ | build.sh | 65 | # Check if ditto is available for xattr-free copying | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | idb/utils/contextlib.py | 255 | def helper(*args, **kwds): | CODE |