AI Slop Code RIsk Monitor

ArchiveBox/ArchiveBox

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

20.3 Elevated pattern signal View on GitHub

Maintenance and Governance Review

This report summarizes scanner evidence for ArchiveBox/ArchiveBox, a Python project with 28,729 GitHub stars. SynthScan examined 212,798 lines of code across 784 source files, recording 2752 pattern matches distributed across 24 syntactic categories. The legacy adjusted pattern signal is 20.3 (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.

20.3
Adjusted Signal
20.3
Raw Pattern Score
100%
Time Factor
2026-10-10
Last Push
28.7K
Stars
Python
Language
212.8K
Lines of Code
784
Files
2.8K
Pattern Hits
2026-10-12
Scan Date
0.42
HC Hit Rate

Risk Review · v3

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

Cognitive Ownership Risk 35.4/100 · MEDIUM

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

Hallucinated Dependency & Supply Chain Risk 19.6/100 · LOW

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

Agent Over-Engineering Ratio 52.2/100 · HIGH

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

PR Review Velocity Impact 67.4/100 · HIGH

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

What These Metrics Mean

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

Pattern-Signal History

This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.

Severity Breakdown

Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.

CRITICAL 10HIGH 319MEDIUM 166LOW 2257

Directory Score Breakdown

This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.

Pattern Findings

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

Hyper-Verbose Identifiers1740 hits · 1606 pts
SeverityFileLineSnippetContext
LOWbin/take_screenshot.js67async function waitForVisibleCardPreviews(page, timeout = 45000) {CODE
LOW.github/pages/verify.py46def verify_screenshot_references(output, canonical):CODE
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.py28def filter_queryset_by_uuid_substring(queryset, slug: str, field: str = "id"):CODE
LOWarchivebox/misc/util.py163def 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
LOW⚡archivebox/misc/checks.py203def is_archivebox_source_root(path: Path | str | None = None) -> bool:CODE
LOW⚡archivebox/misc/checks.py212def check_not_inside_source_dir(path: Path | str | None = None) -> None:CODE
LOW⚡archivebox/misc/checks.py221def check_data_dir_permissions(config=None, **config_kwargs):CODE
LOWarchivebox/misc/logging_util.py438def printable_dependency_version(name: str, dependency: dict) -> str:CODE
LOWarchivebox/misc/serve_static.py72def add_replay_archive_fallbacks(response: HttpResponse) -> HttpResponse:CODE
LOWarchivebox/misc/serve_static.py399def _build_directory_zip_response(CODE
LOWarchivebox/misc/serve_static.py489async def _stream_ranged_file_async(ranged_file: "RangedFileReader"):CODE
LOWarchivebox/misc/serve_static.py605def _extract_markdown_candidate(text: str) -> str:CODE
LOWarchivebox/misc/serve_static.py629def _render_text_preview_document(text: str, title: str) -> str:CODE
LOWarchivebox/misc/serve_static.py679def _render_image_preview_document(image_url: str, title: str) -> str:CODE
LOWarchivebox/misc/serve_static.py729def _encoded_responses_image_url(image_url: str, page_url: str | None) -> str | None:CODE
LOWarchivebox/misc/serve_static.py741def _index_responses_paths_for_html_images(CODE
LOWarchivebox/misc/serve_static.py794def _rewrite_html_image_sources_to_responses(CODE
LOWarchivebox/misc/serve_static.py846def _rewrite_html_image_sources_for_request(CODE
LOWarchivebox/misc/serve_static.py867def _apply_transformed_html_preview_style(html_text: str) -> str:CODE
LOWarchivebox/misc/serve_static.py875def _set_transformed_response_headers(CODE
LOWarchivebox/misc/serve_static.py889def _render_markdown_document(markdown_text: str) -> str:CODE
LOWarchivebox/misc/serve_static.py911def _is_risky_replay_document(fullpath: Path, content_type: str) -> bool:CODE
LOWarchivebox/misc/serve_static.py929def _apply_archive_replay_headers(CODE
LOWarchivebox/misc/serve_static.py972def serve_static_with_byterange_support(request, path, document_root=None, show_indexes=False, is_archive_replay: bool =CODE
LOWarchivebox/misc/serve_static.py348def _format_direntry_timestamp(stat_result: os.stat_result) -> str:STRING
LOWarchivebox/core/admin_archiveresults.py45def build_abx_dl_display_command(result: ArchiveResult) -> str:CODE
LOWarchivebox/core/admin_archiveresults.py56def build_abx_dl_replay_command(result: ArchiveResult, config=None) -> str:CODE
LOWarchivebox/core/admin_archiveresults.py90def render_archiveresults_list(archiveresults_qs, limit=50, config=None, can_delete=False):CODE
LOWarchivebox/core/admin_archiveresults.py361 def get_parent_object_from_request(self, request):STRING
LOWarchivebox/core/admin_archiveresults.py521 def get_admin_toolbar_actions(self, request, obj):STRING
LOW⚡archivebox/core/models.py886 def get_delete_after_config_value(self):CODE
LOW⚡archivebox/core/models.py892 def missing_delete_at_candidates(cls):CODE
LOW⚡archivebox/core/models.py901 def is_archivebox_internal_url(cls, url: str, *, config: Mapping[str, Any] | Any | None = None) -> bool:CODE
LOW⚡archivebox/core/models.py2179 def move_directory_to_invalid(snapshot_dir: Path):CODE
LOW⚡archivebox/core/models.py3876 def get_detail_page_auxiliary_items(CODE
LOWarchivebox/core/models.py656 def crawl_total_and_status_counts(cls, crawl_ids: Iterable[Any], *, status: str) -> dict[str, dict[str, int]]:CODE
LOWarchivebox/core/models.py749 def restore_paused_scheduler_marker(self) -> None:CODE
LOWarchivebox/core/models.py763 def reconcile_parent_lifecycle(self, *, lock_seconds: int = 60) -> bool | None:CODE
LOWarchivebox/core/models.py796 def finalize_completed_upload_results(self) -> int:CODE
LOWarchivebox/core/models.py983 def ensure_permissions_config(self, crawl_permissions: str | None = None) -> bool:CODE
LOWarchivebox/core/models.py1003 def validate_url_for_archiving(self, *, config: Mapping[str, Any] | Any | None = None) -> None:CODE
LOWarchivebox/core/models.py1098 def migrate_filesystem_to_current_version(self, source_dir: Path | None = None, config: "ArchiveBoxBaseConfig | NoneCODE
LOWarchivebox/core/models.py1190 def hydrate_archiveresult_output_metadata(self, snapshot_dir: Path | None = None) -> int:CODE
LOWarchivebox/core/models.py1247 def copy_file_without_overwriting(source: str, destination: str):CODE
LOWarchivebox/core/models.py1322 def _cleanup_old_migration_dir(self, old_dir: Path, new_dir: Path) -> bool:CODE
LOWarchivebox/core/models.py1387 def get_storage_path_for_version(self, version: str) -> Path:CODE
LOWarchivebox/core/models.py1679 def _detect_fs_version_from_index(data: dict) -> str:CODE
LOWarchivebox/core/models.py1765 def reconcile_with_index_json(self, output_dir: Path | None = None, update_existing_archive_results: bool = True):CODE
LOWarchivebox/core/models.py1795 def _merge_archive_results_from_index(self, index_data: dict, update_existing: bool = True):CODE
LOWarchivebox/core/models.py1818 def _create_archive_result_if_missing(CODE
LOWarchivebox/core/models.py2073 def convert_index_json_to_jsonl(self, output_dir: Path | None = None) -> bool:CODE
LOWarchivebox/core/models.py2202 def find_and_merge_duplicates(cls) -> int:CODE
LOWarchivebox/core/models.py2652 def _normalize_title_candidate(candidate: str | None, *, snapshot_url: str) -> str:CODE
LOWarchivebox/core/models.py2811 def remove_legacy_archive_symlink(self) -> None:CODE
LOWarchivebox/core/models.py2826 def reconcile_filesystem_links(self) -> None:CODE
1680 more matches not shown…
Empty Error Handlers147 hits · 728 pts
SeverityFileLineSnippetContext
HIGH.github/pages/verify.py24except (BrokenPipeError, ConnectionResetError):CODE
HIGHarchivebox/misc/system.py76except OSError:CODE
HIGHarchivebox/misc/util.py321except (TypeError, ValueError, OSError):CODE
HIGHarchivebox/misc/util.py330except ValueError:CODE
HIGHarchivebox/misc/util.py441except Exception:CODE
HIGHarchivebox/misc/util.py446except Exception:CODE
HIGHarchivebox/misc/util.py451except Exception:CODE
HIGHarchivebox/misc/checks.py49except Exception:CODE
HIGHarchivebox/misc/logging_util.py79except ValueError:CODE
HIGHarchivebox/misc/logging_util.py62except BaseException: # lgtm [py/catch-base-exception]CODE
HIGHarchivebox/misc/logging_util.py70except Exception:CODE
HIGHarchivebox/misc/logging_util.py76except (OSError, BrokenPipeError):CODE
HIGHarchivebox/misc/jsonl.py81except json.JSONDecodeError:CODE
HIGHarchivebox/misc/jsonl.py94except ValueError:CODE
HIGHarchivebox/misc/serve_static.py275except Exception:CODE
HIGHarchivebox/misc/serve_static.py1128except (OSError, UnicodeDecodeError, ValueError):CODE
HIGHarchivebox/misc/serve_static.py1148except (OSError, ValueError):CODE
HIGHarchivebox/misc/serve_static.py1182except (OSError, RuntimeError, ValueError):CODE
HIGHarchivebox/misc/serve_static.py1236except (OSError, UnicodeDecodeError, ValueError):CODE
HIGHarchivebox/core/models.py1241except OSError:CODE
HIGHarchivebox/core/models.py1440except OSError:CODE
HIGHarchivebox/core/models.py1446except (json.JSONDecodeError, OSError):CODE
HIGHarchivebox/core/models.py1539except OSError:CODE
HIGHarchivebox/core/models.py1545except (json.JSONDecodeError, OSError):CODE
HIGHarchivebox/core/models.py1842except (TypeError, ValueError, OverflowError):CODE
HIGHarchivebox/core/models.py1851except (TypeError, ValueError, OverflowError):CODE
HIGHarchivebox/core/models.py3073except Snapshot.DoesNotExist:CODE
HIGHarchivebox/core/models.py4255except ArchiveResult.DoesNotExist:CODE
HIGHarchivebox/core/models.py4351except type(self).DoesNotExist:CODE
HIGHarchivebox/core/models.py1736except (OSError, TypeError, ValueError, json.JSONDecodeError):CODE
HIGHarchivebox/core/models.py4719except ValueError:CODE
HIGHarchivebox/core/settings_logging.py100except Exception:CODE
HIGHarchivebox/core/shutdown_util.py132except (psutil.NoSuchProcess, psutil.TimeoutExpired):CODE
HIGHarchivebox/core/shutdown_util.py141except psutil.NoSuchProcess:CODE
HIGHarchivebox/core/settings.py177except ImportError:CODE
HIGHarchivebox/core/settings.py600except ImportError:CODE
HIGHarchivebox/core/views.py1023except Http404:CODE
HIGHarchivebox/core/views.py1623except ValueError:CODE
HIGHarchivebox/core/views.py656except ValueError:CODE
HIGHarchivebox/config/version.py26except importlib.metadata.PackageNotFoundError:CODE
HIGHarchivebox/config/version.py35except FileNotFoundError:CODE
HIGHarchivebox/config/version.py62except Exception:CODE
HIGHarchivebox/config/version.py109except Exception:CODE
HIGHarchivebox/config/version.py55except Exception:CODE
HIGHarchivebox/config/version.py68except Exception:CODE
HIGHarchivebox/config/paths.py48except (OSError, FileNotFoundError, PermissionError):CODE
HIGHarchivebox/config/paths.py76except (OSError, FileNotFoundError, PermissionError):CODE
HIGHarchivebox/config/paths.py155except OSError:CODE
HIGHarchivebox/config/paths.py161except OSError:CODE
HIGHarchivebox/config/paths.py185except (OSError, PermissionError):CODE
HIGHarchivebox/config/paths.py231except Exception:CODE
HIGHarchivebox/config/paths.py245except Exception:CODE
HIGHarchivebox/config/paths.py272except Exception:CODE
HIGHarchivebox/config/collection.py326except Exception:CODE
HIGHarchivebox/config/permissions.py285except (FileNotFoundError, PermissionError):CODE
HIGHarchivebox/config/configset.py98except (TypeError, ValueError):CODE
HIGHarchivebox/config/views.py302except (ImportError, RuntimeError, TypeError, ValueError):CODE
HIGHarchivebox/config/views.py362except (RuntimeError, TypeError, ValueError):CODE
HIGHarchivebox/tests/test_misc_checks.py112except KeyboardInterrupt:CODE
HIGHarchivebox/tests/conftest.py713except ProcessLookupError:CODE
87 more matches not shown…
Cross-Language Confusion112 hits · 662 pts
SeverityFileLineSnippetContext
HIGHdocs/test_codeblocks_manifest.py488 f" (cd {ROOT} && UV_PROJECT_ENVIRONMENT={root_checkout_venv} {current_uv} --no-cache sync --locCODE
HIGH.github/pages/verify.py82 return null;STRING
HIGHarchivebox/misc/checks.py117 print(" docker compose pull && docker compose up -d", file=sys.stderr)CODE
HIGH⚡archivebox/misc/serve_static.py133 while (rest && urls.length < 64) {CODE
HIGH⚡archivebox/misc/serve_static.py137 urls.push(token.replace(/,+$/, ""));CODE
HIGH⚡archivebox/misc/serve_static.py144 if (!url.startsWith(prefix)) return null;CODE
HIGH⚡archivebox/misc/serve_static.py151 if (response.status !== 404 || request.method !== "GET" ||CODE
HIGH⚡archivebox/misc/serve_static.py157 const name = this.collections.root || request.url.slice(this.replayPrefix.length).split("/", 1)[0];CODE
HIGH⚡archivebox/misc/serve_static.py161 if (!collection || typeof collection.store?.lookupUrl !== "function" || collection.liveRedirectOnNotFound ||CODE
HIGH⚡archivebox/misc/serve_static.py202 if (expired || size > 2 * 1024 * 1024) return [];CODE
HIGH⚡archivebox/misc/serve_static.py212 let base = referring[2], picture = null;CODE
HIGH⚡archivebox/misc/serve_static.py216 if (!/^https?:$/.test(url.protocol) || url.username || url.password) return null;CODE
HIGH⚡archivebox/misc/serve_static.py216 if (!/^https?:$/.test(url.protocol) || url.username || url.password) return null;CODE
HIGH⚡archivebox/misc/serve_static.py219 } catch {return null;}CODE
HIGH⚡archivebox/misc/serve_static.py225 if (/^<\/picture\b/i.test(tag)) {picture = null; continue;}CODE
HIGH⚡archivebox/misc/serve_static.py227 if (/^<source\b/i.test(tag)) {if (picture) picture.push(...urls); continue;}CODE
HIGH⚡archivebox/misc/serve_static.py229 groups.push([...new Set([...urls, ...(picture || [])])].slice(0, 64));CODE
HIGHarchivebox/misc/serve_static.py111 if (!replay || typeof replay.handleFetch !== "function" ||CODE
HIGHarchivebox/misc/serve_static.py113 replay.proxyOriginMode || replay.topFramePassthrough || replay.__abxArchiveFallbacks) return;CODE
HIGHarchivebox/misc/serve_static.py172 if (!api || new URL(referring[2]).origin !== `https://${api[1]}.com`) return response;CODE
HIGHarchivebox/misc/serve_static.py179 if (expired || !indexed || indexed.url !== url || alternative.status !== 200 ||CODE
HIGH⚡archivebox/core/widgets.py532 return window.updateHiddenField_id_config || null;CODE
HIGH⚡archivebox/core/widgets.py532 return window.updateHiddenField_id_config || null;CODE
HIGH⚡archivebox/core/widgets.py538 return null;CODE
HIGH⚡archivebox/core/widgets.py542 return keyInput && keyInput.value.trim() === key;CODE
HIGH⚡archivebox/core/widgets.py544 return matches.length ? matches[0] : null;CODE
HIGH⚡archivebox/core/widgets.py551 return rows ? rows.lastElementChild : null;CODE
HIGH⚡archivebox/core/widgets.py553 return null;CODE
HIGH⚡archivebox/core/widgets.py618 if (!domain || seen[domain]) {{CODE
HIGH⚡archivebox/core/widgets.py623 domains.push(domain);CODE
HIGH⚡archivebox/core/widgets.py627 var hostAndPort = String(parsed.host || parsed.hostname || '').toLowerCase();CODE
HIGH⚡archivebox/core/widgets.py629 if (!hostAndPort || seen[pathKey]) {{CODE
HIGH⚡archivebox/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.py1066 "this.dataset.fallbacks && this.dataset.fallbacks.length ? "CODE
HIGHarchivebox/tests/test_provider_plugin_replay.py100 if (node.id === 'main-frame') frames.push(node);CODE
HIGHarchivebox/tests/test_provider_plugin_replay.py187 "el => el.tagName.toLowerCase() === 'svg' ? el.getBoundingClientRect().width > 0 : el.complete && elCODE
HIGHarchivebox/tests/test_provider_plugin_replay.py213 assert saved_image.evaluate("el => el.complete && el.naturalWidth > 0")CODE
HIGHarchivebox/tests/test_release_workflow.py179 assert checkout["with"]["token"] == "${{ secrets.RELEASE_GH_TOKEN || github.token }}"CODE
HIGH⚡archivebox/tests/test_server_security_browser.py38 finalUrl: null,CODE
HIGH⚡archivebox/tests/test_server_security_browser.py39 status: null,CODE
HIGH⚡archivebox/tests/test_server_security_browser.py40 error: null,CODE
HIGH⚡archivebox/tests/test_server_security_browser.py49 result.status = response ? response.status() : null;CODE
HIGH⚡archivebox/tests/test_server_security_browser.py95 consoleMessages.push({type: message.type(), text: message.text()});CODE
HIGH⚡archivebox/tests/test_server_security_browser.py98 consoleMessages.push({type: "pageerror", text: String(error)});CODE
HIGH⚡archivebox/tests/test_server_security_browser.py101 requestFailures.push({CODE
HIGH⚡archivebox/tests/test_server_security_browser.py113 () => window.__dangerousScriptRan !== true || window.__probeResults !== undefined,CODE
HIGH⚡archivebox/tests/test_server_security_browser.py113 () => window.__dangerousScriptRan !== true || window.__probeResults !== undefined,CODE
HIGH⚡archivebox/tests/test_server_security_browser.py120 probeResults: window.__probeResults || null,CODE
HIGH⚡archivebox/tests/test_server_security_browser.py120 probeResults: window.__probeResults || null,CODE
HIGH⚡archivebox/tests/test_server_security_browser.py128 status: response ? response.status() : null,CODE
HIGH⚡archivebox/tests/test_server_security_browser.py130 contentSecurityPolicy: response ? response.headers()["content-security-policy"] || null : null,CODE
52 more matches not shown…
Decorative Section Separators137 hits · 376 pts
SeverityFileLineSnippetContext
MEDIUMarchivebox/misc/db.py25# ============================================================================COMMENT
MEDIUMarchivebox/misc/db.py27# ============================================================================COMMENT
MEDIUM⚡archivebox/core/models.py2174 # =========================================================================COMMENT
MEDIUM⚡archivebox/core/models.py2176 # =========================================================================COMMENT
MEDIUM⚡archivebox/core/models.py3872 # =========================================================================COMMENT
MEDIUM⚡archivebox/core/models.py3874 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py230 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py232 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py333 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py335 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py454 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py456 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py1059 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py1061 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py1353 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py1355 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py1411 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py1413 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py1696 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py1698 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py2311 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py2313 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py3279 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py3281 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py3340 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py3342 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py3392 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py3394 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py3568 # =========================================================================COMMENT
MEDIUMarchivebox/core/models.py3570 # =========================================================================COMMENT
MEDIUMarchivebox/tests/conftest.py162# =============================================================================COMMENT
MEDIUMarchivebox/tests/conftest.py164# =============================================================================COMMENT
MEDIUMarchivebox/tests/conftest.py330# =============================================================================COMMENT
MEDIUMarchivebox/tests/conftest.py332# =============================================================================COMMENT
MEDIUMarchivebox/tests/conftest.py1937# =============================================================================COMMENT
MEDIUMarchivebox/tests/conftest.py1939# =============================================================================COMMENT
MEDIUMarchivebox/tests/conftest.py1985# =============================================================================COMMENT
MEDIUMarchivebox/tests/conftest.py1987# =============================================================================COMMENT
MEDIUMarchivebox/tests/conftest.py1219# =============================================================================STRING
MEDIUMarchivebox/tests/conftest.py1221# =============================================================================STRING
MEDIUMarchivebox/tests/migrations_helpers.py22# =============================================================================COMMENT
MEDIUMarchivebox/tests/migrations_helpers.py24# =============================================================================COMMENT
MEDIUMarchivebox/tests/migrations_helpers.py506# =============================================================================STRING
MEDIUMarchivebox/tests/migrations_helpers.py508# =============================================================================STRING
MEDIUM⚡archivebox/tests/migrations_helpers.py1229# =============================================================================STRING
MEDIUM⚡archivebox/tests/migrations_helpers.py1231# =============================================================================STRING
MEDIUM⚡archivebox/cli/archivebox_archiveresult.py51# =============================================================================COMMENT
MEDIUM⚡archivebox/cli/archivebox_archiveresult.py53# =============================================================================COMMENT
MEDIUMarchivebox/cli/archivebox_archiveresult.py161# =============================================================================COMMENT
MEDIUMarchivebox/cli/archivebox_archiveresult.py163# =============================================================================COMMENT
MEDIUMarchivebox/cli/archivebox_archiveresult.py216# =============================================================================COMMENT
MEDIUMarchivebox/cli/archivebox_archiveresult.py218# =============================================================================COMMENT
MEDIUMarchivebox/cli/archivebox_archiveresult.py271# =============================================================================COMMENT
MEDIUMarchivebox/cli/archivebox_archiveresult.py273# =============================================================================COMMENT
MEDIUMarchivebox/cli/archivebox_archiveresult.py325# =============================================================================COMMENT
MEDIUMarchivebox/cli/archivebox_archiveresult.py327# =============================================================================COMMENT
MEDIUMarchivebox/cli/archivebox_process.py36# =============================================================================COMMENT
MEDIUMarchivebox/cli/archivebox_process.py38# =============================================================================COMMENT
MEDIUMarchivebox/cli/archivebox_process.py83# =============================================================================COMMENT
MEDIUMarchivebox/cli/archivebox_process.py85# =============================================================================COMMENT
77 more matches not shown…
Cross-File Repetition56 hits · 280 pts
SeverityFileLineSnippetContext
HIGHarchivebox/tests/test_opencode_browser_3.py0run plugin-owned host integration cases in the archivebox ci matrix.STRING
HIGHarchivebox/tests/test_opencode_agent_2.py0run plugin-owned host integration cases in the archivebox ci matrix.STRING
HIGHarchivebox/tests/test_opencode_browser_2.py0run plugin-owned host integration cases in the archivebox ci matrix.STRING
HIGHarchivebox/tests/test_opencode_agent_3.py0run plugin-owned host integration cases in the archivebox ci matrix.STRING
HIGHarchivebox/tests/test_opencode_browser_1.py0run plugin-owned host integration cases in the archivebox ci matrix.STRING
HIGHarchivebox/tests/test_opencode_agent_1.py0run plugin-owned host integration cases in the archivebox ci matrix.STRING
HIGHarchivebox/tests/test_cli_add_3.py0comprehensive tests for archivebox add command. verify add creates snapshots in db, crawls, source files, and archive diSTRING
HIGHarchivebox/tests/test_cli_add_2.py0comprehensive tests for archivebox add command. verify add creates snapshots in db, crawls, source files, and archive diSTRING
HIGHarchivebox/tests/test_cli_add_1.py0comprehensive tests for archivebox add command. verify add creates snapshots in db, crawls, source files, and archive diSTRING
HIGHarchivebox/tests/test_cli_add_4.py0comprehensive tests for archivebox add command. verify add creates snapshots in db, crawls, source files, and archive diSTRING
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_add_view_runtime.py0from archivebox.workers.supervisord_util import get_existing_supervisord_process, stop_worker supervisor = get_existing_STRING
HIGHarchivebox/tests/test_takeover_util_3.py0takeover utility tests and live command handoff flows.STRING
HIGHarchivebox/tests/test_takeover_util_2.py0takeover utility tests and live command handoff flows.STRING
HIGHarchivebox/tests/test_takeover_util_1.py0takeover utility tests and live command handoff flows.STRING
HIGHarchivebox/tests/test_takeover_util_4.py0takeover utility tests and live command handoff flows.STRING
HIGHarchivebox/tests/test_recursive_crawl_2.py0integration tests for recursive crawling functionality.STRING
HIGHarchivebox/tests/test_recursive_crawl_3.py0integration tests for recursive crawling functionality.STRING
HIGHarchivebox/tests/test_recursive_crawl_1.py0integration tests for recursive crawling functionality.STRING
HIGHarchivebox/tests/test_cli_run_3.py0tests for archivebox run cli command. tests cover: - run with stdin jsonl (crawl, snapshot, archiveresult) - create-or-uSTRING
HIGHarchivebox/tests/test_cli_run_2.py0tests for archivebox run cli command. tests cover: - run with stdin jsonl (crawl, snapshot, archiveresult) - create-or-uSTRING
HIGHarchivebox/tests/test_cli_run_1.py0tests for archivebox run cli command. tests cover: - run with stdin jsonl (crawl, snapshot, archiveresult) - create-or-uSTRING
HIGHarchivebox/tests/test_cli_run_4.py0tests for archivebox run cli command. tests cover: - run with stdin jsonl (crawl, snapshot, archiveresult) - create-or-uSTRING
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_cli_add_1.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_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_cli_add_1.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_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_cli_add_1.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_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_cli_add_1.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
Deep Nesting172 hits · 140 pts
SeverityFileLineSnippetContext
LOWbin/check-staging-deployment.py18CODE
LOWbin/release-source-fingerprint.py23CODE
LOWbin/generate_ui_screenshot_gallery.py220CODE
LOWdocs/conf.py425CODE
LOWdocs/check_links.py27CODE
LOWdocs/test_codeblocks_manifest.py205CODE
LOWdocs/test_codeblocks_manifest.py353CODE
LOWdocs/test_codeblocks_manifest.py591CODE
LOW.github/pages/verify.py88CODE
LOWarchivebox/misc/db.py143CODE
LOWarchivebox/misc/db.py338CODE
LOWarchivebox/misc/db.py369CODE
LOWarchivebox/misc/system.py19CODE
LOWarchivebox/misc/system.py56CODE
LOWarchivebox/misc/util.py414CODE
LOWarchivebox/misc/checks.py102CODE
LOWarchivebox/misc/logging_util.py259CODE
LOWarchivebox/misc/serve_static.py501CODE
LOWarchivebox/misc/serve_static.py741CODE
LOWarchivebox/misc/serve_static.py972CODE
LOWarchivebox/core/admin_archiveresults.py90CODE
LOWarchivebox/core/models.py199CODE
LOWarchivebox/core/models.py1199CODE
LOWarchivebox/core/models.py1294CODE
LOWarchivebox/core/models.py1358CODE
LOWarchivebox/core/models.py1416CODE
LOWarchivebox/core/models.py1516CODE
LOWarchivebox/core/models.py1700CODE
LOWarchivebox/core/models.py1795CODE
LOWarchivebox/core/models.py2032CODE
LOWarchivebox/core/models.py2073CODE
LOWarchivebox/core/models.py2229CODE
LOWarchivebox/core/models.py2373CODE
LOWarchivebox/core/models.py2710CODE
LOWarchivebox/core/models.py3015CODE
LOWarchivebox/core/models.py4276CODE
LOWarchivebox/core/models.py4637CODE
LOWarchivebox/core/models.py4694CODE
LOWarchivebox/core/models.py2381CODE
LOWarchivebox/core/widgets.py63CODE
LOWarchivebox/core/widgets.py686CODE
LOWarchivebox/core/forms.py36CODE
LOWarchivebox/core/tag_util.py60CODE
LOWarchivebox/core/admin_site.py102CODE
LOWarchivebox/core/takeover_util.py270CODE
LOWarchivebox/core/middleware.py127CODE
LOWarchivebox/core/middleware.py130CODE
LOWarchivebox/core/views.py383CODE
LOWarchivebox/core/views.py603CODE
LOWarchivebox/core/views.py1367CODE
LOWarchivebox/core/templatetags/core_tags.py211CODE
LOWarchivebox/core/templatetags/core_tags.py931CODE
LOWarchivebox/core/sqlite_backend/base.py25CODE
LOWarchivebox/importers/service.py71CODE
LOWarchivebox/importers/forms.py23CODE
LOWarchivebox/importers/views.py63CODE
LOWarchivebox/importers/views.py125CODE
LOWarchivebox/config/django.py33CODE
LOWarchivebox/config/paths.py43CODE
LOWarchivebox/config/common.py579CODE
112 more matches not shown…
Excessive Try-Catch Wrapping120 hits · 131 pts
SeverityFileLineSnippetContext
LOWdocs/conf.py60except 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.py272 except Exception:CODE
LOWarchivebox/misc/db.py550 except Exception as err:CODE
LOW⚡archivebox/misc/util.py441 except Exception:CODE
LOW⚡archivebox/misc/util.py446 except Exception:CODE
LOW⚡archivebox/misc/util.py451 except Exception:CODE
LOWarchivebox/misc/checks.py49 except Exception:CODE
LOWarchivebox/misc/checks.py272 except Exception:CODE
LOWarchivebox/misc/checks.py277 except Exception:CODE
LOWarchivebox/misc/checks.py325 except Exception as e:CODE
LOWarchivebox/misc/checks.py378 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.py15 except Exception:CODE
LOWarchivebox/misc/serve_static.py275 except Exception:STRING
LOWarchivebox/core/settings_logging.py100 except Exception:CODE
LOWarchivebox/core/admin_snapshots.py574 except Exception as e:CODE
LOWarchivebox/core/admin_snapshots.py1424 except Exception:CODE
MEDIUMarchivebox/core/admin_snapshots.py1388def _get_expected_hook_total(self, obj) -> int:CODE
LOWarchivebox/core/takeover_util.py283 except Exception:CODE
LOWarchivebox/core/templatetags/core_tags.py95 except Exception:CODE
LOW⚡archivebox/config/version.py55 except Exception:CODE
LOW⚡archivebox/config/version.py62 except Exception:CODE
LOW⚡archivebox/config/version.py68 except Exception:CODE
LOW⚡archivebox/config/version.py73 except Exception:CODE
LOWarchivebox/config/version.py109 except Exception:CODE
LOWarchivebox/config/paths.py56 except Exception:CODE
LOWarchivebox/config/paths.py163 except Exception as e:CODE
LOWarchivebox/config/paths.py231 except Exception:CODE
LOWarchivebox/config/paths.py245 except Exception:CODE
LOWarchivebox/config/paths.py272 except Exception:CODE
LOWarchivebox/config/paths.py309 except Exception:CODE
LOWarchivebox/config/paths.py385 except Exception:CODE
LOWarchivebox/config/collection.py226 except Exception:CODE
LOWarchivebox/config/collection.py326 except Exception:CODE
LOWarchivebox/plugins/forms.py385 except Exception:CODE
LOWarchivebox/crawls/models.py559 except Exception:CODE
LOW⚡archivebox/cli/archivebox_binary.py101 except Exception as e:CODE
LOWarchivebox/cli/archivebox_snapshot.py212 except Exception as e:CODE
LOWarchivebox/cli/archivebox_update.py568 except Exception as e:CODE
LOWarchivebox/cli/archivebox_update.py608 except Exception as e:CODE
LOWarchivebox/cli/archivebox_update.py781 except Exception as e:CODE
LOW⚡archivebox/cli/archivebox_crawl.py164 except Exception as e:CODE
LOWarchivebox/cli/__init__.py184 except Exception as e:CODE
LOWarchivebox/cli/archivebox_version.py30 except Exception:CODE
LOWarchivebox/cli/archivebox_version.py95 except Exception:CODE
LOWarchivebox/cli/archivebox_version.py153 except Exception:CODE
LOWarchivebox/cli/archivebox_version.py165 except Exception:CODE
LOWarchivebox/cli/archivebox_version.py242 except Exception as e:CODE
LOWarchivebox/cli/archivebox_version.py274 except Exception as e:CODE
LOW⚡archivebox/cli/archivebox_version.py450 except Exception as e:CODE
LOW⚡archivebox/cli/archivebox_version.py460 except Exception as e:CODE
LOW⚡archivebox/cli/archivebox_version.py467 except Exception:CODE
MEDIUMarchivebox/cli/archivebox_version.py320def resolve_declared_binaries() -> dict[str, BinaryEvent | None]:CODE
LOWarchivebox/cli/archivebox_add.py295 except Exception:CODE
LOWarchivebox/cli/archivebox_add.py314 except Exception:CODE
LOWarchivebox/cli/archivebox_add.py331 except Exception:CODE
60 more matches not shown…
Unused Imports126 hits · 120 pts
SeverityFileLineSnippetContext
LOWpdm_build.py1CODE
LOWbin/release-source-fingerprint.py4CODE
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.py61CODE
LOWarchivebox/core/routes_util.py1CODE
LOWarchivebox/core/tag_util.py1CODE
LOWarchivebox/core/shutdown_util.py26CODE
LOWarchivebox/core/admin_site.py32CODE
LOWarchivebox/core/admin_site.py33CODE
LOWarchivebox/core/admin_site.py35CODE
LOWarchivebox/core/admin_site.py35CODE
LOWarchivebox/core/settings.py565CODE
LOWarchivebox/core/settings.py599CODE
LOWarchivebox/core/permissions.py1CODE
LOWarchivebox/core/recovery_util.py1CODE
LOWarchivebox/core/takeover_util.py15CODE
LOWarchivebox/core/wsgi.py10CODE
LOWarchivebox/core/sqlite_backend/base.py1CODE
LOWarchivebox/config/django.py55CODE
LOWarchivebox/config/paths.py16CODE
LOWarchivebox/config/common.py1CODE
LOWarchivebox/plugins/hooks.py7CODE
LOWarchivebox/tests/test_opencode_browser_3.py3CODE
LOWarchivebox/tests/test_opencode_browser_3.py3CODE
LOWarchivebox/tests/test_opencode_browser_3.py3CODE
LOWarchivebox/tests/test_opencode_agent_2.py3CODE
LOWarchivebox/tests/test_opencode_agent_2.py3CODE
LOWarchivebox/tests/test_opencode_agent_2.py3CODE
LOWarchivebox/tests/test_opencode_agent_2.py3CODE
LOWarchivebox/tests/test_opencode_agent_2.py3CODE
LOWarchivebox/tests/test_opencode_agent_2.py3CODE
LOWarchivebox/tests/test_opencode_agent_2.py3CODE
LOWarchivebox/tests/test_opencode_agent_2.py3CODE
LOWarchivebox/tests/test_cli_add_3.py34CODE
LOWarchivebox/tests/test_cli_add_3.py34CODE
LOWarchivebox/tests/test_cli_add_3.py34CODE
LOWarchivebox/tests/conftest.py26CODE
LOWarchivebox/tests/conftest.py26CODE
LOWarchivebox/tests/conftest.py26CODE
LOWarchivebox/tests/conftest.py26CODE
LOWarchivebox/tests/test_takeover_util_3.py31CODE
LOWarchivebox/tests/test_takeover_util_2.py34CODE
LOWarchivebox/tests/test_takeover_util_2.py34CODE
LOWarchivebox/tests/test_opencode_browser_2.py3CODE
66 more matches not shown…
Hallucination Indicators10 hits · 100 pts
SeverityFileLineSnippetContext
CRITICALarchivebox/tests/test_snapshot_url_length.py9from django.core.exceptions import ValidationErrorCODE
CRITICALarchivebox/tests/test_frozen_crawl_config.py162 from django.core.exceptions import ValidationErrorCODE
CRITICALarchivebox/crawls/models.py17from django.core.exceptions import ValidationErrorCODE
CRITICALarchivebox/cli/rescan.py10from django.core.exceptions import ValidationErrorCODE
CRITICALarchivebox/personas/models.py22from django.core.exceptions import ValidationErrorCODE
CRITICALarchivebox/api/v1_core.py18from django.core.exceptions import ValidationErrorCODE
CRITICALarchivebox/api/v1_personas.py8from 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/runner.py21from django.core.exceptions import ValidationErrorCODE
Self-Referential Comments11 hits · 32 pts
SeverityFileLineSnippetContext
MEDIUMarchivebox/misc/logging_util.py353 # Create a Rich Text object for proper formattingCOMMENT
MEDIUMarchivebox/core/templatetags/core_tags.py966 # Create a mini template and render it with contextCOMMENT
MEDIUMarchivebox/config/collection.py20 "# This file is kept in sync 1:1 with the current Machine.config in the DB —\n"CODE
MEDIUM⚡archivebox/tests/test_cli_status.py76 # Create an orphaned directoryCOMMENT
MEDIUMarchivebox/tests/test_cli_crawl.py233 # Create a crawlCOMMENT
MEDIUMarchivebox/tests/migrations_helpers.py763 # Create a userCOMMENT
MEDIUMarchivebox/tests/migrations_helpers.py934 # Create a userCOMMENT
MEDIUMarchivebox/tests/test_cli_archiveresult.py34 # Create a snapshot firstCOMMENT
MEDIUMarchivebox/cli/archivebox_update.py577 # Create a new crawl (created_by will default to system user)COMMENT
MEDIUMarchivebox/cli/archivebox_persona.py16 # Create a new personaSTRING
MEDIUMarchivebox/machine/models.py823 # Create the derived convenience bin dir if it doesn't exist.COMMENT
Fake / Example Data31 hits · 31 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.py47 "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
LOW⚡archivebox/core/forms.py168 "placeholder": "60, 1.5m, or 1hr",CODE
LOW⚡archivebox/core/forms.py178 "placeholder": "0 = unlimited, or e.g. 45mb / 1gb",CODE
LOW⚡archivebox/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/importers/forms.py38 self.fields["schedule"].widget.attrs["placeholder"] = "e.g. daily"CODE
LOWarchivebox/tests/test_cli_manage.py69 "admin@example.com",CODE
LOWarchivebox/tests/test_server_security_browser.py407 defaults={"email": "admin@example.com", "is_staff": True, "is_superuser": True},CODE
LOWarchivebox/tests/migrations_helpers.py768 'admin@example.com', 1, 1, datetime('now'))CODE
LOWarchivebox/tests/migrations_helpers.py939 'admin@example.com', 1, 1, datetime('now'))CODE
LOWarchivebox/tests/test_ui_add_view.py71 placeholder = form.fields["url"].widget.attrs["placeholder"]CODE
LOWarchivebox/tests/test_urls.py302 defaults={"email": "admin@example.com", "is_staff": True, "is_superuser": True},STRING
LOWarchivebox/crawls/admin.py432 "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.html1192 preview.classList.add('placeholder');CODE
LOW…onitor/templates/progressmonitor/progress_monitor.html1272 type: 'placeholder',CODE
LOW…onitor/templates/progressmonitor/progress_monitor.html1293 type: 'placeholder',CODE
LOW…onitor/templates/progressmonitor/progress_monitor.html1305 type: 'placeholder',CODE
LOW…onitor/templates/progressmonitor/progress_monitor.html1344 type: 'placeholder',CODE
LOW…onitor/templates/progressmonitor/progress_monitor.html1351 if (target.type === 'placeholder') {CODE
LOW…onitor/templates/progressmonitor/progress_monitor.html1365 if (screencastPanel.dataset.mode === 'placeholder' && screencastPanel.dataset.key === placeholderKey) {CODE
LOW…onitor/templates/progressmonitor/progress_monitor.html1368 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
Over-Commented Block29 hits · 24 pts
SeverityFileLineSnippetContext
LOWdocker-compose.yml1# UsageCOMMENT
LOWdocker-compose.yml41COMMENT
LOWdocker-compose.yml61 # build: https://github.com/ArchiveBox/archivebox-chat-bot.git#mainCOMMENT
LOWdocker-compose.yml81 # environment:COMMENT
LOWdocker-compose.yml101 # - net_adminCOMMENT
LOWdocker-compose.yml121# https://github.com/ArchiveBox/ArchiveBox/wiki/Setting-Up-StorageCOMMENT
LOWbin/export_browser_history.sh1#!/usr/bin/env bashCOMMENT
LOWbin/docker_entrypoint.sh1#!/bin/bashCOMMENT
LOWdocs/.readthedocs.yaml1# Read the Docs configuration file for ArchiveBox docsCOMMENT
LOWarchivebox/misc/db.py401# upgraded incrementally through 0.8.x → 0.9.x dev rcs accumulate rows forCOMMENT
LOWarchivebox/core/models.py1041 # Snapshots can be created by parser hook side-effect records,COMMENT
LOWarchivebox/core/models.py4301 # Skip ModelWithOutputDir.save() to avoid creating index.json in plugin directoriesCOMMENT
LOWarchivebox/core/settings.py301 },COMMENT
LOWarchivebox/core/settings.py321### Security SettingsCOMMENT
LOWarchivebox/core/settings.py381 CSRF_TRUSTED_ORIGINS.append(https_endpoint)COMMENT
LOWarchivebox/machine/detect.py161 hw_product += " " + line.split(":", 1)[-1].strip()COMMENT
LOWarchivebox/machine/detect.py401# 'guid': '1cd2dd279f8a854...6943f2384437991a',COMMENT
LOWarchivebox/machine/detect.py421# },COMMENT
LOWarchivebox/machine/detect.py441# }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/workers/supervisord_util.py1221 # The reader temporarily restores immediate SIGINT so aCOMMENT
LOWarchivebox/workers/supervisord_util.py1761 # A standby parent must never tear down the replacementCOMMENT
LOWarchivebox/base_models/admin.py921 path("<hexuuid:object_id>/change/", self.admin_site.admin_view(self.change_view), name="{}_{}_change".formatCOMMENT
LOWarchivebox/services/runner.py361 # stop descendants and finalize the ledger. SIGINT uses the same sharedCOMMENT
LOWarchivebox/services/runner.py421 self._run_task = asyncio.current_task()COMMENT
Redundant / Tautological Comments15 hits · 19 pts
SeverityFileLineSnippetContext
LOWbin/docker_entrypoint.sh105# Check if user attempted to run it in the root of their home folder or hard drive (common mistake)COMMENT
LOWarchivebox/core/models.py3249 # Check if sealedCOMMENT
LOWarchivebox/crawls/models.py496 # Check if crawl already exists by IDCOMMENT
LOWarchivebox/crawls/models.py952 # Check if already in urls (parse existing JSONL entries)COMMENT
LOWarchivebox/crawls/models.py1291 # Check if any snapshots exist for this crawlCOMMENT
LOWarchivebox/cli/archivebox_update.py593 # Check if needs migration (0.8.x → 0.9.x)COMMENT
LOWarchivebox/cli/archivebox_version.py130 # Check if LDAP is enabled (simple config lookup)COMMENT
LOW⚡archivebox/cli/archivebox_persona.py99 # Check if resolved_path is a child of personas_dirCOMMENT
LOWarchivebox/progressmonitor/views.py791 # Check if crawl can start (for debugging stuck crawls)COMMENT
LOWarchivebox/progressmonitor/views.py807 # Check if retry_at is in the future (would prevent worker from claiming)COMMENT
LOWarchivebox/machine/models.py848 # Check if it's already pointing to the right placeCOMMENT
LOWarchivebox/machine/models.py1646 # Check if too old (PID definitely reused)COMMENT
LOWarchivebox/machine/models.py1650 # Check if OS process still exists with matching start timeCOMMENT
LOWarchivebox/machine/models.py2369 # Check if process exitedCOMMENT
LOWarchivebox/workers/supervisord_util.py1482 # Check if the monitored process has exitedCOMMENT
Magic Placeholder Names3 hits · 15 pts
SeverityFileLineSnippetContext
HIGHdocs/Change-Detection.md32json://192.168.1.43:5797/api/v1/cli/add?+X-ArchiveBox-API-Key=YOUR_API_KEYCODE
HIGHdocs/Change-Detection.md35Replace the host, port, and `YOUR_API_KEY` with yours. Use an address reachable from the container, not `localhost`. ForCODE
HIGHdocs/Change-Detection.md94Keep the rest of the service configuration and use `json://archivebox:5797/api/v1/cli/add?+X-ArchiveBox-API-Key=YOUR_APICODE
Modern Structural Boilerplate14 hits · 14 pts
SeverityFileLineSnippetContext
LOWarchivebox/uuid_compat.py52__all__ = ["CompactUUID", "CompactUUIDField", "compact_uuid", "uuid7"]CODE
LOWarchivebox/core/settings.py31logger = logging.getLogger(__name__)CODE
LOWarchivebox/importers/catalog.py9logger = logging.getLogger(__name__)CODE
LOWarchivebox/importers/service.py27logger = logging.getLogger(__name__)CODE
LOWarchivebox/tests/conftest.py97def _set_test_source_pythonpath(env: dict[str, str]) -> None:CODE
LOWarchivebox/tests/conftest.py2065def _set_archivebox_config(data_dir: Path, *values: str, env: dict[str, str] | None = None) -> None:CODE
LOWarchivebox/tests/test_crawl_runner.py726 async def update_config_between_snapshots(event: SnapshotCompletedEvent) -> None:CODE
LOWarchivebox/tests/test_urls.py389 def _setup_data_dir(self, real_archive_with_example: Path) -> None:CODE
LOWarchivebox/tests/test_urls.py412 def _set_config(self, *settings: str) -> None:CODE
LOWarchivebox/crawls/models.py651 def set_url_filters(self, allowlist, denylist) -> None:CODE
LOW⚡archivebox/cli/__init__.py94 def _setup_django_for_lazy_import(cls, cmd_name: str) -> None:CODE
LOWarchivebox/api/webhooks.py14logger = logging.getLogger(__name__)CODE
LOWarchivebox/workers/models.py34logger = logging.getLogger(__name__)CODE
LOWarchivebox/services/__init__.py10__all__ = [CODE
AI Slop Vocabulary7 hits · 14 pts
SeverityFileLineSnippetContext
MEDIUMbin/fuzz_test.sh4# This is intentionally not a test harness: it does not assert success/failure.COMMENT
LOWarchivebox/misc/util.py379 # if response is non-test (e.g. image or other binary files), just return the filename insteadCOMMENT
MEDIUMarchivebox/core/models.py4770 # these properties provide seamless access to Process data through ArchiveResultCOMMENT
LOWarchivebox/core/views.py1597 # We can't just call request.build_absolute_uri in the template, because it would include query parametersCOMMENT
MEDIUMarchivebox/tests/test_importer_host_command.py49 # This progress event occurs only after browser-harness has createdCOMMENT
LOWarchivebox/cli/archivebox_archiveresult.py112 # 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.py3626CODE
LOWarchivebox/core/tag_util.py285CODE
LOWarchivebox/config/common.py1115CODE
LOWarchivebox/tests/conftest.py217CODE
LOWarchivebox/tests/test_cli_status.py24CODE
LOWarchivebox/cli/archivebox_schedule.py12CODE
LOWarchivebox/cli/archivebox_update.py150CODE
LOWarchivebox/cli/archivebox_remove.py29CODE
LOWarchivebox/cli/archivebox_add.py54CODE
LOWarchivebox/workers/supervisord_util.py1677CODE
Docstring Block Structure1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHarchivebox/machine/models.py2216 Wait for process to exit, polling periodically. Args: timeout: Max seconds to wait (None =STRING
Example Usage Blocks2 hits · 3 pts
SeverityFileLineSnippetContext
LOWbin/export_browser_history.sh4# Usage:COMMENT
LOWarchivebox/machine/detect.py389# Example usageCOMMENT
Verbosity Indicators3 hits · 3 pts
SeverityFileLineSnippetContext
LOW⚡archivebox/machine/models.py2273 # Step 1: Send SIGTERM for graceful shutdownCOMMENT
LOW⚡archivebox/machine/models.py2276 # Step 2: Wait for graceful exitCOMMENT
LOWarchivebox/machine/models.py2289 # Step 3: Force kill with SIGKILLCOMMENT
Structural Annotation Overuse3 hits · 3 pts
SeverityFileLineSnippetContext
LOW⚡archivebox/machine/models.py2273 # Step 1: Send SIGTERM for graceful shutdownCOMMENT
LOW⚡archivebox/machine/models.py2276 # Step 2: Wait for graceful exitCOMMENT
LOWarchivebox/machine/models.py2289 # Step 3: Force kill with SIGKILLCOMMENT
Modern AI Meta-Vocabulary1 hit · 2 pts
SeverityFileLineSnippetContext
MEDIUMdocs/Setting-up-Search.md225- [#1139 Feature Request: Add AI-assisted summarization, tagging, search, and more using LLMs / RAG](https://github.com/CODE
Slop Phrases1 hit · 2 pts
SeverityFileLineSnippetContext
LOWpyproject.toml95 # to use sonic make sure you have a sonic server running in docker (archivebox/sonic) or locally:COMMENT
Overly Generic Function Names1 hit · 1 pts
SeverityFileLineSnippetContext
LOWarchivebox/mcp/server.py502 def handle_request(self, request: dict) -> dict | None:CODE