Repository Analysis

ArchiveBox/ArchiveBox

🗃 Open source self-hosted web archiving. Takes URLs/browser history/bookmarks/Pocket/Pinboard/etc., saves HTML, JS, PDFs, media, and more...

16.3 Moderate AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of ArchiveBox/ArchiveBox, a Python project with 28,199 GitHub stars. SynthScan v2.0 examined 203,275 lines of code across 659 source files, recording 2334 pattern matches distributed across 22 syntactic categories. The overall adjusted score of 16.3 places this repository in the Moderate AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

16.3
Adjusted Score
16.3
Raw Score
100%
Time Factor
2026-08-28
Last Push
28.2K
Stars
Python
Language
203.3K
Lines of Code
659
Files
2.3K
Pattern Hits
2026-08-29
Scan Date
0.21
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 8HIGH 129MEDIUM 205LOW 1992

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 2334 distinct pattern matches across 22 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Hyper-Verbose Identifiers1502 hits · 1416 pts
SeverityFileLineSnippetContext
LOWold/TODO_hook_statemachine_cleanup.md127 def has_running_background_hooks(self) -> bool:CODE
LOWold/TODO_fs_migrations.md305def reconcile_with_index_json(self):CODE
LOWold/TODO_fs_migrations.md465def move_directory_to_invalid(snapshot_dir: Path):CODE
LOWold/TODO_fs_migrations.md113def get_storage_path_for_version(self, version: str) -> Path:CODE
LOWold/TODO_fs_migrations.md284def _detect_fs_version_from_index(data: dict) -> str:CODE
LOWold/TODO_fs_migrations.md368def _merge_archive_results_from_index(self, index_data: dict):CODE
LOWold/TODO_fs_migrations.md387def _create_archive_result_if_missing(self, result_data: dict, existing: dict):CODE
LOWold/TODO_fs_migrations.md489def find_and_merge_duplicates(cls) -> int:CODE
LOWold/TODO_fs_migrations.md662def _cleanup_old_migration_dir(self, old_dir: Path):CODE
LOWold/TODO_fs_migrations.md787def import_orphans_from_archive(resume_from: str = None, batch_size: int = 100) -> dict:CODE
LOWold/TODO_fs_migrations.md891def process_filtered_snapshots(CODE
LOWold/TODO_fs_migrations.md1135def fix_invalid_folder_locations(out_dir: Path = DATA_DIR) -> Tuple[List[str], List[str]]:CODE
LOWold/TODO_process_tracking.md1108def has_running_background_hooks(self) -> bool:CODE
LOWold/TODO_process_tracking.md1126def has_running_background_hooks(self) -> bool:CODE
LOWold/TODO_process_tracking.md1828def stop_existing_supervisord_process():CODE
LOWold/TODO_process_tracking.md1840def start_new_supervisord_process():CODE
LOWold/TODO_process_tracking.md1852def stop_existing_supervisord_process():CODE
LOWold/TODO_archivebox_jsonl_cli.md591def assert_jsonl_contains_type(stdout: str, record_type: str, min_count: int = 1):CODE
LOWold/TODO_archivebox_jsonl_cli.md600def assert_jsonl_pass_through(stdout: str, input_records: List[Dict[str, Any]]):CODE
LOWold/TODO_archivebox_jsonl_cli.md662def create_test_snapshot_json(url: str = None, **kwargs) -> Dict[str, Any]:CODE
LOWold/archivebox.ts6051// async function setupScreenrecordingWithAudio(page, wss) {COMMENT
LOWold/archivebox.ts1039async function getChromeExtensionsFromPersona({CHROME_EXTENSIONS, CHROMEWEBSTORE_EXTENSIONS_DIR}) {CODE
LOWold/archivebox.ts1061async function getChromeExtensionsFromCache({browser, extensions=CHROME_EXTENSIONS, extensions_dir=CHROMEWEBSTORE_EXTENSCODE
LOWold/archivebox.ts1715async function collectSnapshotDirVersionFiles(snap_dir) {CODE
LOWold/archivebox.ts1825async function symlinkBestSnapshotResults(snap_dir) {CODE
LOWold/archivebox.ts3380async function saveAIQualityAssuranceResult(page, {original_url, version}) {CODE
LOWold/TODO_hook_architecture.md1427def check_background_hook_completed(archiveresult: 'ArchiveResult') -> bool:CODE
LOWold/TODO_hook_architecture.md1583def test_background_hook_detection():CODE
LOWold/TODO_hook_architecture.md1588def test_find_binary_by_abspath():CODE
LOWold/TODO_hook_architecture.md1627def test_foreground_hook_execution(snapshot):STRING
LOWold/TODO_hook_architecture.md1646def test_background_hook_execution(snapshot):STRING
LOWold/TODO_hook_architecture.md1667def test_background_hook_finalization(snapshot):STRING
LOWarchivebox/misc/db.py102def database_display_location() -> str:CODE
LOWarchivebox/misc/db.py177def truncate_overlong_charfields(instance=None, **kwargs) -> None:CODE
LOWarchivebox/misc/db.py204def rebuild_models_from_migration_state(apps, schema_editor, app_label: str, model_names: list[str]) -> None:CODE
LOWarchivebox/misc/util.py25def filter_queryset_by_uuid_substring(queryset, slug: str, field: str = "id"):CODE
LOWarchivebox/misc/util.py248def split_comma_separated_urls(url: str):CODE
LOWarchivebox/misc/checks.py26def _migration_interrupt_message(*, before_apply: bool = False) -> str:CODE
LOWarchivebox/misc/checks.py38def _exit_on_migration_interrupt():CODE
LOWarchivebox/misc/checks.py195def is_archivebox_source_root(path: Path | str | None = None) -> bool:CODE
LOWarchivebox/misc/checks.py204def check_not_inside_source_dir(path: Path | str | None = None) -> None:CODE
LOWarchivebox/misc/checks.py213def check_data_dir_permissions(config=None, **config_kwargs):CODE
LOWarchivebox/misc/logging_util.py436def printable_dependency_version(name: str, dependency: dict) -> str:CODE
LOWarchivebox/misc/serve_static.py115def _format_direntry_timestamp(stat_result: os.stat_result) -> str:CODE
LOWarchivebox/misc/serve_static.py163def _build_directory_zip_response(CODE
LOWarchivebox/misc/serve_static.py253async def _stream_ranged_file_async(ranged_file: "RangedFileReader"):CODE
LOWarchivebox/misc/serve_static.py363def _extract_markdown_candidate(text: str) -> str:CODE
LOWarchivebox/misc/serve_static.py387def _render_text_preview_document(text: str, title: str) -> str:CODE
LOWarchivebox/misc/serve_static.py437def _render_image_preview_document(image_url: str, title: str) -> str:CODE
LOWarchivebox/misc/serve_static.py487def _encoded_responses_image_url(image_url: str, page_url: str | None) -> str | None:CODE
LOWarchivebox/misc/serve_static.py499def _index_responses_paths_for_html_images(CODE
LOWarchivebox/misc/serve_static.py532def _rewrite_html_image_sources_to_responses(CODE
LOWarchivebox/misc/serve_static.py564def _rewrite_html_image_sources_for_request(CODE
LOWarchivebox/misc/serve_static.py580def _apply_transformed_html_preview_style(html_text: str) -> str:CODE
LOWarchivebox/misc/serve_static.py588def _set_transformed_response_headers(response, fullpath: Path, statobj: os.stat_result, encoding: str | None, config) -CODE
LOWarchivebox/misc/serve_static.py596def _render_markdown_fallback(text: str) -> str:CODE
LOWarchivebox/misc/serve_static.py751def _render_markdown_document(markdown_text: str) -> str:CODE
LOWarchivebox/misc/serve_static.py771def _is_risky_replay_document(fullpath: Path, content_type: str) -> bool:CODE
LOWarchivebox/misc/serve_static.py788def _apply_archive_replay_headers(CODE
LOWarchivebox/misc/serve_static.py831def serve_static_with_byterange_support(request, path, document_root=None, show_indexes=False, is_archive_replay: bool =CODE
1442 more matches not shown…
Decorative Section Separators177 hits · 540 pts
SeverityFileLineSnippetContext
MEDIUMold/TODO_fs_migrations.md301# =========================================================================COMMENT
MEDIUMold/TODO_fs_migrations.md303# =========================================================================COMMENT
MEDIUMold/TODO_fs_migrations.md460# =========================================================================COMMENT
MEDIUMold/TODO_fs_migrations.md462# =========================================================================COMMENT
MEDIUMold/TODO_fs_migrations.md79# =========================================================================COMMENT
MEDIUMold/TODO_fs_migrations.md81# =========================================================================COMMENT
MEDIUMold/TODO_fs_migrations.md145# =========================================================================COMMENT
MEDIUMold/TODO_fs_migrations.md147# =========================================================================COMMENT
MEDIUMold/TODO_archivebox_jsonl_cli.md467# =============================================================================COMMENT
MEDIUMold/TODO_archivebox_jsonl_cli.md469# =============================================================================COMMENT
MEDIUMold/TODO_archivebox_jsonl_cli.md532# =============================================================================COMMENT
MEDIUMold/TODO_archivebox_jsonl_cli.md534# =============================================================================COMMENT
MEDIUMold/TODO_archivebox_jsonl_cli.md574# =============================================================================COMMENT
MEDIUMold/TODO_archivebox_jsonl_cli.md576# =============================================================================COMMENT
MEDIUMold/TODO_archivebox_jsonl_cli.md619# =============================================================================COMMENT
MEDIUMold/TODO_archivebox_jsonl_cli.md621# =============================================================================COMMENT
MEDIUMold/TODO_archivebox_jsonl_cli.md636# =============================================================================COMMENT
MEDIUMold/TODO_archivebox_jsonl_cli.md638# =============================================================================COMMENT
MEDIUMarchivebox/misc/db.py25# ============================================================================COMMENT
MEDIUMarchivebox/misc/db.py27# ============================================================================COMMENT
MEDIUMarchivebox/core/models.py2113 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py2115 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py3566 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py3568 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py294 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py296 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py397 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py399 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py494 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py496 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py1049 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py1051 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py1298 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py1300 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py1356 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py1358 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py1640 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py1642 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py2245 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py2247 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py3121 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py3123 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py3182 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py3184 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py3234 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py3236 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py3436 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py3438 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py3642# =============================================================================COMMENT
MEDIUMarchivebox/core/models.py3644# =============================================================================COMMENT
MEDIUMarchivebox/core/models.py4888# =============================================================================COMMENT
MEDIUMarchivebox/core/models.py4890# =============================================================================COMMENT
MEDIUMarchivebox/plugins/hooks.py83# =============================================================================COMMENT
MEDIUMarchivebox/plugins/hooks.py85# =============================================================================COMMENT
MEDIUMarchivebox/plugins/hooks.py548# =============================================================================COMMENT
MEDIUMarchivebox/plugins/hooks.py550# =============================================================================COMMENT
MEDIUMarchivebox/tests/conftest.py146# =============================================================================COMMENT
MEDIUMarchivebox/tests/conftest.py148# =============================================================================COMMENT
MEDIUMarchivebox/tests/conftest.py314# =============================================================================COMMENT
MEDIUMarchivebox/tests/conftest.py316# =============================================================================COMMENT
117 more matches not shown…
Cross-Language Confusion89 hits · 528 pts
SeverityFileLineSnippetContext
HIGHdocs/test_codeblocks_manifest.py478 f" (cd {ROOT} && UV_PROJECT_ENVIRONMENT={root_checkout_venv} {current_uv} --no-cache sync --locCODE
HIGHarchivebox/misc/checks.py112 print(" docker compose pull && docker compose up -d", file=sys.stderr)CODE
HIGHarchivebox/misc/hashing.py253# "num_subpaths": null,COMMENT
HIGHarchivebox/core/widgets.py532 return window.updateHiddenField_id_config || null;CODE
HIGHarchivebox/core/widgets.py532 return window.updateHiddenField_id_config || null;CODE
HIGHarchivebox/core/widgets.py538 return null;CODE
HIGHarchivebox/core/widgets.py542 return keyInput && keyInput.value.trim() === key;CODE
HIGHarchivebox/core/widgets.py544 return matches.length ? matches[0] : null;CODE
HIGHarchivebox/core/widgets.py551 return rows ? rows.lastElementChild : null;CODE
HIGHarchivebox/core/widgets.py553 return null;CODE
HIGHarchivebox/core/widgets.py618 if (!domain || seen[domain]) {{CODE
HIGHarchivebox/core/widgets.py623 domains.push(domain);CODE
HIGHarchivebox/core/widgets.py627 var hostAndPort = String(parsed.host || parsed.hostname || '').toLowerCase();CODE
HIGHarchivebox/core/widgets.py629 if (!hostAndPort || seen[pathKey]) {{CODE
HIGHarchivebox/core/widgets.py633 paths.push({{ host: hostAndPort, path: pathname }});CODE
HIGHarchivebox/core/widgets.py134 onkeypress="if(event.key==='Enter' || event.keyCode===13 || event.key===' ' || event.code==='Space' |CODE
HIGHarchivebox/core/widgets.py144 var autocompleteTimeout_{widget_id} = null;CODE
HIGHarchivebox/core/widgets.py181 if (!(options && options.skipHiddenUpdate)) {{CODE
HIGHarchivebox/core/widgets.py325 if (isEnter || isSpace || isComma) {{CODE
HIGHarchivebox/core/widgets.py335 }} else if (event.key === 'Backspace' && !value && currentTags_{widget_id}.length > 0) {{CODE
HIGHarchivebox/core/widgets.py349 if (!query || query.length < 1) {{CODE
HIGHarchivebox/core/widgets.py471 if (!trimmed || trimmed.charAt(0) === '#') {{CODE
HIGHarchivebox/core/widgets.py513 if (!pathname || pathname === '/') {{CODE
HIGHarchivebox/core/widgets.py607 var seen = Object.create(null);CODE
HIGHarchivebox/core/admin_snapshots.py994 "this.dataset.fallbacks && this.dataset.fallbacks.length ? "CODE
HIGHarchivebox/core/admin_snapshots.py1021 "this.dataset.fallbacks && this.dataset.fallbacks.length ? "CODE
HIGHarchivebox/tests/test_release_workflow.py22 assert checkout["with"]["token"] == "${{ secrets.RELEASE_GH_TOKEN || github.token }}"CODE
HIGHarchivebox/tests/test_server_security_browser.py38 finalUrl: null,CODE
HIGHarchivebox/tests/test_server_security_browser.py39 status: null,CODE
HIGHarchivebox/tests/test_server_security_browser.py40 error: null,CODE
HIGHarchivebox/tests/test_server_security_browser.py49 result.status = response ? response.status() : null;CODE
HIGHarchivebox/tests/test_server_security_browser.py95 consoleMessages.push({type: message.type(), text: message.text()});CODE
HIGHarchivebox/tests/test_server_security_browser.py98 consoleMessages.push({type: "pageerror", text: String(error)});CODE
HIGHarchivebox/tests/test_server_security_browser.py101 requestFailures.push({CODE
HIGHarchivebox/tests/test_server_security_browser.py113 () => window.__dangerousScriptRan !== true || window.__probeResults !== undefined,CODE
HIGHarchivebox/tests/test_server_security_browser.py113 () => window.__dangerousScriptRan !== true || window.__probeResults !== undefined,CODE
HIGHarchivebox/tests/test_server_security_browser.py120 probeResults: window.__probeResults || null,CODE
HIGHarchivebox/tests/test_server_security_browser.py120 probeResults: window.__probeResults || null,CODE
HIGHarchivebox/tests/test_server_security_browser.py128 status: response ? response.status() : null,CODE
HIGHarchivebox/tests/test_server_security_browser.py130 contentSecurityPolicy: response ? response.headers()["content-security-policy"] || null : null,CODE
HIGHarchivebox/tests/test_server_security_browser.py131 archiveboxSecurityMode: response ? response.headers()["x-archivebox-security-mode"] || null : null,CODE
HIGHarchivebox/tests/test_server_security_browser.py313 consoleMessages.push({type: message.type(), text: message.text()});CODE
HIGHarchivebox/tests/test_server_security_browser.py316 consoleMessages.push({type: "pageerror", text: String(error)});CODE
HIGHarchivebox/tests/test_server_security_browser.py319 requestFailures.push({CODE
HIGHarchivebox/tests/test_server_security_browser.py209 return saved.BASE_URL && saved.SERVER_SECURITY_MODE === "safe-onedomain-nojsreplay";CODE
HIGHarchivebox/tests/test_server_security_browser.py249 return body || root || "";CODE
HIGHarchivebox/tests/test_server_security_browser.py266 frameState.push({CODE
HIGHarchivebox/tests/test_server_security_browser.py273 if (previewFrame && (frame === previewFrame || isDescendantOf(frame, previewFrame)) && text.includes(expectedText)) CODE
HIGHarchivebox/tests/test_server_security_browser.py338 status: response ? response.status() : null,CODE
HIGHarchivebox/tests/test_ui_admin_config_widget.py93 assert "window.history.replaceState(null, '', cleanUrl.pathname + cleanUrl.search + cleanUrl.hash)" in htmlCODE
HIGHarchivebox/tests/test_ui_admin_config_widget.py225 assert "var coreReachable = results.admin && results.api && results.index && results.web && results.snapshot;" in SECODE
HIGHarchivebox/tests/test_ui_admin_config_widget.py230 assert "response.ok && response.headers.get('X-ArchiveBox-Health') === 'OK'" in SETUP_WIZARD_JSCODE
HIGHarchivebox/tests/test_hooks.py9 sudo -u testuser bash -c 'source .venv/bin/activate && python -m pytest archivebox/tests/test_hooks.py -v'STRING
HIGHarchivebox/tests/test_setup_script.py96 assert "if [ -t 1 ]; then\n clear || true\nfi" in scriptCODE
HIGHarchivebox/crawls/admin.py312 var cookieValue = null;STRING
HIGHarchivebox/base_models/admin.py170 if (!meta || meta.type === undefined || meta.type === null) {{CODE
HIGHarchivebox/base_models/admin.py170 if (!meta || meta.type === undefined || meta.type === null) {{CODE
HIGHarchivebox/base_models/admin.py178 return null;CODE
HIGHarchivebox/base_models/admin.py224 if (meta.minimum !== undefined || meta.maximum !== undefined) {{CODE
HIGHarchivebox/base_models/admin.py224 if (meta.minimum !== undefined || meta.maximum !== undefined) {{CODE
29 more matches not shown…
Cross-File Repetition36 hits · 180 pts
SeverityFileLineSnippetContext
HIGHarchivebox/tests/test_api_v1_crawls_crawl_crawl_id.py0from archivebox.workers.supervisord_util import get_existing_supervisord_process, stop_worker supervisor = get_existing_STRING
HIGH…hivebox/tests/test_api_v1_core_snapshot_snapshot_id.py0from archivebox.workers.supervisord_util import get_existing_supervisord_process, stop_worker supervisor = get_existing_STRING
HIGHarchivebox/tests/test_ui_public_snapshot.py0from archivebox.workers.supervisord_util import get_existing_supervisord_process, stop_worker supervisor = get_existing_STRING
HIGHarchivebox/tests/test_ui_add_view_runtime.py0from archivebox.workers.supervisord_util import get_existing_supervisord_process, stop_worker supervisor = get_existing_STRING
HIGHarchivebox/tests/test_cli_add.py0<?xml version="1.0" encoding="utf-8"?> <rss version="2.0"> <channel> <title>archivebox rss import fixture</title> <link>STRING
HIGHarchivebox/tests/test_api_v1_cli_add.py0<?xml version="1.0" encoding="utf-8"?> <rss version="2.0"> <channel> <title>archivebox rss import fixture</title> <link>STRING
HIGHarchivebox/tests/test_ui_add_view_runtime.py0<?xml version="1.0" encoding="utf-8"?> <rss version="2.0"> <channel> <title>archivebox rss import fixture</title> <link>STRING
HIGHarchivebox/tests/test_cli_add.py0<!doctype netscape-bookmark-file-1> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>bookmarksSTRING
HIGHarchivebox/tests/test_api_v1_cli_add.py0<!doctype netscape-bookmark-file-1> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>bookmarksSTRING
HIGHarchivebox/tests/test_ui_add_view_runtime.py0<!doctype netscape-bookmark-file-1> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>bookmarksSTRING
HIGHarchivebox/tests/test_cli_add.py0<!doctype html> <html> <head><title>dom import fixture</title></head> <body> <a href="{urls["dom"]}">iana example domainSTRING
HIGHarchivebox/tests/test_api_v1_cli_add.py0<!doctype html> <html> <head><title>dom import fixture</title></head> <body> <a href="{urls["dom"]}">iana example domainSTRING
HIGHarchivebox/tests/test_ui_add_view_runtime.py0<!doctype html> <html> <head><title>dom import fixture</title></head> <body> <a href="{urls["dom"]}">iana example domainSTRING
HIGHarchivebox/tests/test_cli_add.py0<?xml version="1.0"?> <!doctype rss [ <!entity localfile system "file:///etc/hosts"> ]> <rss version="2.0" xmlns:xi="httSTRING
HIGHarchivebox/tests/test_api_v1_cli_add.py0<?xml version="1.0"?> <!doctype rss [ <!entity localfile system "file:///etc/hosts"> ]> <rss version="2.0" xmlns:xi="httSTRING
HIGHarchivebox/tests/test_ui_add_view_runtime.py0<?xml version="1.0"?> <!doctype rss [ <!entity localfile system "file:///etc/hosts"> ]> <rss version="2.0" xmlns:xi="httSTRING
HIGHarchivebox/cli/archivebox_archiveresult.py0list personas as jsonl with optional filters. exit codes: 0: success (even if no results)STRING
HIGHarchivebox/cli/archivebox_process.py0list personas as jsonl with optional filters. exit codes: 0: success (even if no results)STRING
HIGHarchivebox/cli/archivebox_tag.py0list personas as jsonl with optional filters. exit codes: 0: success (even if no results)STRING
HIGHarchivebox/cli/archivebox_binary.py0list personas as jsonl with optional filters. exit codes: 0: success (even if no results)STRING
HIGHarchivebox/cli/archivebox_snapshot.py0list personas as jsonl with optional filters. exit codes: 0: success (even if no results)STRING
HIGHarchivebox/cli/archivebox_machine.py0list personas as jsonl with optional filters. exit codes: 0: success (even if no results)STRING
HIGHarchivebox/cli/archivebox_crawl.py0list personas as jsonl with optional filters. exit codes: 0: success (even if no results)STRING
HIGHarchivebox/cli/archivebox_persona.py0list personas as jsonl with optional filters. exit codes: 0: success (even if no results)STRING
HIGHarchivebox/cli/archivebox_archiveresult.py0update personas from stdin jsonl. reads persona records from stdin and applies updates. uses patch semantics - only specSTRING
HIGHarchivebox/cli/archivebox_tag.py0update personas from stdin jsonl. reads persona records from stdin and applies updates. uses patch semantics - only specSTRING
HIGHarchivebox/cli/archivebox_binary.py0update personas from stdin jsonl. reads persona records from stdin and applies updates. uses patch semantics - only specSTRING
HIGHarchivebox/cli/archivebox_snapshot.py0update personas from stdin jsonl. reads persona records from stdin and applies updates. uses patch semantics - only specSTRING
HIGHarchivebox/cli/archivebox_crawl.py0update personas from stdin jsonl. reads persona records from stdin and applies updates. uses patch semantics - only specSTRING
HIGHarchivebox/cli/archivebox_persona.py0update personas from stdin jsonl. reads persona records from stdin and applies updates. uses patch semantics - only specSTRING
HIGHarchivebox/cli/archivebox_archiveresult.py0delete personas from stdin jsonl. requires --yes flag to confirm deletion. exit codes: 0: success 1: no input or missingSTRING
HIGHarchivebox/cli/archivebox_tag.py0delete personas from stdin jsonl. requires --yes flag to confirm deletion. exit codes: 0: success 1: no input or missingSTRING
HIGHarchivebox/cli/archivebox_binary.py0delete personas from stdin jsonl. requires --yes flag to confirm deletion. exit codes: 0: success 1: no input or missingSTRING
HIGHarchivebox/cli/archivebox_snapshot.py0delete personas from stdin jsonl. requires --yes flag to confirm deletion. exit codes: 0: success 1: no input or missingSTRING
HIGHarchivebox/cli/archivebox_crawl.py0delete personas from stdin jsonl. requires --yes flag to confirm deletion. exit codes: 0: success 1: no input or missingSTRING
HIGHarchivebox/cli/archivebox_persona.py0delete personas from stdin jsonl. requires --yes flag to confirm deletion. exit codes: 0: success 1: no input or missingSTRING
Excessive Try-Catch Wrapping137 hits · 154 pts
SeverityFileLineSnippetContext
MEDIUMold/TODO_fs_migrations.md252def is_valid_timestamp(ts):CODE
LOWold/TODO_fs_migrations.md110 except Exception:CODE
LOWold/TODO_fs_migrations.md673 except Exception as e:CODE
LOWold/TODO_fs_migrations.md1153 except Exception:CODE
LOWold/TODO_process_tracking.md1405 except Exception as e:CODE
LOWold/TODO_hook_architecture.md145 except Exception:CODE
LOWold/TODO_hook_architecture.md232 except Exception as e:CODE
LOWold/TODO_hook_architecture.md1102 except Exception as e:CODE
LOWdocs/conf.py49except Exception:CODE
LOWdocs/test_codeblocks_manifest.py288 except Exception as error:CODE
LOWarchivebox/misc/db.py98 except Exception:CODE
LOWarchivebox/misc/db.py172 except Exception:CODE
LOWarchivebox/misc/db.py294 except Exception:CODE
LOWarchivebox/misc/db.py308 except Exception:CODE
LOWarchivebox/misc/db.py314 except Exception:CODE
LOWarchivebox/misc/db.py323 except Exception:CODE
LOWarchivebox/misc/db.py580 except Exception as err:CODE
LOWarchivebox/misc/util.py522 except Exception:CODE
LOWarchivebox/misc/util.py527 except Exception:CODE
LOWarchivebox/misc/util.py532 except Exception:CODE
LOWarchivebox/misc/checks.py49 except Exception:CODE
LOWarchivebox/misc/checks.py264 except Exception:CODE
LOWarchivebox/misc/checks.py269 except Exception:CODE
LOWarchivebox/misc/checks.py317 except Exception as e:CODE
LOWarchivebox/misc/checks.py370 except Exception as e:CODE
MEDIUMarchivebox/misc/checks.py46def handle_shutdown(_signum, _frame):CODE
LOWarchivebox/misc/logging_util.py70 except Exception:CODE
LOWarchivebox/misc/toml_util.py32 except Exception:CODE
LOWarchivebox/misc/toml_util.py37 except Exception:CODE
LOWarchivebox/misc/toml_util.py98 except Exception:CODE
LOWarchivebox/core/settings_logging.py100 except Exception:CODE
LOWarchivebox/core/admin_snapshots.py539 except Exception as e:CODE
LOWarchivebox/core/admin_snapshots.py1353 except Exception:CODE
MEDIUMarchivebox/core/admin_snapshots.py1317def _get_expected_hook_total(self, obj) -> int:CODE
LOWarchivebox/core/takeover_util.py134 except Exception:CODE
LOWarchivebox/config/version.py55 except Exception:CODE
LOWarchivebox/config/version.py62 except Exception:CODE
LOWarchivebox/config/version.py68 except Exception:CODE
LOWarchivebox/config/version.py73 except Exception:CODE
LOWarchivebox/config/version.py109 except Exception:CODE
LOWarchivebox/config/paths.py56 except Exception:CODE
LOWarchivebox/config/paths.py96 except Exception:CODE
LOWarchivebox/config/paths.py102 except Exception:CODE
LOWarchivebox/config/paths.py155 except Exception as e:CODE
LOWarchivebox/config/paths.py223 except Exception:CODE
LOWarchivebox/config/paths.py237 except Exception:CODE
LOWarchivebox/config/paths.py264 except Exception:CODE
LOWarchivebox/config/paths.py301 except Exception:CODE
LOWarchivebox/config/paths.py377 except Exception:CODE
LOWarchivebox/config/collection.py226 except Exception:CODE
LOWarchivebox/config/collection.py326 except Exception:CODE
LOWarchivebox/plugins/hooks.py322 except Exception:CODE
LOWarchivebox/plugins/hooks.py456 except Exception as e:CODE
LOWarchivebox/plugins/hooks.py542 except Exception:CODE
LOWarchivebox/plugins/hooks.py623 except Exception as e:CODE
LOWarchivebox/plugins/discovery.py168 except Exception:CODE
LOWarchivebox/plugins/forms.py502 except Exception:CODE
LOWarchivebox/crawls/models.py548 except Exception:CODE
LOWarchivebox/crawls/models.py1641 except Exception as e:CODE
LOWarchivebox/cli/archivebox_binary.py101 except Exception as e:CODE
77 more matches not shown…
Deep Nesting133 hits · 106 pts
SeverityFileLineSnippetContext
LOWbin/generate_ui_screenshot_gallery.py98CODE
LOWdocs/test_codeblocks_manifest.py205CODE
LOWdocs/test_codeblocks_manifest.py353CODE
LOWdocs/test_codeblocks_manifest.py581CODE
LOWarchivebox/misc/db.py143CODE
LOWarchivebox/misc/db.py409CODE
LOWarchivebox/misc/system.py19CODE
LOWarchivebox/misc/system.py56CODE
LOWarchivebox/misc/util.py495CODE
LOWarchivebox/misc/checks.py97CODE
LOWarchivebox/misc/logging_util.py257CODE
LOWarchivebox/misc/hashing.py156CODE
LOWarchivebox/misc/serve_static.py596CODE
LOWarchivebox/misc/serve_static.py831CODE
LOWarchivebox/core/admin_archiveresults.py82CODE
LOWarchivebox/core/models.py168CODE
LOWarchivebox/core/models.py199CODE
LOWarchivebox/core/models.py1164CODE
LOWarchivebox/core/models.py1303CODE
LOWarchivebox/core/models.py1361CODE
LOWarchivebox/core/models.py1461CODE
LOWarchivebox/core/models.py1644CODE
LOWarchivebox/core/models.py1742CODE
LOWarchivebox/core/models.py1971CODE
LOWarchivebox/core/models.py2012CODE
LOWarchivebox/core/models.py2168CODE
LOWarchivebox/core/models.py2479CODE
LOWarchivebox/core/models.py2541CODE
LOWarchivebox/core/models.py2780CODE
LOWarchivebox/core/models.py3256CODE
LOWarchivebox/core/models.py4098CODE
LOWarchivebox/core/models.py4551CODE
LOWarchivebox/core/widgets.py63CODE
LOWarchivebox/core/widgets.py686CODE
LOWarchivebox/core/forms.py36CODE
LOWarchivebox/core/tag_util.py59CODE
LOWarchivebox/core/admin_site.py102CODE
LOWarchivebox/core/takeover_util.py225CODE
LOWarchivebox/core/middleware.py120CODE
LOWarchivebox/core/middleware.py124CODE
LOWarchivebox/core/views.py492CODE
LOWarchivebox/core/views.py702CODE
LOWarchivebox/core/views.py1278CODE
LOWarchivebox/core/templatetags/core_tags.py122CODE
LOWarchivebox/core/sqlite_backend/base.py25CODE
LOWarchivebox/config/django.py33CODE
LOWarchivebox/config/paths.py43CODE
LOWarchivebox/config/common.py202CODE
LOWarchivebox/config/common.py513CODE
LOWarchivebox/config/common.py1062CODE
LOWarchivebox/config/collection.py198CODE
LOWarchivebox/config/configset.py80CODE
LOWarchivebox/config/views.py69CODE
LOWarchivebox/config/views.py232CODE
LOWarchivebox/plugins/hooks.py244CODE
LOWarchivebox/plugins/hooks.py504CODE
LOWarchivebox/plugins/hooks.py553CODE
LOWarchivebox/plugins/discovery.py116CODE
LOWarchivebox/plugins/forms.py348CODE
LOWarchivebox/plugins/views.py259CODE
73 more matches not shown…
Hallucination Indicators8 hits · 85 pts
SeverityFileLineSnippetContext
CRITICALarchivebox/core/admin_archiveresults.py13from django.core.exceptions import ValidationErrorCODE
CRITICALarchivebox/core/recovery_util.py18 from django.core.exceptions import ValidationErrorCODE
CRITICALarchivebox/tests/test_snapshot_url_length.py9from django.core.exceptions import ValidationErrorCODE
CRITICALarchivebox/crawls/models.py17from django.core.exceptions import ValidationErrorCODE
CRITICALarchivebox/api/v1_core.py18from django.core.exceptions import ValidationErrorCODE
CRITICALarchivebox/templates/static/jquery-3.7.1.slim.min.js2!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):fCODE
CRITICALarchivebox/templates/static/jquery.min.js2!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):fCODE
CRITICALarchivebox/services/snapshot_service.py8from django.core.exceptions import ValidationErrorCODE
Unused Imports67 hits · 65 pts
SeverityFileLineSnippetContext
LOWpdm_build.py1CODE
LOWdocs/test_codeblocks_manifest.py8CODE
LOWarchivebox/__main__.py6CODE
LOWarchivebox/misc/shell_welcome_message.py6CODE
LOWarchivebox/misc/shell_welcome_message.py7CODE
LOWarchivebox/misc/shell_welcome_message.py8CODE
LOWarchivebox/misc/shell_welcome_message.py9CODE
LOWarchivebox/misc/shell_welcome_message.py10CODE
LOWarchivebox/misc/shell_welcome_message.py11CODE
LOWarchivebox/misc/shell_welcome_message.py12CODE
LOWarchivebox/misc/shell_welcome_message.py13CODE
LOWarchivebox/misc/shell_welcome_message.py14CODE
LOWarchivebox/misc/shell_welcome_message.py16CODE
LOWarchivebox/misc/shell_welcome_message.py17CODE
LOWarchivebox/misc/shell_welcome_message.py17CODE
LOWarchivebox/misc/shell_welcome_message.py19CODE
LOWarchivebox/misc/shell_welcome_message.py20CODE
LOWarchivebox/misc/shell_welcome_message.py22CODE
LOWarchivebox/core/models.py62CODE
LOWarchivebox/core/routes_util.py1CODE
LOWarchivebox/core/apps.py34CODE
LOWarchivebox/core/tag_util.py1CODE
LOWarchivebox/core/shutdown_util.py1CODE
LOWarchivebox/core/admin_site.py32CODE
LOWarchivebox/core/admin_site.py33CODE
LOWarchivebox/core/admin_site.py35CODE
LOWarchivebox/core/admin_site.py35CODE
LOWarchivebox/core/settings.py558CODE
LOWarchivebox/core/settings.py592CODE
LOWarchivebox/core/permissions.py1CODE
LOWarchivebox/core/recovery_util.py1CODE
LOWarchivebox/core/takeover_util.py1CODE
LOWarchivebox/core/wsgi.py10CODE
LOWarchivebox/core/sqlite_backend/base.py1CODE
LOWarchivebox/config/django.py55CODE
LOWarchivebox/config/paths.py16CODE
LOWarchivebox/config/common.py1CODE
LOWarchivebox/tests/test_server_security_browser.py4CODE
LOWarchivebox/crawls/schedule_util.py1CODE
LOWarchivebox/crawls/locks.py1CODE
LOWarchivebox/crawls/apps.py15CODE
LOWarchivebox/cli/archivebox_update.py2CODE
LOWarchivebox/cli/archivebox_add.py2CODE
LOWarchivebox/search/sonic_daemon.py1CODE
LOWarchivebox/personas/importers.py8CODE
LOWarchivebox/machine/models.py1CODE
LOWarchivebox/machine/apps.py19CODE
LOWarchivebox/services/binary_service.py1CODE
LOWarchivebox/services/runner.py1CODE
LOWarchivebox/services/process_service.py1CODE
LOWarchivebox/services/crawl_service.py1CODE
LOWarchivebox/services/tag_service.py1CODE
LOWarchivebox/services/__init__.py1CODE
LOWarchivebox/services/__init__.py2CODE
LOWarchivebox/services/__init__.py3CODE
LOWarchivebox/services/__init__.py4CODE
LOWarchivebox/services/__init__.py5CODE
LOWarchivebox/services/__init__.py6CODE
LOWarchivebox/services/__init__.py6CODE
LOWarchivebox/services/__init__.py6CODE
7 more matches not shown…
Structural Annotation Overuse28 hits · 42 pts
SeverityFileLineSnippetContext
LOWold/TODO_hook_concurrency.md94### Step 0: Pre-SetupCOMMENT
LOWold/TODO_hook_concurrency.md99### Step 1: Chrome Launch & Tab CreationCOMMENT
LOWold/TODO_hook_concurrency.md106### Step 2: Navigation & SettlementCOMMENT
LOWold/TODO_hook_concurrency.md114### Step 3: Page AdjustmentCOMMENT
LOWold/TODO_hook_concurrency.md124### Step 4: Ready for ArchivingCOMMENT
LOWold/TODO_hook_concurrency.md131### Step 5: DOM Extraction (Sequential, Non-BG)COMMENT
LOWold/TODO_hook_concurrency.md147### Step 6: Post-DOM ExtractionCOMMENT
LOWold/TODO_hook_concurrency.md158### Step 7: Chrome CleanupCOMMENT
LOWold/TODO_hook_concurrency.md165### Step 8: Post-ProcessingCOMMENT
LOWold/TODO_hook_concurrency.md174### Step 9: Indexing & FinalizationCOMMENT
LOWold/TODO_hook_concurrency.md361# Step 5: DOM Extraction (sequential, non-background)COMMENT
LOWold/TODO_hook_concurrency.md372# Step 6: Post-DOM Extraction (background for long-running)COMMENT
LOWold/TODO_hook_concurrency.md380# Step 7: URL Extraction (parse_* hooks moved from step 6)COMMENT
LOWold/TODO_hook_architecture.md1693### Step 1: Create migrationSTRING
LOWold/TODO_hook_architecture.md1704### Step 3: Update run_hook() (Phase 5)STRING
LOWold/TODO_hook_architecture.md1710### Step 4: Update ArchiveResult.run() (Phase 6)STRING
LOWold/TODO_hook_architecture.md1718### Step 5: Add finalization helpers (Phase 7)STRING
LOWold/TODO_hook_architecture.md1723### Step 6: Update SnapshotMachine.is_finished() (Phase 7)STRING
LOWold/TODO_hook_architecture.md1727### Step 7: Rename background hooks (Phase 7)STRING
LOWold/TODO_hook_architecture.md1730### Step 8: TestSTRING
LOWold/TODO_Process_cleanup_unification.md192### Step 1: Update Process.launch() (DONE - already exists)COMMENT
LOWold/TODO_Process_cleanup_unification.md195### Step 2: Refactor run_hook() to use Process.launch()COMMENT
LOWold/TODO_Process_cleanup_unification.md234### Step 3: Update SnapshotWorker to use Process methodsCOMMENT
LOWold/TODO_Process_cleanup_unification.md239### Step 4: Update ArchiveResult.run() to use new run_hook()COMMENT
LOWold/TODO_Process_cleanup_unification.md263### Step 5: Update Crawl.run() similarlyCOMMENT
LOWarchivebox/machine/models.py2254 # Step 1: Send SIGTERM for graceful shutdownCOMMENT
LOWarchivebox/machine/models.py2257 # Step 2: Wait for graceful exitCOMMENT
LOWarchivebox/machine/models.py2270 # Step 3: Force kill with SIGKILLCOMMENT
Over-Commented Block48 hits · 41 pts
SeverityFileLineSnippetContext
LOWdocker-compose.yml1# Usage:COMMENT
LOWdocker-compose.yml41COMMENT
LOWdocker-compose.yml61 # or remote control it to set up a chrome profile w/ login credentials for sites you want to archive.COMMENT
LOWdocker-compose.yml81COMMENT
LOWdocker-compose.yml101 # volumes:COMMENT
LOWdocker-compose.yml121# driver_opts:COMMENT
LOWbin/export_browser_history.sh1#!/usr/bin/env bashCOMMENT
LOWbin/docker_entrypoint.sh1#!/bin/bashCOMMENT
LOWold/archivebox.ts81 // 'https://browserleaks.com/canvas',COMMENT
LOWold/archivebox.ts101 // 'https://docker-compose.archivebox.io',COMMENT
LOWold/archivebox.ts121 // 'https://facebook.com/815781663692514/?comment_id=924451748966499',COMMENT
LOWold/archivebox.ts221 isLandscape: false,COMMENT
LOWold/archivebox.ts261 // {COMMENT
LOWold/archivebox.ts321// if (snap_id.startsWith('.')) continueCOMMENT
LOWold/archivebox.ts341// if (fs.existsSync(dest_path)) {COMMENT
LOWold/archivebox.ts361COMMENT
LOWold/archivebox.ts481 {webstore_id: 'ifibfemgeogfhoebkmokieepdoobkbpo', name: 'twocaptcha'}, // https://2captcha.com/blog/COMMENT
LOWold/archivebox.ts661 '--autoplay-policy=no-user-gesture-required', // auto-start videos so they trigger network requests + show up iCOMMENT
LOWold/archivebox.ts1761 if (snapshot_entry.sha256 == version_entry.sha256) {COMMENT
LOWold/archivebox.ts1781 // mv ./data/archive/<snap_id>/example.txt -> ./data/archive/<snap_id>/versions/<version_id>/example.txtCOMMENT
LOWold/archivebox.ts2101 // ffmpeg_Path: '<path of ffmpeg_path>' || null,COMMENT
LOWold/archivebox.ts2421 // await page.setCookie(...cookies)COMMENT
LOWold/archivebox.ts3121 const recorder = page_state.recorderCOMMENT
LOWold/archivebox.ts3241 // const screenshot_jpg = SCREENSHOT_JPG_PATH(page)COMMENT
LOWold/archivebox.ts3261 // cropped_bytes[idx + 1] = this.data[idx + 1];COMMENT
LOWold/archivebox.ts3501// spawn(COMMENT
LOWold/archivebox.ts4541COMMENT
LOWold/archivebox.ts5341COMMENT
LOWold/archivebox.ts5361 // mimeType: 'inode/directory'COMMENT
LOWold/archivebox.ts5461// {COMMENT
LOWold/archivebox.ts5501 // example: detectFilename({url: 'https://example.com/favicon.png', extension: 'ico'}) outputs 'favicon.ico'COMMENT
LOWold/archivebox.ts6041COMMENT
LOWold/archivebox.ts6061// video: true,COMMENT
LOWdocs/.readthedocs.yaml1# Read the Docs configuration file for ArchiveBox docsCOMMENT
LOWarchivebox/misc/hashing.py241# "mime_type": "inode/directory",COMMENT
LOWarchivebox/core/models.py4121 # missing delete_at values from fresh Snapshot/Crawl config when theCOMMENT
LOWarchivebox/core/settings.py301 # "OPTIONS": {COMMENT
LOWarchivebox/core/settings.py381SECURE_CONTENT_TYPE_NOSNIFF = TrueCOMMENT
LOWarchivebox/machine/detect.py81 hw_product += " " + line.split(":", 1)[-1].strip()COMMENT
LOWarchivebox/machine/detect.py321# 'os_arch': 'arm64',COMMENT
LOWarchivebox/machine/detect.py341# 'cpu_boot_time': '2024-09-24T21:20:16',COMMENT
LOWarchivebox/templates/admin/base.html281 font-size: 13px;COMMENT
LOWarchivebox/templates/static/setup_wizard.css1#archivebox-setup-wizard { position:fixed; inset:0; z-index:2147483647; display:flex; align-items:center; justify-contenCOMMENT
LOWarchivebox/templates/static/setup_wizard.css21#archivebox-setup-wizard .abx-url-comparison { display:grid; gap:4px; margin-top:10px; padding:10px 12px; border-radius:COMMENT
LOWarchivebox/templates/static/setup_wizard.css41#archivebox-setup-wizard .abx-check input { width:18px; height:18px; margin-top:2px; }COMMENT
LOWarchivebox/templates/static/setup_wizard.css61#archivebox-setup-wizard code { padding:1px 4px; border-radius:4px; background:#eef2f7; color:#334155; }COMMENT
LOWarchivebox/base_models/admin.py921 path("<hexuuid:object_id>/change/", self.admin_site.admin_view(self.change_view), name="{}_{}_change".formatCOMMENT
LOWarchivebox/services/runner.py2301 if daemon:COMMENT
Self-Referential Comments12 hits · 32 pts
SeverityFileLineSnippetContext
MEDIUMarchivebox/misc/logging_util.py351 # Create a Rich Text object for proper formattingCOMMENT
MEDIUMarchivebox/core/templatetags/core_tags.py724 # Create a mini template and render it with contextSTRING
MEDIUMarchivebox/config/collection.py20 "# This file is kept in sync 1:1 with Machine.config in the index DB —\n"CODE
MEDIUMarchivebox/plugins/hooks.py457 # Create a failed Process record for exceptionsCOMMENT
MEDIUMarchivebox/tests/test_cli_status.py100 # Create an orphaned directoryCOMMENT
MEDIUMarchivebox/tests/test_cli_crawl.py242 # Create a crawlCOMMENT
MEDIUMarchivebox/tests/migrations_helpers.py762 # Create a userCOMMENT
MEDIUMarchivebox/tests/migrations_helpers.py933 # Create a userCOMMENT
MEDIUMarchivebox/tests/test_cli_archiveresult.py34 # Create a snapshot firstCOMMENT
MEDIUMarchivebox/cli/archivebox_update.py673 # Create a new crawl (created_by will default to system user)COMMENT
MEDIUMarchivebox/cli/archivebox_persona.py15 # Create a new personaSTRING
MEDIUMarchivebox/machine/models.py799 # Create the derived convenience bin dir if it doesn't exist.COMMENT
Fake / Example Data30 hits · 30 pts
SeverityFileLineSnippetContext
LOWdocs/Web-Archiving-Community.md218- [ReadableWebProxy](https://github.com/fake-name/ReadableWebProxy) A proxying archiver that downloads content from siteCODE
LOWarchivebox/core/admin_tags.py45 "placeholder": "research, receipts, product-design...",CODE
LOWarchivebox/core/forms.py103 "placeholder": (CODE
LOWarchivebox/core/forms.py135 "placeholder": "0 = unlimited",CODE
LOWarchivebox/core/forms.py145 "placeholder": "0 = unlimited, or e.g. 45mb / 1gb",CODE
LOWarchivebox/core/forms.py157 "placeholder": "0, 300, 1.5m, or 1hr",CODE
LOWarchivebox/core/forms.py168 "placeholder": "60, 1.5m, or 1hr",CODE
LOWarchivebox/core/forms.py178 "placeholder": "0 = unlimited, or e.g. 45mb / 1gb",CODE
LOWarchivebox/core/forms.py188 "placeholder": "0 = keep forever, or e.g. 1d / 6mo",CODE
LOWarchivebox/core/forms.py209 "placeholder": "Optional notes about this crawl",CODE
LOWarchivebox/core/forms.py270 "placeholder": "e.g., daily, weekly, 0 */6 * * * (every 6 hours)",CODE
LOWarchivebox/tests/test_cli_manage.py69 "admin@example.com",CODE
LOWarchivebox/tests/test_server_security_browser.py402 defaults={"email": "admin@example.com", "is_staff": True, "is_superuser": True},CODE
LOWarchivebox/tests/migrations_helpers.py767 'admin@example.com', 1, 1, datetime('now'))CODE
LOWarchivebox/tests/migrations_helpers.py938 'admin@example.com', 1, 1, datetime('now'))CODE
LOWarchivebox/tests/test_ui_add_view.py43 placeholder = form.fields["url"].widget.attrs["placeholder"]CODE
LOWarchivebox/tests/test_urls.py229 defaults={"email": "admin@example.com", "is_staff": True, "is_superuser": True},STRING
LOWarchivebox/crawls/admin.py403 "placeholder": "https://example.com\nhttps://example2.com\n# Comments start with #",CODE
LOWarchivebox/personas/forms.py65 "placeholder": "/Users/alice/Library/Application Support/Google/Chrome or http://127.0.0.1:9222 or wCODE
LOWarchivebox/personas/forms.py76 "placeholder": "Default or Profile 1",CODE
LOW…onitor/templates/progressmonitor/progress_monitor.html1108 preview.classList.add('placeholder');CODE
LOW…onitor/templates/progressmonitor/progress_monitor.html1189 type: 'placeholder',CODE
LOW…onitor/templates/progressmonitor/progress_monitor.html1210 type: 'placeholder',CODE
LOW…onitor/templates/progressmonitor/progress_monitor.html1222 type: 'placeholder',CODE
LOW…onitor/templates/progressmonitor/progress_monitor.html1261 type: 'placeholder',CODE
LOW…onitor/templates/progressmonitor/progress_monitor.html1268 if (target.type === 'placeholder') {CODE
LOW…onitor/templates/progressmonitor/progress_monitor.html1282 if (screencastPanel.dataset.mode === 'placeholder' && screencastPanel.dataset.key === placeholderKey) {CODE
LOW…onitor/templates/progressmonitor/progress_monitor.html1285 screencastPanel.dataset.mode = 'placeholder';CODE
LOWarchivebox/templates/static/select2.min.js2!function(n){"function"==typeof define&&define.amd?define(["jquery"],n):"object"==typeof module&&module.exports?module.eCODE
LOWarchivebox/templates/static/jquery.dataTables.min.js41g):j+g,b=h("<div/>",{id:!f.f?c+"_filter":null,"class":b.sFilter}).append(h("<label/>").append(j)),f=function(){var b=!thCODE
Redundant / Tautological Comments22 hits · 28 pts
SeverityFileLineSnippetContext
LOWbin/docker_entrypoint.sh80# Check if user attempted to run it in the root of their home folder or hard drive (common mistake)COMMENT
LOWarchivebox/core/models.py3025 # Check if any ARs are still pending/startedCOMMENT
LOWarchivebox/core/models.py3075 # Check if sealedCOMMENT
LOWarchivebox/plugins/hooks.py227 # Check if this is a plugin directory (not the root plugins dir)COMMENT
LOWarchivebox/plugins/hooks.py593 # Check if discovered snapshot exceeds crawl max_depthCOMMENT
LOWarchivebox/crawls/models.py473 # Check if crawl already exists by IDCOMMENT
LOWarchivebox/crawls/models.py946 # Check if already in urls (parse existing JSONL entries)COMMENT
LOWarchivebox/crawls/models.py1467 # Check if any snapshots exist for this crawlCOMMENT
LOWarchivebox/crawls/models.py1630 # Set retry_at to near future so tick() can poll and check is_finished()COMMENT
LOWarchivebox/cli/archivebox_update.py689 # Check if needs migration (0.8.x → 0.9.x)COMMENT
LOWarchivebox/cli/archivebox_extract.py379 # Output results as JSONL (when piped) or human-readable (when TTY)COMMENT
LOWarchivebox/cli/archivebox_extract.py431 # Check if input looks like existing ArchiveResult IDs to processCOMMENT
LOWarchivebox/cli/archivebox_version.py144 # Check if LDAP is enabled (simple config lookup)COMMENT
LOWarchivebox/cli/archivebox_persona.py206 # Check if resolved_path is a child of personas_dirCOMMENT
LOWarchivebox/progressmonitor/views.py831 # Check if crawl can start (for debugging stuck crawls)COMMENT
LOWarchivebox/progressmonitor/views.py847 # Check if retry_at is in the future (would prevent worker from claiming)COMMENT
LOWarchivebox/machine/models.py824 # Check if it's already pointing to the right placeCOMMENT
LOWarchivebox/machine/models.py1628 # Check if too old (PID definitely reused)COMMENT
LOWarchivebox/machine/models.py1632 # Check if OS process still exists with matching start timeCOMMENT
LOWarchivebox/machine/models.py2350 # Check if process exitedCOMMENT
LOWarchivebox/machine/models.py2654 # Check if installation succeeded by looking at updated statusCOMMENT
LOWarchivebox/workers/supervisord_util.py1263 # Check if the monitored process has exitedCOMMENT
Docstring Block Structure4 hits · 20 pts
SeverityFileLineSnippetContext
HIGHold/TODO_process_tracking.md711 Wait for process to exit, polling periodically. Args: timeout: Max seconds to wait (None =STRING
HIGHarchivebox/plugins/hooks.py89 Check if a hook is a background hook (doesn't block foreground progression). Background hooks have '.bg.' in tSTRING
HIGHarchivebox/plugins/hooks.py152 Find all hook scripts for an event family. Searches both built-in and user plugin directories. Filters outSTRING
HIGHarchivebox/machine/models.py2197 Wait for process to exit, polling periodically. Args: timeout: Max seconds to wait (None =STRING
Modern Structural Boilerplate14 hits · 14 pts
SeverityFileLineSnippetContext
LOWarchivebox/uuid_compat.py48__all__ = ["CompactUUID", "CompactUUIDField", "compact_uuid", "uuid7"]CODE
LOWarchivebox/misc/serve_static.py588def _set_transformed_response_headers(response, fullpath: Path, statobj: os.stat_result, encoding: str | None, config) -CODE
LOWarchivebox/core/models.py4833 def _set_binary_from_cmd(self, cmd: list) -> None:CODE
LOWarchivebox/core/settings.py29logger = logging.getLogger(__name__)CODE
LOWarchivebox/tests/conftest.py81def _set_test_source_pythonpath(env: dict[str, str]) -> None:CODE
LOWarchivebox/tests/test_opencode_agent.py33def _set_archivebox_config(data_dir: Path, *values: str, env: dict[str, str] | None = None) -> None:CODE
LOWarchivebox/tests/test_crawl_runner.py641 async def update_config_between_snapshots(event: SnapshotCompletedEvent) -> None:CODE
LOWarchivebox/tests/test_urls.py316 def _setup_data_dir(self, real_archive_with_example: Path) -> None:CODE
LOWarchivebox/tests/test_urls.py339 def _set_config(self, *settings: str) -> None:CODE
LOWarchivebox/crawls/models.py640 def set_url_filters(self, allowlist, denylist) -> None:CODE
LOWarchivebox/cli/__init__.py93 def _setup_django_for_lazy_import(cls, cmd_name: str) -> None:CODE
LOWarchivebox/api/webhooks.py11logger = logging.getLogger(__name__)CODE
LOWarchivebox/workers/models.py41logger = logging.getLogger(__name__)CODE
LOWarchivebox/services/__init__.py10__all__ = [CODE
AI Slop Vocabulary6 hits · 10 pts
SeverityFileLineSnippetContext
MEDIUMbin/fuzz_test.sh4# This is intentionally not a test harness: it does not assert success/failure.COMMENT
LOWarchivebox/misc/util.py460 # if response is non-test (e.g. image or other binary files), just return the filename insteadCOMMENT
MEDIUMarchivebox/core/models.py4619 # these properties provide seamless access to Process data through ArchiveResultCOMMENT
LOWarchivebox/core/views.py1515 # We can't just call request.build_absolute_uri in the template, because it would include query parametersCOMMENT
LOWarchivebox/cli/archivebox_archiveresult.py115 # If no id, we could create it, but for now just pass throughCOMMENT
LOWarchivebox/cli/archivebox_crawl.py94 # Handle existing Crawl records (just pass through with id)COMMENT
AI Structural Patterns10 hits · 8 pts
SeverityFileLineSnippetContext
LOWarchivebox/core/models.py3482CODE
LOWarchivebox/core/tag_util.py268CODE
LOWarchivebox/config/common.py1062CODE
LOWarchivebox/tests/conftest.py201CODE
LOWarchivebox/tests/test_cli_status.py24CODE
LOWarchivebox/cli/archivebox_schedule.py12CODE
LOWarchivebox/cli/archivebox_update.py182CODE
LOWarchivebox/cli/archivebox_remove.py29CODE
LOWarchivebox/cli/archivebox_add.py54CODE
LOWarchivebox/workers/supervisord_util.py1442CODE
Modern AI Meta-Vocabulary2 hits · 5 pts
SeverityFileLineSnippetContext
MEDIUMold/TODO_hook_statemachine_cleanup.md74# 1. State Machine orchestrates transitionsCOMMENT
MEDIUMdocs/Setting-up-Search.md225- [#1139 Feature Request: Add AI-assisted summarization, tagging, search, and more using LLMs / RAG](https://github.com/CODE
Example Usage Blocks3 hits · 4 pts
SeverityFileLineSnippetContext
LOWdocker-compose.yml1# Usage:COMMENT
LOWbin/export_browser_history.sh4# Usage:COMMENT
LOWarchivebox/machine/detect.py307# Example usageCOMMENT
Verbosity Indicators3 hits · 3 pts
SeverityFileLineSnippetContext
LOWarchivebox/machine/models.py2254 # Step 1: Send SIGTERM for graceful shutdownCOMMENT
LOWarchivebox/machine/models.py2257 # Step 2: Wait for graceful exitCOMMENT
LOWarchivebox/machine/models.py2270 # Step 3: Force kill with SIGKILLCOMMENT
Slop Phrases2 hits · 2 pts
SeverityFileLineSnippetContext
LOWpyproject.toml96 # to use sonic make sure you have a sonic server running in docker (archivebox/sonic) or locally:COMMENT
LOWarchivebox/core/admin_snapshots.py1479 f"Successfully deleted {total} Snapshots ({deleted_count} total objects including related records). Don'CODE
Overly Generic Function Names1 hit · 1 pts
SeverityFileLineSnippetContext
LOWarchivebox/mcp/server.py502 def handle_request(self, request: dict) -> dict | None:CODE