AI Slop Code Risk Monitor

h4ckf0r0day/obscura

SlopCodeMonitor badge for h4ckf0r0day/obscura Adjusted legacy signal; badge bands: 25 / 50 / 75 (different from dashboard bands).

The headless browser for AI agents and web scraping

2.9 Low pattern signal View on GitHub

Open-Source Code Quality, Security and Technical Debt Review

This report summarizes scanner evidence for h4ckf0r0day/obscura, a Rust project with 29,870 GitHub stars. SynthScan examined 198,393 lines of code across 324 source files, recording 363 pattern matches distributed across 13 syntactic categories. The legacy adjusted pattern signal is 2.9 (Low 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.

2.9
Adjusted Signal
2.9
Raw Pattern Score
100%
Time Factor
2026-10-31
Last Push
29.9K
Stars
Rust
Language
198.4K
Lines of Code
324
Files
363
Pattern Hits
2026-10-31
Scan Date
0.16
HC Hit Rate

Risk Review · Payload v1

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

Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.

Cognitive Ownership Risk 7.0/100 · LOW

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

Hallucinated Dependency & Supply Chain Risk 6.4/100 · LOW

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

Agent Over-Engineering Ratio 2.5/100 · LOW

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

PR Review Velocity Impact 14.9/100 · LOW

Which changes need focused human review? 363 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 0HIGH 52MEDIUM 9LOW 302

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 363 distinct pattern matches across 13 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.

Cross-Language Confusion50 hits · 251 pts
SeverityFileLineSnippetContext
HIGHrender-repros/test_paired_corpus.py82 '\\"requested\\":null,\\"controlled_scroll\\":null}",'CODE
HIGH⚡render-repros/paired-corpus.py82 ";geometryIndex++)nodes.push(descendants[geometryIndex]);"CODE
HIGH⚡render-repros/paired-corpus.py86 "(nodeIndices.has(node.parentElement)?nodeIndices.get(node.parentElement):null),"CODE
HIGH⚡render-repros/paired-corpus.py242 "transformReasons.push('transform');"CODE
HIGH⚡render-repros/paired-corpus.py244 "transformReasons.push('translate');"CODE
HIGH⚡render-repros/paired-corpus.py246 "transformReasons.push('rotate');"CODE
HIGH⚡render-repros/paired-corpus.py248 "transformReasons.push('scale');"CODE
HIGH⚡render-repros/paired-corpus.py250 "transformReasons.push('perspective');"CODE
HIGH⚡render-repros/paired-corpus.py255 "category.candidates.push(featureProbeCandidate("CODE
HIGH⚡render-repros/paired-corpus.py259 "truncationReasons.push('text-overflow');"CODE
HIGH⚡render-repros/paired-corpus.py261 "truncationReasons.push('-webkit-line-clamp');"CODE
HIGH⚡render-repros/paired-corpus.py266 "category.candidates.push(featureProbeCandidate("CODE
HIGH⚡render-repros/paired-corpus.py465 "document_client_width:root?root.clientWidth:null,"CODE
HIGH⚡render-repros/paired-corpus.py466 "document_client_height:root?root.clientHeight:null,"CODE
HIGH⚡render-repros/paired-corpus.py467 "document_scroll_width:root?root.scrollWidth:null,"CODE
HIGH⚡render-repros/paired-corpus.py468 "document_scroll_height:root?root.scrollHeight:null,"CODE
HIGH⚡render-repros/paired-corpus.py469 "body_client_width:body?body.clientWidth:null,"CODE
HIGH⚡render-repros/paired-corpus.py470 "body_client_height:body?body.clientHeight:null,"CODE
HIGH⚡render-repros/paired-corpus.py471 "body_scroll_width:body?body.scrollWidth:null,"CODE
HIGH⚡render-repros/paired-corpus.py472 "body_scroll_height:body?body.scrollHeight:null},"CODE
HIGH⚡render-repros/paired-corpus.py473 "fonts:{supported:!!fonts,status:fonts?fonts.status:null,"CODE
HIGH⚡render-repros/paired-corpus.py474 "face_count:fonts?Array.from(fonts).length:null,"CODE
HIGH⚡render-repros/paired-corpus.py475 "ready_at_sample:fonts?fonts.status==='loaded':null},"CODE
HIGH⚡render-repros/paired-corpus.py943 document_client_width: root ? root.clientWidth : null,CODE
HIGH⚡render-repros/paired-corpus.py944 document_client_height: root ? root.clientHeight : null,CODE
HIGH⚡render-repros/paired-corpus.py945 document_scroll_width: root ? root.scrollWidth : null,CODE
HIGH⚡render-repros/paired-corpus.py946 document_scroll_height: root ? root.scrollHeight : null,CODE
HIGH⚡render-repros/paired-corpus.py947 body_client_width: body ? body.clientWidth : null,CODE
HIGH⚡render-repros/paired-corpus.py948 body_client_height: body ? body.clientHeight : null,CODE
HIGH⚡render-repros/paired-corpus.py949 body_scroll_width: body ? body.scrollWidth : null,CODE
HIGH⚡render-repros/paired-corpus.py950 body_scroll_height: body ? body.scrollHeight : null,CODE
HIGH⚡render-repros/paired-corpus.py961 status: fonts ? fonts.status : null,CODE
HIGH⚡render-repros/paired-corpus.py962 face_count: fonts ? Array.from(fonts).length : null,CODE
HIGH⚡render-repros/paired-corpus.py969 image.complete && image.naturalWidth > 0).length,CODE
HIGH⚡render-repros/paired-corpus.py971 image.complete && image.naturalWidth === 0).length,CODE
HIGH⚡render-repros/paired-corpus.py979 : null,CODE
HIGH⚡render-repros/paired-corpus.py980 root_class: root ? root.className : null,CODE
HIGH⚡render-repros/paired-corpus.py981 root_data_theme: root ? root.getAttribute("data-theme") : null,CODE
HIGH⚡render-repros/paired-corpus.py982 body_class: body ? body.className : null,CODE
HIGHrender-repros/paired-corpus.py181 "rects:rects,error:null};"CODE
HIGHrender-repros/paired-corpus.py182 "}catch(error){return {selector:selector,valid:false,count:null,"CODE
HIGHrender-repros/paired-corpus.py230 "client_rect_count:clientRectCount,computed:computed,box_quads:null};};"CODE
HIGHrender-repros/paired-corpus.py281 "source:null,coordinate_space:null,attempted_candidates:0,"CODE
HIGHrender-repros/paired-corpus.py916 : null,CODE
HIGHrender-repros/paired-corpus.py919 : null,CODE
HIGHrender-repros/paired-corpus.py2481 "as unavailable and candidate quads remain null; bounding "CODE
HIGH⚡render-repros/paired-corpus.py1337 failures.push({STRING
HIGH⚡render-repros/paired-corpus.py1339 name: error && error.name ? String(error.name) : "Error",STRING
HIGH⚡render-repros/paired-corpus.py1340 message: error && error.messageSTRING
HIGHscripts/ci/perf_smoke.py43 "(() => {let n=0;for(let i=0;i<1500;i++){let h=document.createElement('div');document.body.append(h);let r=h.attCODE
Over-Commented Block183 hits · 169 pts
SeverityFileLineSnippetContext
LOWcrates/obscura-cli/src/main.rs41 #[arg(long, global = true)]COMMENT
LOWcrates/obscura-cli/src/main.rs61 /// Pass raw flags to V8, in the same form V8/Chromium/Node acceptCOMMENT
LOWcrates/obscura-cli/src/main.rs81 #[arg(long)]COMMENT
LOWcrates/obscura-cli/src/main.rs101 #[arg(long, value_name = "N")]COMMENT
LOWcrates/obscura-cli/src/main.rs121 ready_file: Option<std::path::PathBuf>,COMMENT
LOWcrates/obscura-cli/src/main.rs141 quiet: bool,COMMENT
LOWcrates/obscura-cli/src/main.rs341/// or passed only whitespace; in those cases V8 is left untouched.COMMENT
LOWcrates/obscura-cli/src/main.rs1441 // before observing image/font readiness. Obscura resolves retainedCOMMENT
LOWcrates/obscura-cli/src/main.rs2441 DEFAULT_V8_FLAGS,COMMENT
LOWcrates/obscura-mcp/src/lib.rs181 }COMMENT
LOWcrates/obscura-mcp/src/lib.rs2941 }COMMENT
LOWcrates/obscura-browser/src/page.rs261 /// declaration order, so the frames must go first.COMMENT
LOWcrates/obscura-browser/src/page.rs281 /// viewport and survives navigation, matching device-metrics emulation.COMMENT
LOWcrates/obscura-browser/src/page.rs301 /// encoding override on `<a>`/`<area>` hrefs in legacy-charset documents.COMMENT
LOWcrates/obscura-browser/src/page.rs341 // contract. Includes `Runtime.addBinding` shims so puppeteer'sCOMMENT
LOWcrates/obscura-browser/src/page.rs1501 else {COMMENT
LOWcrates/obscura-browser/src/page.rs1901 // a suspended prior document whose allocator may reuse them.COMMENT
LOWcrates/obscura-browser/src/page.rs2361 // fetch + execute loop can blow past a Puppeteer/Playwright gotoCOMMENT
LOWcrates/obscura-browser/src/page.rs3301 }COMMENT
LOWcrates/obscura-browser/src/page.rs3741 // Seed their image/font dependencies concurrently through the pageCOMMENT
LOWcrates/obscura-browser/src/page.rs3881 if reached_idle && !terminated {COMMENT
LOWcrates/obscura-browser/src/page.rs5061 /// Register a passive callback fired for every JS `fetch()`/XHR (andCOMMENT
LOWcrates/obscura-browser/src/page.rs9241 #[tokio::test(flavor = "current_thread")]COMMENT
LOWcrates/obscura-browser/src/fork_virtual_url.rs1//! Fork-only: adopt a URL the page routed to itself.COMMENT
LOWcrates/obscura-browser/src/context.rs21 pub platform: String,COMMENT
LOWcrates/obscura-net/src/wreq_client.rs241 // Honor SSL_CERT_FILE / SSL_CERT_DIR in the stealth client too.COMMENT
LOWcrates/obscura-net/src/encoding.rs1//! Charset detection and decoding for HTTP response bodies.COMMENT
LOWcrates/obscura-cdp/tests/concurrent_navigations.rs1//! Issue #19 smoke test: 5 parallel CDP clients each performingCOMMENT
LOWcrates/obscura-cdp/tests/page_close_destroys_target.rs1//! `Page.close` closed nothing: obscura fell through to itsCOMMENT
LOW…cdp/tests/accept_thread_survives_silent_connections.rs1//! The accept thread must survive connections that never send a request head.COMMENT
LOWcrates/obscura-cdp/tests/input_mouse_event_parity.rs21 #inner { width: 700px; height: 800px; }COMMENT
LOWcrates/obscura-cdp/tests/concurrent_page_isolation.rs1//! #872 / #873 — concurrent pages over ONE CDP connection must each keep theirCOMMENT
LOW…ates/obscura-cdp/tests/dom_get_outer_html_object_id.rs1//! `DOM.getOuterHTML` is the one DOM call a CDP client makes while holding aCOMMENT
LOW…obscura-cdp/tests/concurrent_connections_heavy_page.rs1//! Issue #430 regression: concurrent CDP connections driving a subresource-heavyCOMMENT
LOWcrates/obscura-cdp/tests/scroll_event_on_assignment.rs1//! Assigning `scrollTop` / `scrollLeft` must fire a `scroll` event.COMMENT
LOW…obscura-cdp/tests/concurrent_navigations_with_fetch.rs1//! Issue #19 hard repro: 5 parallel clients with Fetch interception enabledCOMMENT
LOW…es/obscura-cdp/tests/structured_clone_crypto_parity.rs1// Regression parity for issue #389: Cloudflare managed challenges hang becauseCOMMENT
LOWcrates/obscura-cdp/tests/max_connections_cap.rs1//! `--max-connections` bounds the thread-per-connection server.COMMENT
LOW…-cdp/tests/runtime_get_properties_objectid_escaping.rs1//! `Runtime.getProperties` mints a child objectId as `parentOid + '::' + key`COMMENT
LOWcrates/obscura-cdp/src/dispatch.rs81 // Which sessions asked for each `Runtime.addBinding` name. A binding is aCOMMENT
LOWcrates/obscura-cdp/src/dispatch.rs101 // Playwright locator path described in issue #51.COMMENT
LOWcrates/obscura-cdp/src/dispatch.rs761 // Target.sendMessageToTarget. Unwrap and recurse BEFORE acquiring theCOMMENT
LOWcrates/obscura-cdp/src/dispatch.rs781 //COMMENT
LOWcrates/obscura-cdp/src/dispatch.rs1081}COMMENT
LOWcrates/obscura-cdp/src/util.rs1/// Helpers shared across CDP domain handlers.COMMENT
LOWcrates/obscura-cdp/src/util.rs21/// Embed an objectId as a JS string literal, quotes included.COMMENT
LOWcrates/obscura-cdp/src/util.rs101 // kicks in. `file` appearing anywhere except as the leading schemeCOMMENT
LOWcrates/obscura-cdp/src/server.rs21// PR #36 comment 4341743194: the deferral queue in `process_with_interception`COMMENT
LOWcrates/obscura-cdp/src/server.rs41const MAX_PENDING_WS_HANDOFFS: usize = 128;COMMENT
LOWcrates/obscura-cdp/src/server.rs421 // A connection that is accepted but never sends its request headCOMMENT
LOWcrates/obscura-cdp/src/server.rs701}COMMENT
LOWcrates/obscura-cdp/src/server.rs721/// connections per round: 350 / 619 / 826 MiB over three rounds uncapped andCOMMENT
LOWcrates/obscura-cdp/src/server.rs1041/// Cap on connections parked without a request head. Bounds the acceptCOMMENT
LOWcrates/obscura-cdp/src/server.rs2001 // Issue #19 follow-up (PR #36 maintainer's fetch-intercept repro):COMMENT
LOWcrates/obscura-cdp/src/domains/page.rs1321 WaitUntil::NetworkIdle0 => 3,COMMENT
LOWcrates/obscura-cdp/src/domains/runtime.rs401 //COMMENT
LOWcrates/obscura-cdp/src/domains/io.rs21fn io_stream_max_bytes() -> usize {COMMENT
LOWcrates/obscura-cdp/src/domains/dom.rs541 }COMMENT
LOWcrates/obscura-cdp/src/domains/dom.rs1001COMMENT
LOWcrates/obscura-cdp/src/domains/input.rs1use serde_json::{json, Value};COMMENT
123 more matches not shown…
Hyper-Verbose Identifiers88 hits · 80 pts
SeverityFileLineSnippetContext
LOWcrates/obscura-js/js/bootstrap.js272 define(Object, 'getOwnPropertyDescriptors', function getOwnPropertyDescriptors(t) {CODE
LOWcrates/obscura-js/js/bootstrap.js16716 DedicatedWorkerGlobalScope: function DedicatedWorkerGlobalScope() {},CODE
LOWrender-repros/check.py90def bidirectional_edge_distance(ours_edges, chromium_edges):CODE
LOWrender-repros/test_paired_corpus.py18 def test_canonical_light_default_motion_environment_matches(self):CODE
LOWrender-repros/test_paired_corpus.py25 def test_dark_or_reduced_environment_is_rejected(self):CODE
LOWrender-repros/test_paired_corpus.py38 def test_bottom_expression_resolves_live_document_height(self):CODE
LOWrender-repros/test_paired_corpus.py49 def test_chromium_reassert_records_settled_and_final_offsets(self):CODE
LOWrender-repros/test_paired_corpus.py77 def test_capture_report_uses_post_settle_state(self):CODE
LOWrender-repros/test_paired_corpus.py113 def test_obscura_capture_exports_final_scroll_request_to_cli(self):CODE
LOWrender-repros/test_paired_corpus.py124 def test_obscura_capture_exports_explicit_animation_sample(self):CODE
LOWrender-repros/test_paired_corpus.py128 def test_paired_state_expression_is_read_only_at_capture_boundary(self):CODE
LOWrender-repros/test_paired_corpus.py141 def test_every_capture_expression_samples_page_state_without_scrolling(self):CODE
LOWrender-repros/test_paired_corpus.py153 def test_capture_report_keeps_dom_state_and_authoritative_geometry(self):CODE
LOWrender-repros/test_paired_corpus.py170 def test_legacy_pre_settle_report_is_not_relabelled_as_capture_state(self):CODE
LOWrender-repros/test_paired_corpus.py189 def test_page_state_comparison_reports_provenance_and_geometry_deltas(self):CODE
LOWrender-repros/test_paired_corpus.py228 def test_scroll_y_parser_accepts_bottom_and_integer(self):CODE
LOWrender-repros/test_paired_corpus.py260 def test_delayed_route_at_zero_settle_is_different_live_state_and_not_fidelity(self):CODE
LOWrender-repros/test_paired_corpus.py291 def test_delayed_route_after_settle_is_comparable_despite_hashes(self):CODE
LOWrender-repros/test_paired_corpus.py323 def test_matching_contentless_canvases_are_not_fidelity_evidence(self):CODE
LOWrender-repros/test_paired_corpus.py342 def test_live_and_deterministic_modes_with_same_dom_provenance_are_comparable(self):CODE
LOWrender-repros/test_paired_corpus.py368 def test_capture_boundary_instability_excludes_otherwise_matching_state(self):CODE
LOWrender-repros/test_paired_corpus.py383 def test_one_moderate_provenance_difference_does_not_overreject(self):CODE
LOWrender-repros/test_paired_corpus.py416 def test_default_state_expressions_do_not_include_probe_work(self):CODE
LOWrender-repros/test_paired_corpus.py438 def test_feature_discovery_is_bounded_selector_free_and_avoids_nested_scroll(self):CODE
LOWrender-repros/test_paired_corpus.py464 def test_obscura_records_quad_capability_instead_of_fabricated_corners(self):CODE
LOWrender-repros/test_paired_corpus.py473 def test_chromium_cdp_attaches_content_and_border_quads_once_per_element(self):CODE
LOWrender-repros/test_paired_corpus.py518 def test_missing_chromium_cdp_session_leaves_quads_null(self):CODE
LOWrender-repros/test_paired_corpus.py532 def test_chromium_snapshot_paints_before_host_hashing(self):CODE
LOWrender-repros/test_paired_corpus.py596 def test_chromium_resource_warmup_discards_one_shot_then_yields(self):CODE
LOWrender-repros/test_paired_corpus.py616 def test_repeatable_selectors_are_passed_safely_in_one_state_expression(self):CODE
LOWrender-repros/test_paired_corpus.py664 def test_probe_comparison_reports_raw_deltas_and_invalid_errors(self):CODE
LOWrender-repros/test_paired_corpus.py758 def test_geometry_verdict_accepts_matching_bounded_subtrees(self):CODE
LOWrender-repros/test_paired_corpus.py812 def test_geometry_target_accepts_repeated_angular_id_salt_variants(self):CODE
LOWrender-repros/test_paired_corpus.py897 def test_geometry_target_rejects_one_off_generated_id_salt(self):CODE
LOWrender-repros/test_paired_corpus.py923 def test_geometry_target_rejects_repeated_semantic_id_changes(self):CODE
LOWrender-repros/test_paired_corpus.py962 def test_geometry_verdict_excludes_different_dynamic_subtree_only(self):CODE
LOWrender-repros/test_paired_corpus.py1029 def test_legacy_geometry_report_is_insufficient_for_verdict(self):CODE
LOWrender-repros/test_paired_corpus.py1062 def test_truncated_equal_subtrees_are_insufficient_for_verdict(self):CODE
LOWrender-repros/test_paired_corpus.py1108 def test_feature_comparison_reports_presence_computed_geometry_and_quad_capability(self):CODE
LOWrender-repros/test_paired_corpus.py1218 def test_explicit_sample_pauses_and_seeks_current_animations(self):CODE
LOW⚡render-repros/paired-corpus.py73def geometry_probe_javascript(selectors_expression):CODE
LOWrender-repros/paired-corpus.py329def reassert_chromium_controlled_scroll(page, scroll):CODE
LOWrender-repros/paired-corpus.py384def obscura_state_eval_expression(CODE
LOWrender-repros/paired-corpus.py492def parse_obscura_capture_report(stdout):CODE
LOWrender-repros/paired-corpus.py540def parse_obscura_scroll_report(stdout):CODE
LOWrender-repros/paired-corpus.py615def with_controlled_scroll_environment(env, scroll):CODE
LOWrender-repros/paired-corpus.py810def chromium_identity_override(session):CODE
LOWrender-repros/paired-corpus.py1028def finalize_chromium_state_hashes(state):CODE
LOWrender-repros/paired-corpus.py1045def attach_chromium_box_quads(session, state):CODE
LOWrender-repros/paired-corpus.py1133def mark_chromium_box_quads_unavailable(state):CODE
LOWrender-repros/paired-corpus.py1149def prepare_chromium_feature_probes(state, cdp_session):CODE
LOWrender-repros/paired-corpus.py1155def chromium_capture_signature(state):CODE
LOWrender-repros/paired-corpus.py1309def freeze_chromium_animations(page, sample_ms):CODE
LOWrender-repros/paired-corpus.py1442def classify_state_comparability(CODE
LOWrender-repros/paired-corpus.py1676def canonical_geometry_dom_structure(dom):CODE
LOWrender-repros/paired-corpus.py1717def split_generated_id_variance(obscura_id, chromium_id):CODE
LOWrender-repros/paired-corpus.py1861def compare_geometry_dom_structures(obscura_dom, chromium_dom):CODE
LOWrender-repros/paired-corpus.py1908def geometry_verdict_exclusions(comparisons):CODE
LOWrender-repros/paired-corpus.py1921def summarize_geometry_verdicts(comparisons):CODE
LOWrender-repros/test_check.py20 def test_absent_color_check_rejects_an_unexpected_component(self):CODE
28 more matches not shown…
AI Slop Vocabulary5 hits · 15 pts
SeverityFileLineSnippetContext
MEDIUM…-cdp/tests/runtime_get_properties_objectid_escaping.rs155// helper #709 cites as already robust - but that was the same two `replace` callsCOMMENT
MEDIUM…-cdp/tests/runtime_get_properties_objectid_escaping.rs155// helper #709 cites as already robust - but that was the same two `replace` callsCOMMENT
MEDIUMcrates/obscura-render/src/dom.rs3246 // them keeps this robust to document fragments and template wrappers.COMMENT
MEDIUMcrates/obscura-render/src/dom.rs12364 // Absolutely positioned descendants are not grid items. Preserve theCOMMENT
MEDIUMrender-repros/check.py194 # enough per-engine signal for the paired harness to exclude blank orCOMMENT
Decorative Section Separators3 hits · 9 pts
SeverityFileLineSnippetContext
MEDIUMcrates/obscura-cli/tests/mcp_client.rs124// ── minimal MCP client ────────────────────────────────────────────────────────COMMENT
MEDIUMcrates/obscura-cli/tests/mcp_client.rs229// ── tests ─────────────────────────────────────────────────────────────────────COMMENT
MEDIUMcrates/obscura-mcp/src/http.rs377 // ── routing ──────────────────────────────────────────────────────────COMMENT
Empty Error Handlers2 hits · 8 pts
SeverityFileLineSnippetContext
HIGHrender-repros/paired-corpus.py1124except Exception:CODE
HIGHscripts/ci/perf_smoke.py114except ProcessLookupError:CODE
Fake / Example Data7 hits · 7 pts
SeverityFileLineSnippetContext
LOWcrates/obscura-mcp/src/lib.rs1660 if (!label) label = el.getAttribute('aria-label') || el.getAttribute('placeholder') || '';CODE
LOWcrates/obscura-browser/src/accessibility.rs556 return node.get_attribute("placeholder").and_then(nonempty);CODE
LOWcrates/obscura-js/js/bootstrap.js5119 get placeholder() { return this.getAttribute("placeholder") || ""; }CODE
LOWcrates/obscura-js/js/bootstrap.js5120 set placeholder(v) { this.setAttribute("placeholder", v); }CODE
LOWcrates/obscura-render/src/paint.rs5452 if let Some(placeholder) = node.get_attribute("placeholder") {CODE
LOWcrates/obscura-render/src/dom.rs4132 "placeholder" | "value" => &["placeholder-shown"],CODE
LOWcrates/obscura-render/src/css.rs2926 if let Some(base) = strip_pseudo_element(sel_trim, "placeholder") {CODE
Deep Nesting8 hits · 7 pts
SeverityFileLineSnippetContext
LOWrender-repros/check.py205CODE
LOWrender-repros/paired-corpus.py1045CODE
LOWrender-repros/paired-corpus.py2245CODE
LOWrender-repros/test_check.py20CODE
LOWscripts/ci/test_repair_v8_cache.py25CODE
LOWscripts/ci/pr_policy.py113CODE
LOWscripts/ci/perf_smoke.py65CODE
LOWscripts/ci/perf_smoke.py152CODE
Verbosity Indicators4 hits · 6 pts
SeverityFileLineSnippetContext
LOWcrates/obscura-js/build.rs66 // Step 1: Generate a host snapshot to extract the deno_core sidecar data.COMMENT
LOWcrates/obscura-js/build.rs98 // Step 2: Run cross-mksnapshot to generate the target-architecture raw blob.COMMENT
LOWcrates/obscura-js/build.rs115 // Step 3: Patch the snapshot version in the raw blob header.COMMENT
LOWcrates/obscura-js/build.rs133 // Step 4: Combine the patched raw blob with the extracted sidecar.COMMENT
Structural Annotation Overuse4 hits · 6 pts
SeverityFileLineSnippetContext
LOWcrates/obscura-js/build.rs66 // Step 1: Generate a host snapshot to extract the deno_core sidecar data.COMMENT
LOWcrates/obscura-js/build.rs98 // Step 2: Run cross-mksnapshot to generate the target-architecture raw blob.COMMENT
LOWcrates/obscura-js/build.rs115 // Step 3: Patch the snapshot version in the raw blob header.COMMENT
LOWcrates/obscura-js/build.rs133 // Step 4: Combine the patched raw blob with the extracted sidecar.COMMENT
Unused Imports4 hits · 4 pts
SeverityFileLineSnippetContext
LOWscripts/ci/pr_policy.py4CODE
LOWscripts/ci/pr_policy.py9CODE
LOWscripts/ci/compare_obstacle.py4CODE
LOWscripts/ci/perf_smoke.py4CODE
Modern AI Meta-Vocabulary1 hit · 3 pts
SeverityFileLineSnippetContext
MEDIUMdocs/Markdown-extraction.md32## For RAG / LLM contextCOMMENT
Excessive Try-Catch Wrapping4 hits · 2 pts
SeverityFileLineSnippetContext
LOWrender-repros/paired-corpus.py1113 except Exception as error:CODE
LOWrender-repros/paired-corpus.py1124 except Exception:CODE
LOWrender-repros/paired-corpus.py2701 except Exception as error:CODE
LOWrender-repros/paired-corpus.py2716 except Exception as error:CODE