https://arxiv.org/abs/2606.28344. The end of web parsing. The beginning of scalable pixel-native search. link: https://pixelrag.ai/
This report summarizes scanner evidence for StarTrail-org/PixelRAG, a Python project with 10,249 GitHub stars. SynthScan examined 78,957 lines of code across 309 source files, recording 1207 pattern matches distributed across 21 syntactic categories. The legacy adjusted pattern signal is 26.5 (Elevated 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? 430 finding(s).
Are imports declared and package/API names verified? 167 finding(s).
Are wrappers, guards, and repeated structures necessary? 804 finding(s).
Which changes need focused human review? 1207 finding(s).
Run additional scans to build a history of the legacy pattern signal. Score changes are not a measure of AI adoption or code quality.
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 1207 distinct pattern matches across 21 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 |
|---|---|---|---|---|
| MEDIUM⚡ | embed/src/pixelrag_embed/embed.py | 747 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | embed/src/pixelrag_embed/embed.py | 749 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | embed/src/pixelrag_embed/embed.py | 758 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | embed/src/pixelrag_embed/embed.py | 760 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | embed/src/pixelrag_embed/embed.py | 1822 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | embed/src/pixelrag_embed/embed.py | 1824 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | embed/src/pixelrag_embed/embed.py | 156 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | embed/src/pixelrag_embed/embed.py | 158 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | embed/src/pixelrag_embed/embed.py | 180 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | embed/src/pixelrag_embed/embed.py | 182 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | embed/src/pixelrag_embed/embed.py | 215 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | embed/src/pixelrag_embed/embed.py | 217 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | embed/src/pixelrag_embed/embed.py | 397 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | embed/src/pixelrag_embed/embed.py | 399 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | embed/src/pixelrag_embed/embed.py | 486 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | embed/src/pixelrag_embed/embed.py | 488 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | embed/src/pixelrag_embed/embed.py | 532 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | embed/src/pixelrag_embed/embed.py | 534 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | embed/src/pixelrag_embed/embed.py | 594 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | embed/src/pixelrag_embed/embed.py | 596 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | embed/src/pixelrag_embed/embed.py | 2201 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | embed/src/pixelrag_embed/embed.py | 2203 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | embed/src/pixelrag_embed/embed.py | 2227 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | embed/src/pixelrag_embed/embed.py | 2229 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | embed/src/pixelrag_embed/embed.py | 2629 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | embed/src/pixelrag_embed/embed.py | 2631 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_department_filter.py | 14 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_department_filter.py | 16 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_department_filter.py | 54 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | tests/test_department_filter.py | 56 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | render/src/pixelrag_render/bench/bench_throughput.py | 232 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | render/src/pixelrag_render/bench/bench_throughput.py | 234 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | render/src/pixelrag_render/bench/bench_throughput.py | 382 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | render/src/pixelrag_render/bench/bench_throughput.py | 384 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | render/src/pixelrag_render/bench/bench_throughput.py | 46 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | render/src/pixelrag_render/bench/bench_throughput.py | 48 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | render/src/pixelrag_render/bench/bench_throughput.py | 127 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | render/src/pixelrag_render/bench/bench_throughput.py | 129 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | render/src/pixelrag_render/bench/bench_throughput.py | 267 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | render/src/pixelrag_render/bench/bench_throughput.py | 269 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | render/src/pixelrag_render/bench/bench_throughput.py | 489 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | render/src/pixelrag_render/bench/bench_throughput.py | 491 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | render/src/pixelrag_render/strategies/connection.py | 49 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | render/src/pixelrag_render/strategies/connection.py | 51 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | render/src/pixelrag_render/strategies/connection.py | 103 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | render/src/pixelrag_render/strategies/connection.py | 105 | # ------------------------------------------------------------------ | COMMENT |
| MEDIUM | render/src/pixelrag_render/backends/fast_cdp.py | 97 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | render/src/pixelrag_render/backends/fast_cdp.py | 99 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | render/src/pixelrag_render/backends/fast_cdp.py | 157 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | render/src/pixelrag_render/backends/fast_cdp.py | 159 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | render/src/pixelrag_render/backends/fast_cdp.py | 310 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | render/src/pixelrag_render/backends/fast_cdp.py | 312 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | render/src/pixelrag_render/backends/fast_cdp.py | 681 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | render/src/pixelrag_render/backends/fast_cdp.py | 683 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | train/generate_query_pairs.py | 65 | # ── Page filtering ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | train/train_contrastors.py | 67 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | train/train_contrastors.py | 69 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | train/train_contrastors.py | 952 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | train/train_contrastors.py | 954 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | train/train_contrastors.py | 544 | # --------------------------------------------------------------------------- | COMMENT |
| 144 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | embed/src/pixelrag_embed/embed.py | 1671 | except Exception: | CODE |
| HIGH | embed/src/pixelrag_embed/embed.py | 2178 | except OSError: | CODE |
| HIGH | embed/src/pixelrag_embed/embed.py | 1636 | except Exception: | CODE |
| HIGH | embed/src/pixelrag_embed/embed.py | 1663 | except Exception: | CODE |
| HIGH | embed/src/pixelrag_embed/embed.py | 2524 | except OSError: | CODE |
| HIGH | embed/src/pixelrag_embed/embed.py | 355 | except (json.JSONDecodeError, OSError): | CODE |
| HIGH | embed/src/pixelrag_embed/embed.py | 1348 | except Exception: | CODE |
| HIGH | embed/src/pixelrag_embed/embed_cpu.py | 95 | except (json.JSONDecodeError, OSError): | CODE |
| HIGH | render/src/pixelrag_render/chrome.py | 146 | except Exception: | CODE |
| HIGH | render/src/pixelrag_render/bench/bench_throughput.py | 123 | except OSError: | CODE |
| HIGH | render/src/pixelrag_render/bench/bench_throughput.py | 335 | except OSError: | CODE |
| HIGH | render/src/pixelrag_render/strategies/cdp_oneshot.py | 121 | except Exception: | CODE |
| HIGH | render/src/pixelrag_render/strategies/cdp_oneshot.py | 128 | except Exception: | CODE |
| HIGH | render/src/pixelrag_render/strategies/cdp_oneshot.py | 336 | except Exception: | CODE |
| HIGH | render/src/pixelrag_render/strategies/cdp_dc_single.py | 178 | except Exception: | CODE |
| HIGH | …r/src/pixelrag_render/strategies/cdp_pipelined_tabs.py | 192 | except OSError: | CODE |
| HIGH | …r/src/pixelrag_render/strategies/cdp_pipelined_tabs.py | 181 | except Exception: | CODE |
| HIGH | render/src/pixelrag_render/strategies/cdp_sequential.py | 208 | except Exception: | CODE |
| HIGH | …/src/pixelrag_render/strategies/cdp_pertile_imgwait.py | 182 | except Exception: | CODE |
| HIGH | render/src/pixelrag_render/strategies/connection.py | 162 | except Exception: | CODE |
| HIGH | render/src/pixelrag_render/strategies/connection.py | 187 | except Exception: | CODE |
| HIGH | render/src/pixelrag_render/strategies/connection.py | 191 | except Exception: | CODE |
| HIGH | render/src/pixelrag_render/strategies/connection.py | 219 | except OSError: | CODE |
| HIGH | render/src/pixelrag_render/strategies/cdp_phased.py | 238 | except Exception: | CODE |
| HIGH | render/src/pixelrag_render/strategies/cdp_phased.py | 280 | except Exception: | CODE |
| HIGH | …der/src/pixelrag_render/strategies/cdp_pipelined_dc.py | 66 | except Exception: | CODE |
| HIGH | …der/src/pixelrag_render/strategies/cdp_pipelined_dc.py | 70 | except Exception: | CODE |
| HIGH | …der/src/pixelrag_render/strategies/cdp_pipelined_dc.py | 294 | except Exception: | CODE |
| HIGH | render/src/pixelrag_render/strategies/cdp_overlap.py | 187 | except Exception: | CODE |
| HIGH | render/src/pixelrag_render/strategies/cdp_overlap.py | 191 | except Exception: | CODE |
| HIGH | render/src/pixelrag_render/strategies/cdp_overlap.py | 300 | except Exception: | CODE |
| HIGH | render/src/pixelrag_render/strategies/cdp_overlap.py | 201 | except Exception: | CODE |
| HIGH | render/src/pixelrag_render/strategies/cdp_multitab.py | 190 | except Exception: | CODE |
| HIGH | render/src/pixelrag_render/strategies/cdp_multitab.py | 303 | except Exception: | CODE |
| HIGH | render/src/pixelrag_render/strategies/cdp_multitab.py | 200 | except Exception: | CODE |
| HIGH | render/src/pixelrag_render/backends/cdp.py | 327 | except (KeyError, TypeError): | CODE |
| HIGH | render/src/pixelrag_render/backends/cdp.py | 476 | except Exception: | CODE |
| HIGH | render/src/pixelrag_render/backends/cdp.py | 847 | except Exception: | CODE |
| HIGH | render/src/pixelrag_render/backends/fast_cdp.py | 110 | except (OSError, AttributeError): | CODE |
| HIGH | render/src/pixelrag_render/backends/fast_cdp.py | 299 | except Exception: | CODE |
| HIGH | render/src/pixelrag_render/backends/fast_cdp.py | 653 | except Exception: | CODE |
| HIGH | render/src/pixelrag_render/backends/fast_cdp.py | 538 | except Exception: | CODE |
| HIGH | train/fake_data.py | 55 | except (json.JSONDecodeError, KeyError): | CODE |
| HIGH | train/prepare_hf_dataset.py | 88 | except OSError: | CODE |
| HIGH | train/prepare_hf_dataset_single_jsonl.py | 85 | except OSError: | CODE |
| HIGH | train/clean_queries_simpleqa_style.py | 177 | except json.JSONDecodeError: | CODE |
| HIGH | train/filter_self_contained.py | 168 | except Exception: | CODE |
| HIGH | train/sft/download_tiles.py | 229 | except Exception: | CODE |
| HIGH | index/src/pixelrag_index/monitor.py | 105 | except ImportError: | CODE |
| HIGH | index/src/pixelrag_index/monitor.py | 193 | except (subprocess.TimeoutExpired, Exception): | CODE |
| HIGH | index/src/pixelrag_index/monitor.py | 239 | except (subprocess.TimeoutExpired, Exception): | CODE |
| HIGH | index/src/pixelrag_index/monitor.py | 322 | except (subprocess.TimeoutExpired, Exception): | CODE |
| HIGH | index/src/pixelrag_index/monitor.py | 648 | except (ValueError, TypeError): | CODE |
| HIGH | index/src/pixelrag_index/sources/kiwix.py | 243 | except (OSError, ProcessLookupError): | CODE |
| HIGH | index/src/pixelrag_index/sources/kiwix.py | 623 | except Exception: | CODE |
| HIGH | index/src/pixelrag_index/sources/kiwix.py | 257 | except (OSError, ProcessLookupError): | CODE |
| HIGH | eval/lib/retrieval.py | 3733 | except Exception: | CODE |
| HIGH | eval/lib/retrieval.py | 3566 | except ValueError: | CODE |
| HIGH | eval/lib/simpleqa_data.py | 938 | except (ValueError, SyntaxError): | CODE |
| HIGH | eval/lib/simpleqa_data.py | 231 | except (ValueError, SyntaxError): | CODE |
| 4 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | embed/src/pixelrag_embed/embed.py | 1663 | except Exception: | CODE |
| LOW⚡ | embed/src/pixelrag_embed/embed.py | 1671 | except Exception: | CODE |
| LOW | embed/src/pixelrag_embed/embed.py | 104 | except Exception: | CODE |
| LOW | embed/src/pixelrag_embed/embed.py | 417 | except Exception as e: | CODE |
| LOW | embed/src/pixelrag_embed/embed.py | 432 | except Exception as e: | CODE |
| LOW | embed/src/pixelrag_embed/embed.py | 837 | except Exception as e: | CODE |
| LOW | embed/src/pixelrag_embed/embed.py | 928 | except Exception as e: | CODE |
| LOW | embed/src/pixelrag_embed/embed.py | 1000 | except Exception as exc: | CODE |
| LOW | embed/src/pixelrag_embed/embed.py | 1051 | except Exception as e: | CODE |
| LOW | embed/src/pixelrag_embed/embed.py | 1080 | except Exception as e: | CODE |
| LOW | embed/src/pixelrag_embed/embed.py | 1230 | except Exception: | CODE |
| LOW | embed/src/pixelrag_embed/embed.py | 1324 | except Exception: | CODE |
| LOW | embed/src/pixelrag_embed/embed.py | 1333 | except Exception: | CODE |
| LOW | embed/src/pixelrag_embed/embed.py | 1348 | except Exception: | CODE |
| LOW | embed/src/pixelrag_embed/embed.py | 1636 | except Exception: | CODE |
| LOW | embed/src/pixelrag_embed/embed.py | 1945 | except Exception as e: | CODE |
| LOW | embed/src/pixelrag_embed/embed.py | 2214 | except Exception as e: | CODE |
| LOW | embed/src/pixelrag_embed/chunk.py | 150 | except Exception as e: | CODE |
| LOW | embed/src/pixelrag_embed/chunk.py | 474 | except Exception as e: | CODE |
| LOW | render/src/pixelrag_render/render.py | 388 | except Exception as e: | CODE |
| LOW | render/src/pixelrag_render/chrome.py | 146 | except Exception: | CODE |
| LOW | render/src/pixelrag_render/chrome.py | 166 | except Exception: | CODE |
| LOW⚡ | render/src/pixelrag_render/bench/bench_throughput.py | 225 | except Exception as e: | CODE |
| LOW | render/src/pixelrag_render/bench/bench_throughput.py | 112 | except Exception: | CODE |
| LOW | render/src/pixelrag_render/bench/bench_throughput.py | 248 | except Exception: | CODE |
| LOW | render/src/pixelrag_render/bench/bench_throughput.py | 451 | except Exception as e: | CODE |
| LOW | render/src/pixelrag_render/strategies/cdp_oneshot.py | 107 | except Exception as e: | CODE |
| LOW⚡ | render/src/pixelrag_render/strategies/cdp_oneshot.py | 121 | except Exception: | CODE |
| LOW⚡ | render/src/pixelrag_render/strategies/cdp_oneshot.py | 125 | except Exception: | CODE |
| LOW⚡ | render/src/pixelrag_render/strategies/cdp_oneshot.py | 128 | except Exception: | CODE |
| LOW | render/src/pixelrag_render/strategies/cdp_oneshot.py | 213 | except Exception as e: | CODE |
| LOW | render/src/pixelrag_render/strategies/cdp_oneshot.py | 226 | except Exception: | CODE |
| LOW | render/src/pixelrag_render/strategies/cdp_oneshot.py | 249 | except Exception as e: | CODE |
| LOW | render/src/pixelrag_render/strategies/cdp_oneshot.py | 264 | except Exception as e: | CODE |
| LOW | render/src/pixelrag_render/strategies/cdp_oneshot.py | 274 | except Exception as e: | CODE |
| LOW | render/src/pixelrag_render/strategies/cdp_oneshot.py | 292 | except Exception: | CODE |
| LOW | render/src/pixelrag_render/strategies/cdp_oneshot.py | 336 | except Exception: | CODE |
| LOW | render/src/pixelrag_render/strategies/cdp_oneshot.py | 366 | except Exception as e: | CODE |
| LOW | render/src/pixelrag_render/strategies/cdp_fullpage.py | 114 | except Exception as e: | CODE |
| LOW⚡ | render/src/pixelrag_render/strategies/cdp_fullpage.py | 136 | except Exception: | CODE |
| LOW⚡ | render/src/pixelrag_render/strategies/cdp_fullpage.py | 191 | except Exception as e: | CODE |
| LOW | render/src/pixelrag_render/strategies/cdp_dc_single.py | 121 | except Exception as e: | CODE |
| LOW | render/src/pixelrag_render/strategies/cdp_dc_single.py | 135 | except Exception: | CODE |
| LOW | render/src/pixelrag_render/strategies/cdp_dc_single.py | 178 | except Exception: | CODE |
| LOW | render/src/pixelrag_render/strategies/cdp_dc_single.py | 205 | except Exception as e: | CODE |
| LOW | …r/src/pixelrag_render/strategies/cdp_pipelined_tabs.py | 168 | except Exception: | CODE |
| LOW | …r/src/pixelrag_render/strategies/cdp_pipelined_tabs.py | 181 | except Exception: | CODE |
| LOW | …r/src/pixelrag_render/strategies/cdp_pipelined_tabs.py | 247 | except Exception: | CODE |
| LOW | …r/src/pixelrag_render/strategies/cdp_pipelined_tabs.py | 300 | except Exception as e: | CODE |
| LOW | render/src/pixelrag_render/strategies/cdp_noscroll.py | 107 | except Exception as e: | CODE |
| LOW | render/src/pixelrag_render/strategies/cdp_noscroll.py | 119 | except Exception: | CODE |
| LOW | render/src/pixelrag_render/strategies/cdp_noscroll.py | 173 | except Exception as e: | CODE |
| LOW | render/src/pixelrag_render/strategies/cdp_sequential.py | 125 | except Exception as e: | CODE |
| LOW | render/src/pixelrag_render/strategies/cdp_sequential.py | 163 | except Exception: | CODE |
| LOW | render/src/pixelrag_render/strategies/cdp_sequential.py | 208 | except Exception: | CODE |
| LOW | render/src/pixelrag_render/strategies/cdp_sequential.py | 235 | except Exception as e: | CODE |
| LOW | …/src/pixelrag_render/strategies/cdp_pertile_imgwait.py | 123 | except Exception as e: | CODE |
| LOW | …/src/pixelrag_render/strategies/cdp_pertile_imgwait.py | 138 | except Exception: | CODE |
| LOW | …/src/pixelrag_render/strategies/cdp_pertile_imgwait.py | 182 | except Exception: | CODE |
| LOW | …/src/pixelrag_render/strategies/cdp_pertile_imgwait.py | 209 | except Exception as e: | CODE |
| 235 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | embed/src/pixelrag_embed/embed.py | 1667 | def _close_all_persistent_pools() -> None: | CODE |
| LOW | embed/src/pixelrag_embed/embed.py | 437 | def read_tiles_and_hash_parallel( | CODE |
| LOW | embed/src/pixelrag_embed/embed.py | 694 | def _get_tokenizer_direct_gpu(engine): | CODE |
| LOW | embed/src/pixelrag_embed/embed.py | 889 | def _embed_tile_infos_with_engine( | CODE |
| LOW | embed/src/pixelrag_embed/embed.py | 1240 | def _gpu_worker_persistent_entry( | CODE |
| LOW | tests/test_serve_ondemand_budget.py | 96 | def test_renders_are_capped_per_request(client): | CODE |
| LOW | tests/test_serve_ondemand_budget.py | 104 | def test_budget_spans_all_queries_in_one_request(client): | CODE |
| LOW | tests/test_serve_ondemand_budget.py | 120 | def test_cache_hits_do_not_spend_the_budget(client): | CODE |
| LOW⚡ | tests/test_pdf_manifest.py | 42 | def test_pdf_manifest_reports_a_full_render_as_complete(three_page_pdf, tmp_path): | CODE |
| LOW⚡ | tests/test_pdf_manifest.py | 51 | def test_pdf_manifest_reports_a_page_subset_as_incomplete(three_page_pdf, tmp_path): | CODE |
| LOW⚡ | tests/test_pdf_manifest.py | 61 | def test_pdf_manifest_records_a_full_page_range_as_incomplete(three_page_pdf, tmp_path): | CODE |
| LOW | tests/test_serve_reconstruct.py | 15 | def test_vector_ids_are_capped(): | CODE |
| LOW | tests/test_bug_fixes.py | 19 | def test_load_config_deep_merge(tmp_path): | CODE |
| LOW | tests/test_bug_fixes.py | 38 | def test_local_source_generates_valid_as_uri(tmp_path): | CODE |
| LOW | tests/test_bug_fixes.py | 56 | def test_department_of_resolves_file_uri(tmp_path): | CODE |
| LOW | tests/test_bug_fixes.py | 69 | def test_pixelshot_forwards_extract_text_for_html(monkeypatch, tmp_path): | CODE |
| LOW | tests/test_bug_fixes.py | 93 | def test_kiwix_kill_proc_posix_signals_the_process_group(): | CODE |
| LOW | tests/test_bug_fixes.py | 119 | def test_kiwix_kill_proc_without_killpg_falls_back_to_terminate(): | CODE |
| LOW | tests/test_bug_fixes.py | 133 | def test_kiwix_kill_proc_skips_an_already_exited_process(): | CODE |
| LOW | tests/test_bug_fixes.py | 146 | def test_chunk_article_converts_jpeg_to_png(tmp_path): | CODE |
| LOW⚡ | tests/test_incremental_rerun.py | 23 | def test_missing_dir_needs_render(tmp_path): | CODE |
| LOW⚡ | tests/test_incremental_rerun.py | 28 | def test_matching_source_is_reused(tmp_path): | CODE |
| LOW⚡ | tests/test_incremental_rerun.py | 34 | def test_legacy_url_field_is_reused(tmp_path): | CODE |
| LOW⚡ | tests/test_incremental_rerun.py | 41 | def test_shifted_position_forces_rerender_and_removes_stale_dir(tmp_path): | CODE |
| LOW⚡ | tests/test_incremental_rerun.py | 49 | def test_corrupt_manifest_forces_rerender(tmp_path): | CODE |
| LOW⚡ | tests/test_incremental_rerun.py | 58 | def test_corrupt_manifest_skips_article_in_chunk_stage(tmp_path): | CODE |
| LOW⚡ | tests/test_article_id.py | 36 | def test_chunk_propagates_article_id_to_chunks_json(tmp_path): | CODE |
| LOW⚡ | tests/test_article_id.py | 43 | def test_chunk_without_article_id_omits_it(tmp_path): | CODE |
| LOW⚡ | tests/test_article_id.py | 52 | def test_gpu_scan_reads_propagated_article_id(tmp_path): | CODE |
| LOW⚡ | tests/test_article_id.py | 60 | def test_gpu_scan_falls_back_to_tiles_json(tmp_path): | CODE |
| LOW⚡ | tests/test_article_id.py | 72 | def test_gpu_scan_falls_back_to_numeric_dir_name(tmp_path): | CODE |
| LOW⚡ | tests/test_article_id.py | 82 | def test_cpu_scan_reads_article_id_from_manifest(tmp_path): | CODE |
| LOW⚡ | tests/test_article_id.py | 89 | def test_cpu_non_numeric_fallback_is_reproducible(tmp_path): | CODE |
| LOW | tests/test_local_source_text.py | 22 | def test_local_source_discovers_text_files(text_dir): | CODE |
| LOW | tests/test_local_source_text.py | 34 | def test_text_files_have_correct_metadata(text_dir): | CODE |
| LOW | tests/test_local_source_text.py | 56 | def test_source_len_includes_text_files(text_dir): | CODE |
| LOW | tests/test_atlascloud_client.py | 24 | def test_atlascloud_preserves_model_and_isolates_credentials(monkeypatch, model): | CODE |
| LOW | tests/test_atlascloud_client.py | 38 | def test_atlascloud_requires_own_key(monkeypatch, key): | CODE |
| LOW | tests/test_atlascloud_client.py | 57 | def test_atlascloud_client_routes_once(monkeypatch, error): | CODE |
| LOW | tests/test_atlascloud_client.py | 104 | def test_other_readers_keep_existing_retry_behavior(monkeypatch): | CODE |
| LOW | tests/test_extract_text.py | 8 | def test_extract_text_produces_text_md(tmp_path): | CODE |
| LOW | tests/test_extract_text.py | 33 | def test_no_extract_text_by_default(tmp_path): | CODE |
| LOW | tests/test_extract_text.py | 45 | def test_extract_text_wins_over_the_turbo_path(tmp_path): | CODE |
| LOW | tests/test_cheaperinference_client.py | 23 | def test_cheaperinference_preserves_model_and_isolates_credentials(monkeypatch, model): | CODE |
| LOW | tests/test_cheaperinference_client.py | 37 | def test_cheaperinference_requires_own_key(monkeypatch, key): | CODE |
| LOW | tests/test_cheaperinference_client.py | 48 | def test_cheaperinference_client_forwards_image_messages(monkeypatch, model): | CODE |
| LOW | tests/test_local_image_render.py | 45 | def test_local_images_produce_tile_directories(tmp_path, image_dir): | CODE |
| LOW | tests/test_local_image_render.py | 94 | def test_large_image_is_resized(tmp_path): | CODE |
| LOW | tests/test_local_image_render.py | 112 | def test_small_image_not_resized(tmp_path): | CODE |
| LOW | tests/test_pixel_query_paths.py | 43 | def test_safe_stem_has_no_separators(bad_id): | CODE |
| LOW | tests/test_pixel_query_paths.py | 53 | def test_constructed_path_stays_in_output_dir(tmp_path, bad_id): | CODE |
| LOW | tests/test_pixel_query_paths.py | 64 | def test_safe_stem_preserves_normal_ids(): | CODE |
| LOW | tests/test_pixel_query_paths.py | 81 | def test_render_malicious_id_does_not_escape(tmp_path): | CODE |
| LOW | tests/test_serve_backends.py | 130 | def test_raw_search_hit_shape_and_ranking(backend): | CODE |
| LOW | tests/test_serve_backends.py | 149 | def test_article_ids_prefilter_restricts_results(backend): | CODE |
| LOW | tests/test_serve_backends.py | 160 | def test_prefilter_guarantees_k_within_department(backend): | CODE |
| LOW | tests/test_serve_backends.py | 168 | def test_filter_cache_key_reuses_positions(faiss_backend): | CODE |
| LOW⚡ | tests/test_serve_backends.py | 181 | def test_reconstruct_round_trips(backend): | CODE |
| LOW⚡ | tests/test_serve_backends.py | 188 | def test_reconstruct_unknown_id_is_none(backend): | CODE |
| LOW⚡ | tests/test_serve_backends.py | 194 | def test_reconstruct_non_integer_id_is_none(faiss_backend): | CODE |
| 119 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | embed/src/pixelrag_embed/embed.py | 55 | CODE | |
| LOW | embed/src/pixelrag_embed/embed.py | 56 | CODE | |
| LOW | tests/test_cli.py | 113 | CODE | |
| LOW | tests/test_cli.py | 114 | CODE | |
| LOW | tests/test_cli.py | 114 | CODE | |
| LOW | tests/test_cli.py | 116 | CODE | |
| LOW | render/src/pixelrag_render/__init__.py | 6 | CODE | |
| LOW | render/src/pixelrag_render/__init__.py | 6 | CODE | |
| LOW | render/src/pixelrag_render/__init__.py | 6 | CODE | |
| LOW | render/src/pixelrag_render/bench/bench_throughput.py | 20 | CODE | |
| LOW | render/src/pixelrag_render/bench/__init__.py | 11 | CODE | |
| LOW | render/src/pixelrag_render/bench/__init__.py | 14 | CODE | |
| LOW | render/src/pixelrag_render/bench/__init__.py | 17 | CODE | |
| LOW | render/src/pixelrag_render/bench/__init__.py | 20 | CODE | |
| LOW | render/src/pixelrag_render/strategies/cdp_oneshot.py | 19 | CODE | |
| LOW | render/src/pixelrag_render/strategies/cdp_fullpage.py | 8 | CODE | |
| LOW | render/src/pixelrag_render/strategies/cdp_dc_single.py | 8 | CODE | |
| LOW | …r/src/pixelrag_render/strategies/cdp_pipelined_tabs.py | 12 | CODE | |
| LOW | render/src/pixelrag_render/strategies/cdp_noscroll.py | 7 | CODE | |
| LOW | render/src/pixelrag_render/strategies/cdp_sequential.py | 7 | CODE | |
| LOW | …/src/pixelrag_render/strategies/cdp_pertile_imgwait.py | 11 | CODE | |
| LOW | render/src/pixelrag_render/strategies/__init__.py | 3 | CODE | |
| LOW | render/src/pixelrag_render/strategies/__init__.py | 3 | CODE | |
| LOW | render/src/pixelrag_render/strategies/__init__.py | 3 | CODE | |
| LOW | render/src/pixelrag_render/strategies/__init__.py | 3 | CODE | |
| LOW | render/src/pixelrag_render/strategies/__init__.py | 4 | CODE | |
| LOW | render/src/pixelrag_render/strategies/__init__.py | 5 | CODE | |
| LOW | render/src/pixelrag_render/strategies/__init__.py | 6 | CODE | |
| LOW | render/src/pixelrag_render/strategies/__init__.py | 7 | CODE | |
| LOW | render/src/pixelrag_render/strategies/__init__.py | 8 | CODE | |
| LOW | render/src/pixelrag_render/strategies/__init__.py | 8 | CODE | |
| LOW | render/src/pixelrag_render/strategies/__init__.py | 8 | CODE | |
| LOW | render/src/pixelrag_render/strategies/__init__.py | 8 | CODE | |
| LOW | render/src/pixelrag_render/strategies/cdp_directclip.py | 8 | CODE | |
| LOW | render/src/pixelrag_render/strategies/connection.py | 3 | CODE | |
| LOW | render/src/pixelrag_render/strategies/cdp_phased.py | 10 | CODE | |
| LOW | …der/src/pixelrag_render/strategies/cdp_pipelined_dc.py | 12 | CODE | |
| LOW | render/src/pixelrag_render/strategies/cdp_dynamic.py | 7 | CODE | |
| LOW | render/src/pixelrag_render/strategies/cdp_parallel.py | 8 | CODE | |
| LOW | render/src/pixelrag_render/strategies/cdp_overlap.py | 12 | CODE | |
| LOW | render/src/pixelrag_render/strategies/base.py | 8 | CODE | |
| LOW | render/src/pixelrag_render/strategies/cdp_multitab.py | 12 | CODE | |
| LOW | render/src/pixelrag_render/backends/fast_cdp.py | 22 | CODE | |
| LOW | train/upload_hf_dataset.py | 4 | CODE | |
| LOW | train/split_first5_chunks.py | 4 | CODE | |
| LOW | train/export_natural_filtered_v2_with_answer.py | 4 | CODE | |
| LOW | train/mine_text_hard_negatives.py | 14 | CODE | |
| LOW | train/filter_text_hard_negatives_llm.py | 25 | CODE | |
| LOW | train/validate_images.py | 11 | CODE | |
| LOW | train/run_filter_hard_negatives_chunks.py | 7 | CODE | |
| LOW | train/build_test_miniv8.py | 13 | CODE | |
| LOW | train/export_natural_filtered_v2.py | 4 | CODE | |
| LOW | train/run_filter_text_hard_negatives_chunks.py | 7 | CODE | |
| LOW | train/prepare_hf_dataset.py | 21 | CODE | |
| LOW | train/prepare_hf_dataset_single_jsonl.py | 15 | CODE | |
| LOW | train/extract_hf_image_shards.py | 4 | CODE | |
| LOW | train/clean_queries_simpleqa_style.py | 17 | CODE | |
| LOW | train/filter_hard_negatives_vqa.py | 22 | CODE | |
| LOW | train/upload_test_miniv7.py | 4 | CODE | |
| LOW | train/package_hf_image_shards.py | 4 | CODE | |
| 76 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | render/src/pixelrag_render/strategies/cdp_oneshot.py | 45 | .filter(i => !i.complete && i.loading !== 'lazy') | CODE |
| HIGH | render/src/pixelrag_render/strategies/cdp_oneshot.py | 322 | return r.bottom > 0 && r.top < window.innerHeight; | CODE |
| HIGH | render/src/pixelrag_render/strategies/cdp_dc_single.py | 25 | .filter(i => !i.complete && i.loading !== 'lazy') | CODE |
| HIGH | render/src/pixelrag_render/strategies/cdp_dc_single.py | 164 | return r.bottom > 0 && r.top < window.innerHeight; | CODE |
| HIGH | render/src/pixelrag_render/strategies/cdp_sequential.py | 137 | .filter(i => !i.complete && i.loading !== 'lazy') | CODE |
| HIGH | render/src/pixelrag_render/strategies/cdp_sequential.py | 194 | return r.bottom > 0 && r.top < window.innerHeight; | CODE |
| HIGH | …/src/pixelrag_render/strategies/cdp_pertile_imgwait.py | 168 | return r.bottom > 0 && r.top < window.innerHeight; | CODE |
| HIGH | render/src/pixelrag_render/strategies/cdp_phased.py | 27 | .filter(i => !i.complete && i.loading !== 'lazy') | CODE |
| HIGH | render/src/pixelrag_render/strategies/cdp_phased.py | 266 | return r.bottom > 0 && r.top < window.innerHeight; | CODE |
| HIGH | …der/src/pixelrag_render/strategies/cdp_pipelined_dc.py | 32 | .filter(i => !i.complete && i.loading !== 'lazy') | CODE |
| HIGH | …der/src/pixelrag_render/strategies/cdp_pipelined_dc.py | 280 | return r.bottom > 0 && r.top < window.innerHeight; | CODE |
| HIGH | render/src/pixelrag_render/strategies/cdp_overlap.py | 33 | .filter(i => !i.complete && i.loading !== 'lazy') | CODE |
| HIGH | render/src/pixelrag_render/strategies/cdp_overlap.py | 286 | return r.bottom > 0 && r.top < window.innerHeight; | CODE |
| HIGH | render/src/pixelrag_render/strategies/cdp_multitab.py | 33 | .filter(i => !i.complete && i.loading !== 'lazy') | CODE |
| HIGH | render/src/pixelrag_render/strategies/cdp_multitab.py | 289 | return r.bottom > 0 && r.top < window.innerHeight; | CODE |
| HIGH | render/src/pixelrag_render/backends/cdp.py | 392 | return r.bottom > 0 && r.top < window.innerHeight; | CODE |
| HIGH | render/src/pixelrag_render/backends/page_metrics.py | 33 | const offset = window.scrollY || window.pageYOffset || 0; | CODE |
| HIGH | render/src/pixelrag_render/backends/page_metrics.py | 40 | if (r.width > 0 || r.height > 0) { | CODE |
| HIGH | render/src/pixelrag_render/backends/fast_cdp.py | 71 | .filter(i => !i.complete && i.loading !== 'lazy') | CODE |
| HIGH | render/src/pixelrag_render/backends/fast_cdp.py | 524 | return r.bottom > 0 && r.top < window.innerHeight; | CODE |
| HIGH | eval/lib/screenshot.py | 203 | var dataSrc = img.getAttribute('data-src') || (img.dataset && img.dataset.src); | CODE |
| HIGH | eval/lib/screenshot.py | 204 | var dataSrcset = img.getAttribute('data-srcset') || (img.dataset && img.dataset.srcset); | CODE |
| HIGH | eval/lib/screenshot.py | 219 | .filter(function(img) { return !(img.complete && img.naturalWidth > 0); }).length; | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | embed/src/pixelrag_embed/embed.py | 220 | CODE | |
| LOW | embed/src/pixelrag_embed/embed.py | 307 | CODE | |
| LOW | embed/src/pixelrag_embed/embed.py | 889 | CODE | |
| LOW | embed/src/pixelrag_embed/embed.py | 1240 | CODE | |
| LOW | embed/src/pixelrag_embed/embed.py | 1827 | CODE | |
| LOW | embed/src/pixelrag_embed/embed.py | 2240 | CODE | |
| LOW | embed/src/pixelrag_embed/embed.py | 917 | CODE | |
| LOW | embed/src/pixelrag_embed/embed.py | 1419 | CODE | |
| LOW | embed/src/pixelrag_embed/index.py | 431 | CODE | |
| LOW | embed/src/pixelrag_embed/chunk.py | 53 | CODE | |
| LOW | embed/src/pixelrag_embed/chunk.py | 67 | CODE | |
| LOW | embed/src/pixelrag_embed/chunk.py | 261 | CODE | |
| LOW | embed/src/pixelrag_embed/chunk.py | 367 | CODE | |
| LOW | embed/src/pixelrag_embed/embed_cpu.py | 62 | CODE | |
| LOW | render/src/pixelrag_render/render.py | 192 | CODE | |
| LOW | render/src/pixelrag_render/chrome.py | 49 | CODE | |
| LOW | render/src/pixelrag_render/chrome.py | 170 | CODE | |
| LOW | render/src/pixelrag_render/chrome.py | 261 | CODE | |
| LOW | render/src/pixelrag_render/bench/bench_throughput.py | 204 | CODE | |
| LOW | render/src/pixelrag_render/bench/bench_throughput.py | 272 | CODE | |
| LOW | …r/src/pixelrag_render/strategies/cdp_pipelined_tabs.py | 72 | CODE | |
| LOW | …r/src/pixelrag_render/strategies/cdp_pipelined_tabs.py | 174 | CODE | |
| LOW | render/src/pixelrag_render/strategies/cdp_directclip.py | 121 | CODE | |
| LOW | render/src/pixelrag_render/strategies/connection.py | 58 | CODE | |
| LOW | render/src/pixelrag_render/strategies/cdp_phased.py | 151 | CODE | |
| LOW | render/src/pixelrag_render/strategies/cdp_overlap.py | 182 | CODE | |
| LOW | render/src/pixelrag_render/strategies/cdp_multitab.py | 85 | CODE | |
| LOW | render/src/pixelrag_render/strategies/cdp_multitab.py | 185 | CODE | |
| LOW | render/src/pixelrag_render/backends/cdp.py | 264 | CODE | |
| LOW | render/src/pixelrag_render/backends/cdp.py | 405 | CODE | |
| LOW | render/src/pixelrag_render/backends/fast_cdp.py | 315 | CODE | |
| LOW | render/src/pixelrag_render/backends/fast_cdp.py | 232 | CODE | |
| LOW | render/src/pixelrag_render/backends/fast_cdp.py | 435 | CODE | |
| LOW | train/export_natural_filtered_v2_with_answer.py | 50 | CODE | |
| LOW | train/generate_query_pairs.py | 363 | CODE | |
| LOW | train/mine_hard_negatives.py | 54 | CODE | |
| LOW | train/mine_text_hard_negatives.py | 69 | CODE | |
| LOW | train/filter_text_hard_negatives_llm.py | 223 | CODE | |
| LOW | train/filter_text_hard_negatives_llm.py | 540 | CODE | |
| LOW | train/validate_images.py | 56 | CODE | |
| LOW | train/fake_data.py | 32 | CODE | |
| LOW | train/export_natural_filtered_v2.py | 34 | CODE | |
| LOW | train/filter_hard.py | 78 | CODE | |
| LOW | train/filter_hard.py | 123 | CODE | |
| LOW | train/filter_passage.py | 62 | CODE | |
| LOW | train/filter_v2.py | 111 | CODE | |
| LOW | train/filter_v2.py | 151 | CODE | |
| LOW | train/clean_queries_simpleqa_style.py | 446 | CODE | |
| LOW | train/train_contrastors.py | 289 | CODE | |
| LOW | train/train_contrastors.py | 431 | CODE | |
| LOW | train/train_contrastors.py | 1029 | CODE | |
| LOW | train/train_contrastors.py | 1137 | CODE | |
| LOW | train/train_contrastors.py | 1207 | CODE | |
| LOW | train/train_contrastors.py | 1479 | CODE | |
| LOW | train/train_contrastors.py | 1762 | CODE | |
| LOW | train/train_contrastors.py | 561 | CODE | |
| LOW | train/train_contrastors.py | 698 | CODE | |
| LOW | train/train_contrastors.py | 1161 | CODE | |
| LOW | train/train_contrastors.py | 2780 | CODE | |
| LOW | train/train_contrastors.py | 3064 | CODE | |
| 83 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | render/src/pixelrag_render/strategies/cdp_oneshot.py | 0 | const waiteagerimgs = promise.all( array.from(document.images) .filter(i => !i.complete && i.loading !== 'lazy') .map(i | STRING |
| HIGH | render/src/pixelrag_render/strategies/cdp_dc_single.py | 0 | const waiteagerimgs = promise.all( array.from(document.images) .filter(i => !i.complete && i.loading !== 'lazy') .map(i | STRING |
| HIGH | render/src/pixelrag_render/strategies/cdp_sequential.py | 0 | const waiteagerimgs = promise.all( array.from(document.images) .filter(i => !i.complete && i.loading !== 'lazy') .map(i | STRING |
| HIGH | render/src/pixelrag_render/strategies/cdp_phased.py | 0 | const waiteagerimgs = promise.all( array.from(document.images) .filter(i => !i.complete && i.loading !== 'lazy') .map(i | STRING |
| HIGH | …der/src/pixelrag_render/strategies/cdp_pipelined_dc.py | 0 | const waiteagerimgs = promise.all( array.from(document.images) .filter(i => !i.complete && i.loading !== 'lazy') .map(i | STRING |
| HIGH | render/src/pixelrag_render/strategies/cdp_overlap.py | 0 | const waiteagerimgs = promise.all( array.from(document.images) .filter(i => !i.complete && i.loading !== 'lazy') .map(i | STRING |
| HIGH | render/src/pixelrag_render/strategies/cdp_multitab.py | 0 | const waiteagerimgs = promise.all( array.from(document.images) .filter(i => !i.complete && i.loading !== 'lazy') .map(i | STRING |
| HIGH | render/src/pixelrag_render/backends/fast_cdp.py | 0 | const waiteagerimgs = promise.all( array.from(document.images) .filter(i => !i.complete && i.loading !== 'lazy') .map(i | STRING |
| HIGH | render/src/pixelrag_render/strategies/cdp_oneshot.py | 0 | new promise(resolve => {{ window.scrollto(0, {t * th}); requestanimationframe(() => requestanimationframe(() => {{ const | STRING |
| HIGH | render/src/pixelrag_render/strategies/cdp_dc_single.py | 0 | new promise(resolve => {{ window.scrollto(0, {t * th}); requestanimationframe(() => requestanimationframe(() => {{ const | STRING |
| HIGH | render/src/pixelrag_render/strategies/cdp_sequential.py | 0 | new promise(resolve => {{ window.scrollto(0, {t * th}); requestanimationframe(() => requestanimationframe(() => {{ const | STRING |
| HIGH | …/src/pixelrag_render/strategies/cdp_pertile_imgwait.py | 0 | new promise(resolve => {{ window.scrollto(0, {t * th}); requestanimationframe(() => requestanimationframe(() => {{ const | STRING |
| HIGH | render/src/pixelrag_render/strategies/cdp_phased.py | 0 | new promise(resolve => {{ window.scrollto(0, {t * th}); requestanimationframe(() => requestanimationframe(() => {{ const | STRING |
| HIGH | render/src/pixelrag_render/strategies/cdp_overlap.py | 0 | new promise(resolve => {{ window.scrollto(0, {t * th}); requestanimationframe(() => requestanimationframe(() => {{ const | STRING |
| HIGH | render/src/pixelrag_render/backends/fast_cdp.py | 0 | new promise(resolve => {{ window.scrollto(0, {t * th}); requestanimationframe(() => requestanimationframe(() => {{ const | STRING |
| HIGH | …der/src/pixelrag_render/strategies/cdp_pipelined_dc.py | 0 | new promise(resolve => {{ window.scrollto(0, {t * th}); requestanimationframe(() => requestanimationframe(() => {{ const | STRING |
| HIGH | render/src/pixelrag_render/strategies/cdp_multitab.py | 0 | new promise(resolve => {{ window.scrollto(0, {t * th}); requestanimationframe(() => requestanimationframe(() => {{ const | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | render/src/pixelrag_render/backends/pdf.py | 25 | Render a PDF to JPEG tiles. Each page is written as ``{stem}.png.tiles/tile_NNNN.jpg`` with a ``tiles.json`` ma | STRING |
| HIGH | eval/lib/simpleqa_filter.py | 48 | Load SimpleQA examples that have Wikipedia URLs. Args: num_examples: Number of Wikipedia examples to return | STRING |
| HIGH | eval/lib/simpleqa_filter.py | 91 | Load SimpleQA examples filtered by URL domain. Args: domain: Domain to filter by (e.g., 'wikipedia', 'arxiv | STRING |
| HIGH | eval/lib/model_config.py | 189 | Generate output filename with model name and task included. Args: output_dir: Base output directory (e | STRING |
| HIGH | eval/lib/retrievers.py | 42 | Build a retriever from CLI args. Args: args: Parsed argparse namespace. examples: Loaded dataset ex | STRING |
| HIGH | eval/lib/pixel_query.py | 144 | Batch-render pixel queries for a list of examples. Args: examples: List of dicts with at least ``id | STRING |
| HIGH | eval/lib/simpleqa_data.py | 31 | Load SimpleQA dataset. Args: num_examples: Optional limit on number of examples to load. Returns: | STRING |
| HIGH | eval/lib/simpleqa_data.py | 72 | Load SimpleQA Verified dataset from Hugging Face. Args: num_examples: Optional limit on number of examples | STRING |
| HIGH | eval/lib/simpleqa_data.py | 797 | Load Natural Questions (full) split. For validation, follows the short-answer protocol used by our NQ eval: kee | STRING |
| HIGH | eval/lib/simpleqa_data.py | 891 | Load TriviaQA rc.wikipedia validation split. Uses entity_pages.title to construct ground truth Wikipedia URLs. | STRING |
| HIGH | eval/lib/simpleqa_data.py | 983 | Load NQ-Tables dev split (table subset of Natural Questions). NQ-Tables filters Natural Questions to only keep exam | STRING |
| HIGH | eval/lib/benchmarks.py | 100 | Load Encyclopedic VQA dataset. Args: split: Dataset split ('val' or 'test') num_examples: Limi | STRING |
| HIGH | eval/lib/benchmarks.py | 210 | Load Short-form QA dataset data. Args: dataset_repo: HuggingFace dataset repository name num_e | STRING |
| HIGH | eval/lib/benchmarks.py | 252 | Load WorldVQA dataset from HuggingFace. Args: num_examples: Limit to first N examples (optional) | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | render/src/pixelrag_render/strategies/cdp_fullpage.py | 100 | # Step 1: small viewport, navigate, measure true height | COMMENT |
| LOW⚡ | render/src/pixelrag_render/strategies/cdp_fullpage.py | 142 | # Step 2: lock viewport-relative units before resize | COMMENT |
| LOW | render/src/pixelrag_render/strategies/cdp_fullpage.py | 154 | # Step 3: resize viewport to content height for capture | COMMENT |
| LOW | render/src/pixelrag_render/strategies/cdp_fullpage.py | 174 | # Step 4: single screenshot | COMMENT |
| LOW⚡ | render/src/pixelrag_render/strategies/cdp_fullpage.py | 201 | # Step 5: crop into tiles (NOT timed) | COMMENT |
| LOW⚡ | train/train_contrastors.py | 312 | # Step 1: get all embeddings without grad (no DDP involvement) | COMMENT |
| LOW⚡ | train/train_contrastors.py | 318 | # Step 2: compute loss, get gradient w.r.t. embeddings | COMMENT |
| LOW | train/train_contrastors.py | 339 | # Step 3: accumulate real gradients via surrogate loss | COMMENT |
| LOW | train/train_contrastors.py | 447 | # Step 1: query embeddings come from the trainable tower; document embeddings | COMMENT |
| LOW | train/train_contrastors.py | 462 | # Step 2: compute loss and cache only the query-side gradients. | COMMENT |
| LOW | train/train_contrastors.py | 481 | # Step 3: replay only query chunks; doc tower is frozen and never backprops. | COMMENT |
| LOW | train/docs/synthetic_data_pipeline.md | 101 | ### Step 1: Generate Visual Query Pairs | COMMENT |
| LOW | train/docs/synthetic_data_pipeline.md | 156 | ### Step 2: Filter Self-Contained Queries | COMMENT |
| LOW | train/docs/synthetic_data_pipeline.md | 184 | ### Step 3: Mine Hard Negatives | COMMENT |
| LOW | train/docs/synthetic_data_pipeline.md | 215 | ### Step 4: Filter Hard Negatives (VQA-based) | COMMENT |
| LOW | train/docs/synthetic_data_pipeline.md | 237 | ### Step 5: Clean Queries (Naturalness Scoring) | COMMENT |
| LOW | train/docs/synthetic_data_pipeline.md | 256 | ### Step 6: Export Strict Retained Rows | COMMENT |
| LOW | train/docs/synthetic_data_pipeline.md | 273 | ### Step 7: Split into Train/Eval/Test | COMMENT |
| LOW | train/docs/synthetic_data_pipeline.md | 292 | ### Step 8: Package and Upload to Hugging Face | COMMENT |
| LOW | eval/lib/retrieval.py | 2111 | # Step 1: Query rewriting (if enabled) | COMMENT |
| LOW | eval/lib/retrieval.py | 2130 | # Step 2: Build query list | COMMENT |
| LOW | eval/lib/retrieval.py | 2296 | # Step 3: Rerank (if reranker provided) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | embed/src/pixelrag_embed/embed.py | 460 | def set_instruction(instruction: str) -> None: | CODE |
| LOW | render/src/pixelrag_render/__init__.py | 8 | __all__ = ["render_file", "render_pdf", "render_url"] | CODE |
| LOW | render/src/pixelrag_render/strategies/__init__.py | 15 | __all__ = [ | CODE |
| LOW | train/mine_hard_negatives.py | 34 | logger = logging.getLogger(__name__) | CODE |
| LOW | train/mine_text_hard_negatives.py | 31 | logger = logging.getLogger(__name__) | CODE |
| LOW | train/fake_data.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | train/filter_hard.py | 32 | logger = logging.getLogger(__name__) | CODE |
| LOW | train/filter_entity_queries.py | 30 | logger = logging.getLogger(__name__) | CODE |
| LOW | train/filter_passage.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW | train/filter_v2.py | 23 | logger = logging.getLogger(__name__) | CODE |
| LOW | train/verify_embeddings.py | 28 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | train/train_contrastors.py | 64 | logger = logging.getLogger(__name__) | CODE |
| LOW | train/filter_strict.py | 27 | logger = logging.getLogger(__name__) | CODE |
| LOW | train/dataset.py | 10 | logger = logging.getLogger(__name__) | CODE |
| LOW | train/train.py | 54 | logger = logging.getLogger(__name__) | CODE |
| LOW | train/evaluate.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW | index/src/pixelrag_index/distributed.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | index/src/pixelrag_index/sources/kiwix.py | 19 | logger = logging.getLogger(__name__) | CODE |
| LOW | eval/run_bench.py | 38 | logger = logging.getLogger(__name__) | CODE |
| LOW | eval/lib/simpleqa_filter.py | 9 | logger = logging.getLogger(__name__) | CODE |
| LOW | eval/lib/dump_retrieval.py | 26 | logger = logging.getLogger(__name__) | CODE |
| LOW | eval/lib/retrievers.py | 36 | logger = logging.getLogger(__name__) | CODE |
| LOW | eval/lib/pixel_query.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | eval/lib/__init__.py | 64 | __all__ = [ | CODE |
| LOW | eval/lib/llm.py | 36 | logger = logging.getLogger(__name__) | CODE |
| LOW | eval/lib/retrieval.py | 18 | logger = logging.getLogger(__name__) | CODE |
| LOW | eval/lib/screenshot.py | 15 | logger = logging.getLogger(__name__) | CODE |
| LOW⚡ | eval/lib/simpleqa_data.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | eval/lib/benchmarks.py | 22 | logger = logging.getLogger(__name__) | CODE |
| LOW | serve/src/pixelrag_serve/backends.py | 27 | def set_nprobe(self, n: int | None) -> None: ... | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | embed/src/pixelrag_embed/embed.py | 1823 | # Multi-GPU orchestration | COMMENT |
| MEDIUM | train/generate_text_query_pairs.py | 118 | # Built-in few-shot examples (used when --fewshot-file is not provided) | COMMENT |
| MEDIUM | train/sft/push_multi3_to_hf.py | 114 | ## Data — retrieval-augmented multi-image | COMMENT |
| MEDIUM | train/sft/push_multik_to_hf.py | 141 | ## Data — variable-k retrieval-augmented multi-image | COMMENT |
| MEDIUM | train/sft/push_3x_v5_snapshot.py | 127 | ## Data — variable-k retrieval-augmented multi-image (with 2× top3 weighting) | COMMENT |
| MEDIUM | eval/run_bench.py | 1485 | # Text RAG specific | COMMENT |
| MEDIUM | eval/lib/llm.py | 291 | # Text retrieval rendered as images. Mirror the text-RAG framing so | COMMENT |
| MEDIUM | eval/lib/llm.py | 348 | # Few-shot as prior user/assistant turns (canonical chat few-shot format) | COMMENT |
| MEDIUM | serve/src/pixelrag_serve/api.py | 755 | # Load embedding model | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | render/src/pixelrag_render/strategies/cdp_fullpage.py | 100 | # Step 1: small viewport, navigate, measure true height | COMMENT |
| LOW⚡ | render/src/pixelrag_render/strategies/cdp_fullpage.py | 142 | # Step 2: lock viewport-relative units before resize | COMMENT |
| LOW | render/src/pixelrag_render/strategies/cdp_fullpage.py | 154 | # Step 3: resize viewport to content height for capture | COMMENT |
| LOW | render/src/pixelrag_render/strategies/cdp_fullpage.py | 174 | # Step 4: single screenshot | COMMENT |
| LOW⚡ | render/src/pixelrag_render/strategies/cdp_fullpage.py | 201 | # Step 5: crop into tiles (NOT timed) | COMMENT |
| LOW⚡ | train/train_contrastors.py | 312 | # Step 1: get all embeddings without grad (no DDP involvement) | COMMENT |
| LOW⚡ | train/train_contrastors.py | 318 | # Step 2: compute loss, get gradient w.r.t. embeddings | COMMENT |
| LOW | train/train_contrastors.py | 339 | # Step 3: accumulate real gradients via surrogate loss | COMMENT |
| LOW | train/train_contrastors.py | 447 | # Step 1: query embeddings come from the trainable tower; document embeddings | COMMENT |
| LOW | train/train_contrastors.py | 462 | # Step 2: compute loss and cache only the query-side gradients. | COMMENT |
| LOW | train/train_contrastors.py | 481 | # Step 3: replay only query chunks; doc tower is frozen and never backprops. | COMMENT |
| LOW | eval/lib/retrieval.py | 2111 | # Step 1: Query rewriting (if enabled) | COMMENT |
| LOW | eval/lib/retrieval.py | 2130 | # Step 2: Build query list | COMMENT |
| LOW | eval/lib/retrieval.py | 2296 | # Step 3: Rerank (if reranker provided) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | render/src/pixelrag_render/strategies/cdp_dynamic.py | 149 | # Check if scroll moved | COMMENT |
| LOW | train/train_swift.py | 216 | # Print results | COMMENT |
| LOW | index/src/pixelrag_index/distributed.py | 103 | # Check if already claimed | COMMENT |
| LOW | eval/run_livevqa.py | 617 | # Check if we have any retrieved tiles (beyond just the editorial photo) | COMMENT |
| LOW | eval/run_bench.py | 817 | # Check if any retrieved tile's URL matches the ground truth URL | COMMENT |
| LOW | eval/run_bench.py | 820 | # Check if the ground truth URL is contained in the retrieved URLs | COMMENT |
| LOW | eval/run_bench.py | 1102 | # Check if output file exists | COMMENT |
| LOW | eval/lib/retrieval.py | 1033 | # Check if it's a Wikipedia URL | COMMENT |
| LOW | eval/lib/retrieval.py | 1741 | # Check if index exists | COMMENT |
| LOW | eval/lib/screenshot.py | 114 | # Check if image changed (detect end of scrolling) | COMMENT |
| LOW | eval/lib/screenshot.py | 328 | # Check if compression needed | COMMENT |
| LOW | eval/lib/simpleqa_data.py | 337 | # Check if valid screenshot already exists | COMMENT |
| LOW | eval/lib/simpleqa_data.py | 678 | # Check if tiles already exist for this image | COMMENT |
| LOW | eval/lib/benchmarks.py | 636 | # Check if images directory exists for optional image loading | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | eval/README.md | 200 | export ATLASCLOUD_API_KEY=your-api-key | CODE |
| HIGH | eval/README.md | 258 | export MINIMAX_API_KEY=your-api-key | CODE |
| HIGH | eval/lib/model_config.py | 159 | "Set it with: export GOOGLE_API_KEY='your-api-key' or export GEMINI_API_KEY='your-api-key' and GOOGL | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | render/src/pixelrag_render/bench/bench_throughput.py | 383 | # Bench: clean harness that takes any CaptureStrategy | COMMENT |
| MEDIUM | eval/pyproject.toml | 6 | # The base harness (run_bench.py + lib/) is a pure HTTP client — retrieval and reader run | COMMENT |
| MEDIUM | eval/lib/retrieval.py | 1191 | # Use a more robust approach: continue even if some screenshots fail | COMMENT |
| LOW | eval/lib/retrieval.py | 2151 | # Single or no image: just use the standard path | COMMENT |
| LOW | eval/lib/screenshot.py | 156 | # Only one screenshot, just use it | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | embed/src/pixelrag_embed/embed.py | 763 | CODE | |
| LOW | embed/src/pixelrag_embed/embed.py | 1827 | CODE | |
| LOW | embed/src/pixelrag_embed/embed.py | 2364 | CODE | |
| LOW | embed/src/pixelrag_embed/index.py | 289 | CODE | |
| LOW | render/src/pixelrag_render/backends/cdp.py | 908 | CODE | |
| LOW | eval/run_bench.py | 514 | CODE | |
| LOW | eval/lib/pixel_query.py | 184 | CODE | |
| LOW | eval/lib/llm.py | 466 | CODE | |
| LOW | eval/lib/retrieval.py | 1234 | CODE | |
| LOW | eval/lib/retrieval.py | 1376 | CODE | |
| LOW | eval/lib/retrieval.py | 1528 | CODE | |
| LOW | eval/lib/retrieval.py | 2041 | CODE | |
| LOW | eval/lib/retrieval.py | 2462 | CODE | |
| LOW | eval/lib/retrieval.py | 3057 | CODE | |
| LOW | eval/lib/retrieval.py | 3417 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | deploy/api-switch.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | render/src/pixelrag_render/backends/cdp.py | 181 | return r.get("result", {}) | COMMENT |
| LOW | render/src/pixelrag_render/backends/page_metrics.py | 21 | # is only as tall as the document when the page lets it size to its content; | COMMENT |
| LOW | train/run_generate_batches.sh | 1 | #!/bin/bash | COMMENT |
| LOW | train/recipes/v8s_ablation.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | eval/reproduce.sh | 1 | #!/bin/bash | COMMENT |
| LOW | eval/dump_bench.sh | 1 | #!/bin/bash | COMMENT |
| LOW | eval/serve_up.sh | 1 | #!/bin/bash | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | render/chrome-build/build-headless-shell.sh | 6 | # Usage: | COMMENT |
| LOW | train/run_generate_batches.sh | 7 | # Usage: | COMMENT |
| LOW | train/recipes/v8s_ablation.sh | 9 | # Usage: | COMMENT |
| LOW | train/sft/train_qwen3vl_3x_scratch.yaml | 2 | ### Usage: | COMMENT |
| LOW | train/sft/eval_fanout.sh | 3 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | tests/test_bug_fixes.py | 151 | # Create a small JPEG tile | COMMENT |
| MEDIUM | render/src/pixelrag_render/strategies/cdp_overlap.py | 109 | # Create a dummy proc wrapper for tab_b (so close() doesn't double-kill) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | tests/test_render.py | 27 | + "<p>lorem ipsum dolor sit amet. </p>" * 60 | CODE |
| LOW⚡ | tests/test_render.py | 27 | + "<p>lorem ipsum dolor sit amet. </p>" * 60 | CODE |
| LOW | train/fake_data.py | 8 | uv run python training/fake_data.py \ | STRING |
| LOW | train/CLAUDE.md | 273 | `fake_data.py` generates template-based queries from article titles (not LLM-augmented): | CODE |
| LOW | train/CLAUDE.md | 275 | uv run python fake_data.py \ | CODE |