AI Slop Code RIsk Monitor

microsoft/litebox

A security-focused library OS supporting kernel- and user-mode execution

5.9 Moderate pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for microsoft/litebox, a Rust project with 3,085 GitHub stars. SynthScan examined 113,946 lines of code across 316 source files, recording 460 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 5.9 (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.

5.9
Adjusted Signal
5.9
Raw Pattern Score
100%
Time Factor
2026-10-11
Last Push
3.1K
Stars
Rust
Language
113.9K
Lines of Code
316
Files
460
Pattern Hits
2026-10-12
Scan Date
0.02
HC Hit Rate

Risk Review · v3

Use each vector to guide manual verification of the underlying findings.

Cognitive Ownership Risk 17.1/100 · LOW

Can maintainers explain intent, assumptions, and trade-offs? 391 finding(s).

Hallucinated Dependency & Supply Chain Risk 1.4/100 · LOW

Are imports declared and package/API names verified? 6 finding(s).

Agent Over-Engineering Ratio 9.1/100 · LOW

Are wrappers, guards, and repeated structures necessary? 65 finding(s).

PR Review Velocity Impact 24.3/100 · LOW

Which changes need focused human review? 460 finding(s).

What These Metrics Mean

Adjusted Signal
Legacy pattern score normalized per 1,000 scanned lines and multiplied by the repository-level time factor. It is not an estimate of AI authorship.
Raw Pattern Score
Sum of severity- and context-weighted pattern findings before applying the time factor.
Time Factor
A coarse multiplier based on repository last-push metadata. It does not identify when individual code was written.
Pattern Hits
Count of configured pattern findings. Review each location and surrounding code before acting.
HC Hit Rate
High- and critical-severity findings per scanned file. Severity is a configured detector weight, not proof of a vulnerability or authorship.
Lines / Files
Scan coverage denominators used by the legacy normalized score.

Pattern-Signal History

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.

Severity Breakdown

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.

CRITICAL 3HIGH 2MEDIUM 69LOW 386

Directory Score Breakdown

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.

Pattern Findings

The scanner identified 460 distinct pattern matches across 14 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.

Over-Commented Block361 hits · 358 pts
SeverityFileLineSnippetContext
LOWlitebox_runner_optee_on_linux_userland/src/lib.rs21 /// JSON-formatted command sequence to pass to the TACOMMENT
LOWlitebox_common_optee/src/lib.rs281/// Helper macro to define open enumerations, which it expands to structs withCOMMENT
LOWlitebox_common_optee/src/lib.rs441///COMMENT
LOWlitebox_common_optee/src/lib.rs821 pub handle_flags: TeeHandleFlag,COMMENT
LOWlitebox_common_optee/src/lib.rs1461/// OP-TEE RPC shared memory typesCOMMENT
LOWlitebox_common_optee/src/lib.rs1501 Plugin = OPTEE_MSG_RPC_CMD_PLUGIN,COMMENT
LOWlitebox_common_optee/src/lib.rs1541///COMMENT
LOWlitebox_common_optee/src/lib.rs1721///COMMENT
LOWlitebox_common_optee/src/lib.rs1741/// Unlike `OpteeMsgArgs`, all fields are plain `u32` so it can derive `FromBytes`/`IntoBytes`.COMMENT
LOWlitebox_common_optee/src/lib.rs1821 pub session: u32,COMMENT
LOWlitebox_common_optee/src/lib.rs2021///COMMENT
LOWlitebox_common_optee/src/lib.rs2401}COMMENT
LOWlitebox_common_lvbs/src/lib.rs161///COMMENT
LOWlitebox_common_lvbs/src/lib.rs841COMMENT
LOWlitebox_common_lvbs/src/lib.rs861 /// Directly set VTL0 protection on a frame range — no reservation, noCOMMENT
LOWlitebox_common_lvbs/src/lib.rs941/// Deliberately not part of [`Vtl0Gate`]: it is strictly more dangerous thanCOMMENT
LOWlitebox_common_lvbs/src/lib.rs961/// the HEKI service, which is handed only [`Vtl0Gate`].COMMENT
LOWlitebox_common_lvbs/src/lib.rs981 /// the window never reopens.COMMENT
LOWlitebox_util_log_macros/src/lib.rs21#[derive(Debug, Clone)]COMMENT
LOWlitebox_util_log_macros/src/lib.rs181 if !input.is_empty() {COMMENT
LOWlitebox_util_log_macros/src/lib.rs201/// - `mode` is `?`/`debug` for `Debug` or `%`/`display` for `Display`COMMENT
LOWlitebox_util_log_macros/src/lib.rs221/// // ...COMMENT
LOWlitebox_util_log_macros/src/lib.rs241///COMMENT
LOWlitebox_shim_optee/src/session.rs1// Copyright (c) Microsoft Corporation.COMMENT
LOWlitebox_shim_optee/src/session.rs21//! non-blockingly, run the caller's closure under it, and release onCOMMENT
LOWlitebox_shim_optee/src/session.rs41//! requiring RPCs that would give untrusted code control over secure world execution.COMMENT
LOWlitebox_shim_optee/src/session.rs61//!COMMENT
LOWlitebox_shim_optee/src/session.rs81//! ### Security ConsiderationCOMMENT
LOWlitebox_shim_optee/src/session.rs121COMMENT
LOWlitebox_shim_optee/src/session.rs161COMMENT
LOWlitebox_shim_optee/src/session.rs361 TaLoad,COMMENT
LOWlitebox_shim_optee/src/session.rs381///COMMENT
LOWlitebox_shim_optee/src/session.rs401 /// [`Self::disarm`] after the id is transferred to the session map viaCOMMENT
LOWlitebox_shim_optee/src/session.rs441 }COMMENT
LOWlitebox_shim_optee/src/session.rs461 /// Cached TA flags by UUID, populated on first successful session registration.COMMENT
LOWlitebox_shim_optee/src/session.rs501 pending_count: SpinMutex::new(0),COMMENT
LOWlitebox_shim_optee/src/session.rs601 }COMMENT
LOWlitebox_shim_optee/src/session.rs661 /// session. Returns the entry that survived the post-lock re-read soCOMMENT
LOWlitebox_shim_optee/src/session.rs761 /// inside the manager; for single-instance TAs the instance is alsoCOMMENT
LOWlitebox_shim_optee/src/session.rs881 /// instance — matched by `task_page_table_id` to distinguish theCOMMENT
LOWlitebox_shim_optee/src/session.rs921 /// Acquires the UUID-level lock for `uuid` (see [`SessionToken`] forCOMMENT
LOWlitebox_shim_optee/src/lib.rs241struct GlobalState<Platform: OpteeShimPlatform> {COMMENT
LOWlitebox_shim_optee/src/lib.rs261 /// rather than queued.COMMENT
LOWlitebox_shim_optee/src/lib.rs501 /// The entrypoints for the TA (syscall handling, context loading, etc.)COMMENT
LOWlitebox_shim_optee/src/lib.rs1621 },COMMENT
LOWlitebox_shim_optee/src/msg_handler.rs1// Copyright (c) Microsoft Corporation.COMMENT
LOWlitebox_shim_optee/src/msg_handler.rs121 let rpc = OpteeRpcArgs::from_header_and_raw_params(&rpc_header, rpc_params)?;COMMENT
LOWlitebox_shim_optee/src/msg_handler.rs141/// `rpc_num_params` is our own negotiated value from `EXCHANGE_CAPABILITIES`.COMMENT
LOWlitebox_shim_optee/src/msg_handler.rs161/// ```textCOMMENT
LOWlitebox_shim_optee/src/idk.rs201COMMENT
LOWlitebox_shim_optee/src/rpc_context.rs1// Copyright (c) Microsoft Corporation.COMMENT
LOWlitebox_shim_optee/src/rpc_context.rs21//! |<------- TA size in TMEM.size -----------|COMMENT
LOWlitebox_shim_optee/src/rpc_context.rs41//! `shm_ref`; the normal-world driver resolves it before asking the supplicantCOMMENT
LOWlitebox_shim_optee/src/loader/elf.rs1// Copyright (c) Microsoft Corporation.COMMENT
LOWlitebox_shim_optee/src/loader/ta_stack.rs21/// use `UteeParams` to pass input and out parameters. `UteeParams` supportsCOMMENT
LOWlitebox_shim_optee/src/loader/ta_stack.rs41/// [ `UteeParams::vals[3]`] 16COMMENT
LOWlitebox_shim_optee/src/syscalls/ldelf.rs141 ///COMMENT
LOWlitebox_shim_optee/src/syscalls/ldelf.rs381 } else {COMMENT
LOWlitebox_packager/src/oci.rs61 /// Host path to read the file data from.COMMENT
LOWlitebox_packager/src/oci.rs241/// 4. Otherwise falls back to the image's ENTRYPOINT/CMD as the default commandCOMMENT
301 more matches not shown…
Decorative Section Separators52 hits · 194 pts
SeverityFileLineSnippetContext
MEDIUM⚡litebox_platform_lvbs/src/lib.rs84// 0xFFFF_FFFF_FFFF_FFFF ┌─────────────────────────────────┐COMMENT
MEDIUM⚡litebox_platform_lvbs/src/lib.rs87// 0xFFFF_E200_0000_0000 ├─────────────────────────────────┤ ← KERNEL_OFFSETCOMMENT
MEDIUM⚡litebox_platform_lvbs/src/lib.rs90// 0xFFFF_E0FF_FFFF_F000 ├─────────────────────────────────┤ ← VMAP_ENDCOMMENT
MEDIUM⚡litebox_platform_lvbs/src/lib.rs93// 0xFFFF_C100_0000_0000 ├─────────────────────────────────┤ ← VMAP_STARTCOMMENT
MEDIUM⚡litebox_platform_lvbs/src/lib.rs95// 0xFFFF_C000_0000_0000 ├─────────────────────────────────┤COMMENT
MEDIUM⚡litebox_platform_lvbs/src/lib.rs104// 0xFFFF_8000_0000_0000 └─────────────────────────────────┘ ← GVA_OFFSETCOMMENT
MEDIUM⚡litebox_platform_lvbs/src/lib.rs107// 0x0000_7FFF_FFFF_F000 ┌─────────────────────────────────┐ ← USER_ADDR_MAXCOMMENT
MEDIUM⚡litebox_platform_lvbs/src/lib.rs110// 0x0000_0000_0001_0000 └─────────────────────────────────┘ ← USER_ADDR_MINCOMMENT
MEDIUMlitebox_shim_linux/src/syscalls/mm.rs501 // ── Runtime ELF syscall patching ─────────────────────────────────────COMMENT
MEDIUMlitebox_shim_linux/src/syscalls/mm.rs941 // ── Runtime patching path (unpatched binaries) ───────────────COMMENT
MEDIUMdev_bench/unixbench/unixbench_common.py19# ── UnixBench source ────────────────────────────────────────────────────────COMMENT
MEDIUMdev_bench/unixbench/unixbench_common.py42# ── Workspace / path helpers ───────────────────────────────────────────────COMMENT
MEDIUMdev_bench/unixbench/unixbench_common.py63# ── Download / build helpers ───────────────────────────────────────────────COMMENT
MEDIUMdev_bench/unixbench/unixbench_common.py128# ── Tar post-processing ───────────────────────────────────────────────────COMMENT
MEDIUMdev_bench/unixbench/prepare_unixbench.py51# ── Preparation ─────────────────────────────────────────────────────────────COMMENT
MEDIUMdev_bench/unixbench/prepare_unixbench.py184 # ── Prepare each benchmark ──────────────────────────────────────────COMMENT
MEDIUMdev_bench/unixbench/prepare_unixbench.py201 # ── Write manifest ──────────────────────────────────────────────────COMMENT
MEDIUMdev_bench/unixbench/prepare_unixbench.py221 # ── Summary ─────────────────────────────────────────────────────────COMMENT
MEDIUMdev_bench/unixbench/run_unixbench.py61# ── Benchmark Definitions ───────────────────────────────────────────────────COMMENT
MEDIUMdev_bench/unixbench/run_unixbench.py186# ── Result Parsing ──────────────────────────────────────────────────────────COMMENT
MEDIUMdev_bench/unixbench/run_unixbench.py230# ── Native Runner ───────────────────────────────────────────────────────────COMMENT
MEDIUMdev_bench/unixbench/run_unixbench.py285# ── LiteBox Runner ──────────────────────────────────────────────────────────COMMENT
MEDIUMdev_bench/unixbench/run_unixbench.py467# ── Comparison & Reporting ──────────────────────────────────────────────────COMMENT
MEDIUMdev_bench/unixbench/run_unixbench.py529# ── Path Resolution ─────────────────────────────────────────────────────────COMMENT
MEDIUMdev_bench/unixbench/run_unixbench.py576# ── Main ────────────────────────────────────────────────────────────────────COMMENT
MEDIUMdev_bench/unixbench/run_unixbench.py638 # ── Validate flags ──────────────────────────────────────────────────COMMENT
MEDIUMdev_bench/unixbench/run_unixbench.py760 # ── Run benchmarks ──────────────────────────────────────────────────COMMENT
MEDIUMdev_bench/unixbench/run_unixbench.py805 # ── Print results ───────────────────────────────────────────────────COMMENT
MEDIUMdev_bench/unixbench/run_unixbench.py810 # ── Save to JSON ────────────────────────────────────────────────────COMMENT
MEDIUMdev_bench/unixbench/run_unixbench.py836 # ── Cleanup ─────────────────────────────────────────────────────────COMMENT
MEDIUM⚡litebox_runner_lvbs/src/main.rs168/// ┌─────────────────────────────────────────────────────────────────────┐COMMENT
MEDIUM⚡litebox_runner_lvbs/src/main.rs177/// │ ┌──────────────────────────────────────────────┐ │COMMENT
MEDIUM⚡litebox_runner_lvbs/src/main.rs181/// │ └──────────────────────────────────────────────┘ │COMMENT
MEDIUM⚡litebox_runner_lvbs/src/main.rs184/// │ ┌──────────────────────────────────────────────┐ │COMMENT
MEDIUM⚡litebox_runner_lvbs/src/main.rs186/// │ └──────────────────────────────────────────────┘ │COMMENT
MEDIUM⚡litebox_runner_lvbs/src/main.rs189/// │ ┌──────────────────────────────────────────────┐ │COMMENT
MEDIUM⚡litebox_runner_lvbs/src/main.rs194/// │ └──────────────────────────────────────────────┘ │COMMENT
MEDIUM⚡litebox_runner_lvbs/src/main.rs198/// └─────────────────────────────────────────────────────────────────────┘COMMENT
MEDIUM⚡litebox_runner_lvbs/src/main.rs200/// ┌─────────────────────────────────────────────────────────────────────┐COMMENT
MEDIUMlitebox_runner_lvbs/src/main.rs218/// └─────────────────────────────────────────────────────────────────────┘COMMENT
MEDIUM⚡litebox/src/net/socket_channel.rs14//! ┌──────────────────────────────────────────────────────────────┐COMMENT
MEDIUM⚡litebox/src/net/socket_channel.rs16//! │ ┌────────────────────────────────────────────────────────┐ │COMMENT
MEDIUM⚡litebox/src/net/socket_channel.rs19//! │ └────────────────────────────────────────────────────────┘ │COMMENT
MEDIUM⚡litebox/src/net/socket_channel.rs26//! │ ┌────────────────────────────────────────────────────────┐ │COMMENT
MEDIUM⚡litebox/src/net/socket_channel.rs29//! │ └────────────────────────────────────────────────────────┘ │COMMENT
MEDIUM⚡litebox/src/net/socket_channel.rs36//! │ ┌────────────────────────────────────────────────────────┐ │COMMENT
MEDIUM⚡litebox/src/net/socket_channel.rs38//! │ └────────────────────────────────────────────────────────┘ │COMMENT
MEDIUM⚡litebox/src/net/socket_channel.rs39//! └──────────────────────────────────────────────────────────────┘COMMENT
MEDIUMlitebox/src/fs/nine_p/fcall.rs42 // ── Struct definition ─────────────COMMENT
MEDIUMlitebox/src/fs/nine_p/fcall.rs76 // ── Helper: FcallDecoder type with optional lifetime ─────────────────────COMMENT
MEDIUMlitebox/src/fs/nine_p/fcall.rs80 // ── Encode dispatch ──────────────────────────────────────────────────────COMMENT
MEDIUMlitebox/src/fs/nine_p/fcall.rs104 // ── Decode dispatch ──────────────────────────────────────────────────────COMMENT
Hallucination Indicators3 hits · 30 pts
SeverityFileLineSnippetContext
CRITICALlitebox_shim_linux/src/loader/elf.rs238 let syscall_entry_point = self.file.task.global.platform.get_syscall_entry_point();CODE
CRITICALlitebox_shim_linux/src/syscalls/process.rs821 let mut limits = self.thread.process.limits.limits.write();CODE
CRITICALlitebox_shim_linux/src/syscalls/process.rs845 Ok(self.thread.process.limits.limits.read()[resource as usize])CODE
Excessive Try-Catch Wrapping11 hits · 21 pts
SeverityFileLineSnippetContext
LOWdev_tools/lock_viewer/server.py291 except Exception:CODE
MEDIUMdev_bench/unixbench/unixbench_common.py119 print(f"Error: cargo build failed (exit {result.returncode})")CODE
MEDIUMdev_bench/unixbench/prepare_unixbench.py159 print(f"Error: packager not found at {packager}")CODE
MEDIUMdev_bench/unixbench/prepare_unixbench.py165 print(f"Error: packager not found at {packager}")CODE
MEDIUMdev_bench/unixbench/run_unixbench.py552 print(f"Error: cargo build failed (exit {result.returncode})")CODE
MEDIUMdev_bench/unixbench/run_unixbench.py645 print("Error: --windows cannot be combined with --mode native")CODE
MEDIUMdev_bench/unixbench/run_unixbench.py657 print("Error: --windows requires --prepared-dir (or a prepared/ directory)")CODE
MEDIUMdev_bench/unixbench/run_unixbench.py661 print(f"Error: prepared directory not found at {prepared_dir}")CODE
MEDIUMdev_bench/unixbench/run_unixbench.py701 print(f"Error: cargo build failed (exit {result.returncode})")CODE
MEDIUMdev_bench/unixbench/run_unixbench.py706 print(f"Error: Windows runner not found at {runner_path}")CODE
MEDIUMdev_bench/unixbench/run_unixbench.py717 print("Error: litebox_runner_linux_userland not found.")CODE
AI Slop Vocabulary6 hits · 18 pts
SeverityFileLineSnippetContext
MEDIUMlitebox_shim_optee/src/syscalls/tee.rs223 // (using its UUID) to leverage its functions.COMMENT
MEDIUMlitebox_service_heki/src/mem_integrity.rs42/// module loader could still leverage other attack mechanisms like return-oriented programming (ROP).COMMENT
MEDIUMlitebox_shim_linux/src/syscalls/process.rs41 /// The purpose of the robust futex list is to ensure that if a thread accidentally fails to unlock a futex beforeCOMMENT
MEDIUM.github/workflows/ci.yml226 # Essentially, we run a build on a target that simply does NOT haveCOMMENT
MEDIUMlitebox/src/platform/mod.rs311/// Essentially, these types indicate "user" pointers (which are allowed to be null). Platforms withCOMMENT
MEDIUMlitebox/src/platform/mod.rs585/// leverage, then be sure to take such details into account.COMMENT
Synthetic Comment Markers2 hits · 15 pts
SeverityFileLineSnippetContext
HIGHlitebox_common_linux/src/errno/generated.rs7//! [`super::Errno`] type, so as to have them all be exposed, but still keep the auto-generated codeCOMMENT
HIGHlitebox_shim_linux/src/syscalls/tests.rs242// Note the test was generated by copilot with minor fixes.COMMENT
Structural Annotation Overuse7 hits · 13 pts
SeverityFileLineSnippetContext
LOWlitebox_common_linux/src/lib.rs2432 // NOTE: This function is intended to be mostly trivial (in the future, we intend to replaceCOMMENT
LOW⚡litebox_shim_linux/src/syscalls/tests.rs741 // Step 1: W1 acquires the write lock on the main thread.COMMENT
LOW⚡litebox_shim_linux/src/syscalls/tests.rs744 // Step 2: Spawn a reader that will block (READERS_WAITING).COMMENT
LOW⚡litebox_shim_linux/src/syscalls/tests.rs751 // Step 3: Spawn W2 that will block (WRITERS_WAITING + other_writers_waiting).COMMENT
LOWlitebox_shim_linux/src/syscalls/tests.rs763 // Step 4: W1 unlocks. This triggers wake_writer_or_readers whichCOMMENT
LOWdev_bench/unixbench/README.md111### Step 1: Prepare on Linux/WSLCOMMENT
LOWdev_bench/unixbench/README.md127### Step 2: Run on WindowsCOMMENT
Verbosity Indicators4 hits · 8 pts
SeverityFileLineSnippetContext
LOW⚡litebox_shim_linux/src/syscalls/tests.rs741 // Step 1: W1 acquires the write lock on the main thread.COMMENT
LOW⚡litebox_shim_linux/src/syscalls/tests.rs744 // Step 2: Spawn a reader that will block (READERS_WAITING).COMMENT
LOW⚡litebox_shim_linux/src/syscalls/tests.rs751 // Step 3: Spawn W2 that will block (WRITERS_WAITING + other_writers_waiting).COMMENT
LOWlitebox_shim_linux/src/syscalls/tests.rs763 // Step 4: W1 unlocks. This triggers wake_writer_or_readers whichCOMMENT
TODO Padding3 hits · 4 pts
SeverityFileLineSnippetContext
LOWlitebox_platform_linux_userland/src/lib.rs1173 // TODO: implement VDSO in the shim, don't try to pass through theCOMMENT
LOWlitebox_shim_linux/src/syscalls/file.rs1961 IoctlArg::TCSETS(_) => Ok(0), // TODO: implementCODE
LOWlitebox_platform_linux_kernel/src/lib.rs59// TODO: implement pointer validation to ensure the pointers are in user space.COMMENT
Deep Nesting4 hits · 4 pts
SeverityFileLineSnippetContext
LOWdev_tools/lock_viewer/server.py54CODE
LOWdev_tools/lock_viewer/server.py115CODE
LOWdev_bench/unixbench/run_unixbench.py578CODE
LOW.github/tools/determine_semver_packages.py55CODE
Unused Imports3 hits · 3 pts
SeverityFileLineSnippetContext
LOWdev_bench/unixbench/unixbench_common.py16CODE
LOWdev_bench/unixbench/prepare_unixbench.py35CODE
LOW.github/tools/determine_semver_packages.py10CODE
Self-Referential Comments1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMdev_bench/unixbench/run_unixbench.py242 # Create a tmpdir for benchmarks that need it (fstime variants)COMMENT
Hyper-Verbose Identifiers2 hits · 2 pts
SeverityFileLineSnippetContext
LOWdev_tools/lock_viewer/server.py115def find_rust_function_bounds(CODE
LOWdev_bench/unixbench/unixbench_common.py65def ensure_unixbench_downloaded(workspace_root: Path) -> None:CODE
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippetContext
LOWdev_tools/lock_viewer/server.py75 # Check if this is a summary lineCOMMENT