Watches files and records, or triggers actions, when they change.
This report presents the forensic synthetic code analysis of facebook/watchman, a C++ project with 13,646 GitHub stars. SynthScan v2.0 examined 96,058 lines of code across 585 source files, recording 290 pattern matches distributed across 13 syntactic categories. The overall adjusted score of 3.8 places this repository in the Likely human-written band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 290 distinct pattern matches across 13 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. 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 diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | CMakeLists.txt | 61 | # Determine whether we are the git repo produced by shipit, a staging | COMMENT |
| LOW | run-tests.sh | 1 | #!/bin/bash -e | COMMENT |
| LOW | install-system-packages.sh | 1 | #!/bin/bash -e | COMMENT |
| LOW | watchman/PathUtils.cpp | 1 | /* | COMMENT |
| LOW | watchman/XattrUtils.cpp | 21 | // The following are lifted from sys/acl.h and inlined to avoid that | COMMENT |
| LOW | watchman/XattrUtils.cpp | 41 | COMMENT | |
| LOW | watchman/watchman_string.h | 81 | COMMENT | |
| LOW | watchman/ChildProcess.h | 1 | /* | COMMENT |
| LOW | watchman/ChildProcess.h | 161 | // If stdin is a pipe and stdout and stderr aren't, then it's safe to extract | COMMENT |
| LOW | watchman/bser.cpp | 21 | COMMENT | |
| LOW | watchman/PerfSample.cpp | 1 | /* | COMMENT |
| LOW | watchman/LRUCache.h | 221 | // This owns the nodes in the map | COMMENT |
| LOW | watchman/LRUCache.h | 361 | // If the key is present and satisfied, return a Future that will | COMMENT |
| LOW | watchman/Client.cpp | 1 | /* | COMMENT |
| LOW | watchman/Logging.cpp | 261 | // msvcrt abort() ultimately calls exit(3), so we shortcut that. | COMMENT |
| LOW | watchman/ThreadPool.h | 21 | // tasks that are executed in the thread pool. Contrast with | COMMENT |
| LOW | watchman/watchman_system.h | 1 | /* | COMMENT |
| LOW | watchman/watchman_system.h | 21 | // is included before this header, so we pull it in early. | COMMENT |
| LOW | watchman/watchman_system.h | 41 | #include <errno.h> | COMMENT |
| LOW | watchman/watchman_system.h | 61 | #define STDOUT_FILENO 1 | COMMENT |
| LOW | watchman/watchman_system.h | 81 | #define WATCHMAN_BUILD_INFO BuildInfo_kUpstreamRevision | COMMENT |
| LOW | watchman/watchman_system.h | 101 | #include <grp.h> | COMMENT |
| LOW | watchman/watchman_system.h | 121 | #ifdef HAVE_EXECINFO_H | COMMENT |
| LOW | watchman/watchman_system.h | 141 | (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 8)) || (__GNUC__ >= 5)) && \ | COMMENT |
| LOW | watchman/watchman_system.h | 161 | // configuration. These are helpers to make this work | COMMENT |
| LOW | watchman/watchman_system.h | 201 | } while (0) | COMMENT |
| LOW | watchman/ProcessLock.cpp | 61 | "Failed to lock pidfile {}: process {} owns it: {}, and my pid = {}", | COMMENT |
| LOW | watchman/ProcessLock.cpp | 81 | // for the name. | COMMENT |
| LOW | watchman/state.cpp | 1 | /* | COMMENT |
| LOW | watchman/ContentHash.cpp | 1 | /* | COMMENT |
| LOW | watchman/Errors.h | 61 | } | COMMENT |
| LOW | watchman/string.cpp | 1 | /* | COMMENT |
| LOW | watchman/TriggerCommand.cpp | 1 | /* | COMMENT |
| LOW | watchman/Logging.h | 161 | __FILE__, \ | COMMENT |
| LOW | watchman/stream_unix.cpp | 1 | /* | COMMENT |
| LOW | watchman/stream_unix.cpp | 21 | #ifdef HAVE_SYS_UCRED_H | COMMENT |
| LOW | watchman/PendingCollection.cpp | 161 | } | COMMENT |
| LOW | watchman/InMemoryView.cpp | 1 | /* | COMMENT |
| LOW | watchman/watchman_preprocessor.h | 1 | /* | COMMENT |
| LOW | watchman/watchman_preprocessor.h | 21 | #endif | COMMENT |
| LOW | watchman/watchman_cmd.h | 21 | } // namespace watchman | COMMENT |
| LOW | watchman/listener.cpp | 1 | /* | COMMENT |
| LOW | watchman/listener.cpp | 21 | #include "watchman/GroupLookup.h" | COMMENT |
| LOW | watchman/UserDir.cpp | 1 | /* | COMMENT |
| LOW | watchman/main.cpp | 1 | /* | COMMENT |
| LOW | watchman/main.cpp | 21 | COMMENT | |
| LOW | watchman/main.cpp | 41 | #include "watchman/fs/FileSystem.h" | COMMENT |
| LOW | watchman/main.cpp | 881 | COMMENT | |
| LOW | watchman/InMemoryView.h | 1 | /* | COMMENT |
| LOW | watchman/watcher/kqueue.cpp | 1 | /* | COMMENT |
| LOW | watchman/watcher/win32.cpp | 1 | /* | COMMENT |
| LOW | watchman/watcher/kqueue_and_fsevents.cpp | 1 | /* | COMMENT |
| LOW | watchman/watcher/inotify.cpp | 1 | /* | COMMENT |
| LOW | watchman/watcher/eden.cpp | 1 | /* | COMMENT |
| LOW | watchman/watcher/eden.cpp | 21 | #include <thrift/lib/cpp2/async/RocketClientChannel.h> | COMMENT |
| LOW | watchman/test/PathUtilsTest.cpp | 1 | /* | COMMENT |
| LOW | watchman/test/BserTest.cpp | 1 | /* | COMMENT |
| LOW | watchman/test/run.sh | 1 | #!/bin/bash | COMMENT |
| LOW | watchman/test/FailsToStartViewTest.cpp | 1 | /* | COMMENT |
| LOW | watchman/test/InMemoryViewTest.cpp | 1 | /* | COMMENT |
| 92 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | watchman/test/async/test_dead_socket.py | 33 | def test_subscription_dead_socket(self): | CODE |
| LOW | watchman/python/pywatchman_aio/__init__.py | 218 | async def receive_bilateral_response(self): | CODE |
| LOW | watchman/python/pywatchman_aio/__init__.py | 353 | def _ensure_subscription_queue_exists(self, name, root): | CODE |
| LOW | watchman/python/pywatchman_aio/__init__.py | 358 | async def _process_unilateral_response(self, response): | CODE |
| LOW | watchman/python/tests/tests.py | 101 | def test_missing_socket_file_raises_connect_error(self): | CODE |
| LOW | watchman/python/tests/tests.py | 116 | def make_deleted_windows_socket_path(self): | CODE |
| LOW | watchman/python/tests/tests.py | 119 | def make_deleted_unix_socket_path(self): | CODE |
| LOW | watchman/python/pywatchman/__init__.py | 395 | def _get_overlapped_result_ex_impl(pipe, olap, nbytes, millis, alertable): | CODE |
| LOW | watchman/integration/test_command.py | 16 | def test_unknown_commands_print_json_error(self) -> None: | CODE |
| LOW | watchman/integration/test_ignore.py | 46 | def test_ignore_overlap_vcs_ignore(self) -> None: | CODE |
| LOW | watchman/integration/test_invalid_expr.py | 41 | def test_invalid_sync_timeout(self) -> None: | CODE |
| LOW | watchman/integration/test_sock_perms.py | 131 | def test_user_not_in_sock_group(self) -> None: | CODE |
| LOW | watchman/integration/test_sock_perms.py | 163 | def test_user_previously_in_sock_group(self) -> None: | CODE |
| LOW | watchman/integration/test_sock_perms.py | 222 | def test_custom_sock_access_group(self) -> None: | CODE |
| LOW | watchman/integration/test_sock_perms.py | 230 | def test_custom_sock_access_others(self) -> None: | CODE |
| LOW | watchman/integration/test_sock_perms.py | 248 | def test_sock_access_downgrade(self) -> None: | CODE |
| LOW | watchman/integration/test_sock_perms.py | 258 | def test_sock_access_group_change(self) -> None: | CODE |
| LOW | watchman/integration/test_sock_perms.py | 281 | def test_sock_access_via_acl_user_not_in_sock_group(self) -> None: | CODE |
| LOW | watchman/integration/test_nice.py | 22 | def test_failing_to_start_when_nice(self) -> None: | CODE |
| LOW | watchman/integration/test_nice.py | 31 | def test_failing_to_start_when_nice_foreground(self) -> None: | CODE |
| LOW | watchman/integration/test_subscribe.py | 656 | def test_subscription_cleanup(self) -> None: | CODE |
| LOW | watchman/integration/test_subscribe.py | 800 | def test_resubscribe_same_name_no_error(self) -> None: | CODE |
| LOW | watchman/integration/test_subscribe.py | 841 | def test_resubscribe_same_name_no_warning(self) -> None: | CODE |
| LOW | watchman/integration/test_subscribe.py | 885 | def test_multi_client_same_name(self) -> None: | CODE |
| LOW | watchman/integration/test_watch_project.py | 17 | def make_empty_watchmanconfig(dir) -> None: | CODE |
| LOW | watchman/integration/test_glob.py | 162 | def test_glob_generator_empty(self) -> None: | CODE |
| LOW | watchman/integration/test_glob.py | 173 | def test_glob_generator_absolute(self) -> None: | CODE |
| LOW | watchman/integration/test_path_generator.py | 60 | def test_path_generator_relative_root(self) -> None: | CODE |
| LOW | watchman/integration/test_path_generator.py | 103 | def test_path_generator_empty(self) -> None: | CODE |
| LOW | watchman/integration/test_suffix_generator.py | 60 | def test_suffix_generator_empty(self) -> None: | CODE |
| LOW | watchman/integration/eden/test_eden_since.py | 59 | def test_eden_empty_relative_root(self) -> None: | CODE |
| LOW | watchman/integration/eden/test_eden_since.py | 256 | def test_eden_since_across_update(self) -> None: | CODE |
| LOW | watchman/integration/eden/test_eden_since.py | 297 | def test_eden_since_over_threshold(self) -> None: | CODE |
| LOW | watchman/integration/eden/test_eden_since.py | 357 | def test_eden_since_dotfiles_change(self) -> None: | CODE |
| LOW | watchman/integration/eden/test_eden_since.py | 387 | def test_eden_since_fresh_instance_dotfiles(self) -> None: | CODE |
| LOW | watchman/integration/eden/test_eden_glob_upper_bound.py | 45 | def test_eden_since_upper_bound(self) -> None: | CODE |
| LOW | watchman/integration/eden/test_eden_glob_upper_bound.py | 92 | def test_eden_since_empty_upper_bound(self) -> None: | CODE |
| LOW | watchman/integration/eden/test_eden_glob_upper_bound.py | 117 | def test_eden_since_upper_bound_case_insensitive(self) -> None: | CODE |
| LOW | watchman/integration/eden/test_eden_glob_upper_bound.py | 147 | def test_eden_since_upper_bound_includedotfiles(self) -> None: | CODE |
| LOW | watchman/integration/eden/test_eden_glob_upper_bound.py | 177 | def test_eden_since_upper_bound_name_escaping(self) -> None: | CODE |
| LOW | watchman/integration/eden/test_eden_glob_upper_bound.py | 204 | def test_eden_since_upper_bound_name_normalization(self) -> None: | CODE |
| LOW | watchman/integration/eden/test_eden_glob_upper_bound.py | 229 | def test_eden_since_upper_bound_name_set_normalization(self) -> None: | CODE |
| LOW | watchman/integration/eden/test_eden_glob_upper_bound.py | 256 | def test_eden_since_upper_bound_match_noescape(self) -> None: | CODE |
| LOW | watchman/integration/eden/test_eden_glob_upper_bound.py | 280 | def test_eden_since_upper_bound_match_escape(self) -> None: | CODE |
| LOW | watchman/integration/eden/test_eden_glob_upper_bound.py | 304 | def test_eden_since_upper_bound_dirname_escaping(self) -> None: | CODE |
| LOW | watchman/integration/eden/test_eden_glob_upper_bound.py | 327 | def test_eden_since_upper_bound_match_complex_pattern(self) -> None: | CODE |
| LOW | watchman/integration/eden/test_eden_journal.py | 104 | def test_two_rapid_checkouts_show_briefly_changed_files(self) -> None: | CODE |
| LOW | watchman/integration/eden/test_eden_journal.py | 161 | def test_aba_checkouts_show_briefly_changed_files(self) -> None: | CODE |
| LOW | watchman/integration/eden/test_eden_journal.py | 214 | def test_querying_with_truncated_journal_returns_fresh_instance(self) -> None: | CODE |
| LOW | watchman/integration/eden/test_eden_pathgen.py | 292 | def test_path_and_glob_dotfiles(self): | CODE |
| LOW | watchman/integration/eden/test_eden_shutdown.py | 14 | def test_shutdown_and_restart(self) -> None: | CODE |
| LOW | watchman/integration/lib/path_utils.py | 32 | def get_canonical_filesystem_path(name): | CODE |
| LOW | watchman/integration/lib/path_utils.py | 63 | def get_canonical_filesystem_path(name): | CODE |
| LOW | watchman/integration/lib/path_utils.py | 75 | def get_canonical_filesystem_path(name): | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | watchman/python/tests/tests.py | 141 | # Define a new class that derives from the input class | COMMENT |
| MEDIUM | watchman/integration/test_big.py | 21 | # Create a huge query. We're shooting for more than 2MB; the server buffer | COMMENT |
| MEDIUM | watchman/integration/test_subscribe.py | 771 | # Create a subscription | COMMENT |
| MEDIUM | watchman/integration/test_subscribe.py | 809 | # Create a subscription | COMMENT |
| MEDIUM | watchman/integration/test_subscribe.py | 826 | # Create a new subscription with the same name | COMMENT |
| MEDIUM | watchman/integration/test_subscribe.py | 850 | # Create a subscription | COMMENT |
| MEDIUM | watchman/integration/test_subscribe.py | 867 | # Create a new subscription with the same name | COMMENT |
| MEDIUM | watchman/integration/test_subscribe.py | 897 | # Create a subscription | COMMENT |
| MEDIUM | watchman/integration/test_subscribe.py | 911 | # Create a new subscription with the same name from a different client, | COMMENT |
| MEDIUM | watchman/integration/test_subscribe.py | 968 | # Create a subscription | COMMENT |
| MEDIUM | watchman/integration/test_since.py | 27 | # Create a cursor for this state | COMMENT |
| MEDIUM | watchman/integration/test_nodejs.py | 45 | # Define a new class that derives from the input class. | COMMENT |
| MEDIUM | watchman/integration/eden/test_eden_pathgen.py | 69 | # Create the file that we want to remove | COMMENT |
| MEDIUM | watchman/integration/lib/WatchmanTestCase.py | 564 | # Define a new class that derives from the input class | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | watchman/runtests.py | 52 | except Exception: | CODE |
| LOW | watchman/runtests.py | 457 | except Exception as e: | CODE |
| LOW | watchman/runtests.py | 478 | except Exception as exc: | CODE |
| LOW | watchman/runtests.py | 486 | except Exception: | CODE |
| LOW | watchman/runtests.py | 497 | except Exception as e: | CODE |
| LOW | watchman/runtests.py | 517 | except Exception as e: | CODE |
| LOW | watchman/python/pywatchman_aio/__init__.py | 286 | except Exception as ex: | CODE |
| LOW | watchman/python/pywatchman_aio/__init__.py | 325 | except Exception as ex: | CODE |
| MEDIUM | watchman/python/pywatchman_aio/__init__.py | 281 | def do_if_done(fut): | CODE |
| LOW | watchman/python/tests/tests.py | 96 | except Exception as e: | CODE |
| LOW | watchman/python/tests/tests.py | 438 | except Exception: | CODE |
| MEDIUM | watchman/python/tests/tests.py | 45 | def test_exception_handling(self): | CODE |
| LOW | watchman/python/pywatchman/__init__.py | 380 | except Exception as e: | CODE |
| LOW | watchman/python/pywatchman/__init__.py | 830 | except Exception as e: | CODE |
| MEDIUM | watchman/python/pywatchman/__init__.py | 303 | def readBytes(self, size): | CODE |
| LOW | watchman/integration/test_local_saved_state.py | 21 | except Exception: | CODE |
| MEDIUM | watchman/integration/test_local_saved_state.py | 16 | def is_ubuntu() -> bool: | CODE |
| MEDIUM | watchman/integration/test_fork.py | 46 | print("Error in child process: %s" % exc) | CODE |
| LOW | watchman/integration/test_sock_perms.py | 68 | except Exception: | CODE |
| LOW | watchman/integration/test_scm.py | 22 | except Exception: | CODE |
| MEDIUM | watchman/integration/test_scm.py | 17 | def is_ubuntu() -> bool: | CODE |
| LOW | watchman/integration/test_trigger_chdir.py | 41 | except Exception: | CODE |
| LOW | watchman/integration/lib/WatchmanTestCase.py | 161 | except Exception: | CODE |
| LOW | watchman/integration/lib/WatchmanTestCase.py | 195 | except Exception: | CODE |
| LOW | watchman/integration/lib/WatchmanTestCase.py | 264 | except Exception: | CODE |
| LOW | watchman/integration/lib/WatchmanSCMTestCase.py | 68 | except Exception as e: | CODE |
| LOW | watchman/integration/lib/WatchmanEdenTestCase.py | 106 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | watchman/integration/test_fishy.py | 37 | "mv foo bar && ln -s bar foo", | CODE |
| HIGH | watchman/integration/test_fishy.py | 57 | "touch a && mkdir d1 d2 && mv d1 d2 && mv d2/d1 . && mv a d1", | CODE |
| HIGH | watchman/integration/lib/WatchmanInstance.py | 246 | # pyre-fixme[61]: `val` is undefined, or not always defined. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | watchman/LRUCache.h | 364 | // The purpose of this function is to reduce the exposure to | COMMENT |
| LOW⚡ | watchman/rust/watchman_client/src/lib.rs | 658 | // Step 1: serialize into a bser byte buffer | COMMENT |
| LOW⚡ | watchman/rust/watchman_client/src/lib.rs | 666 | // Step 2: ask the client task to send it for us | COMMENT |
| LOW⚡ | watchman/rust/watchman_client/src/lib.rs | 676 | // Step 3: wait for the client task to give us the response | COMMENT |
| LOW⚡ | watchman/rust/watchman_client/src/lib.rs | 682 | // Step 4: sniff for an error response in the deserialized data | COMMENT |
| LOW⚡ | watchman/rust/watchman_client/src/lib.rs | 690 | // Step 5: deserialize into the caller-desired format | COMMENT |
| LOW | watchman/root/iothread.cpp | 704 | // Step 1: Process readDir results. | COMMENT |
| LOW | watchman/root/iothread.cpp | 768 | // Step 2: Handle errors. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | watchman/rust/watchman_client/src/lib.rs | 658 | // Step 1: serialize into a bser byte buffer | COMMENT |
| LOW⚡ | watchman/rust/watchman_client/src/lib.rs | 666 | // Step 2: ask the client task to send it for us | COMMENT |
| LOW⚡ | watchman/rust/watchman_client/src/lib.rs | 676 | // Step 3: wait for the client task to give us the response | COMMENT |
| LOW⚡ | watchman/rust/watchman_client/src/lib.rs | 682 | // Step 4: sniff for an error response in the deserialized data | COMMENT |
| LOW⚡ | watchman/rust/watchman_client/src/lib.rs | 690 | // Step 5: deserialize into the caller-desired format | COMMENT |
| LOW | watchman/root/iothread.cpp | 704 | // Step 1: Process readDir results. | COMMENT |
| LOW | watchman/root/iothread.cpp | 768 | // Step 2: Handle errors. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | watchman/runtests.py | 297 | CODE | |
| LOW | watchman/runtests.py | 439 | CODE | |
| LOW | watchman/python/pywatchman/pybser.py | 47 | CODE | |
| LOW | watchman/python/pywatchman/pybser.py | 94 | CODE | |
| LOW | watchman/python/pywatchman/pybser.py | 110 | CODE | |
| LOW | watchman/python/pywatchman/pybser.py | 161 | CODE | |
| LOW | watchman/python/pywatchman/pybser.py | 307 | CODE | |
| LOW | watchman/python/pywatchman/pybser.py | 413 | CODE | |
| LOW | watchman/python/pywatchman/__init__.py | 395 | CODE | |
| LOW | watchman/python/pywatchman/__init__.py | 860 | CODE | |
| LOW | watchman/integration/test_restrictions.py | 30 | CODE | |
| LOW | watchman/integration/test_watch_project.py | 24 | CODE | |
| LOW | watchman/integration/test_trigger.py | 71 | CODE | |
| LOW | watchman/integration/test_trigger.py | 75 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | watchman/IgnoreSet.cpp | 63 | // Definitely ignoring this portion of the tree | COMMENT |
| MEDIUM | watchman/python/pywatchman/__init__.py | 605 | # The test harness sets WATCHMAN_BINARY to the binary under test, | COMMENT |
| LOW | watchman/integration/test_saved_state.py | 19 | # This test does not require much so just create a super simple repo | COMMENT |
| MEDIUM | watchman/query/dirname.cpp | 152 | // We could leverage the depth parameter to generate a depth bound, e.g. `*` | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | watchman/python/publish-pypi.sh | 8 | # =============================== | COMMENT |
| MEDIUM | watchman/python/publish-pypi.sh | 10 | # =============================== | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | watchman/stream_win.cpp | 620 | // TODO: implement this for Windows | COMMENT |
| LOW | watchman/test/lib/FakeFileSystem.cpp | 173 | // TODO: implement strict case checking | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | watchman/test/async/AsyncWatchmanTestCase.py | 52 | CODE | |
| LOW | watchman/python/pywatchman/__init__.py | 860 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | watchman/integration/lib/TempDir.py | 68 | def set_keep(self, value) -> None: | CODE |