Skip to content

v0.7.4 — 5 bugfixes from codebase deep-dive

Pre-release
Pre-release

Choose a tag to compare

@SanggonBoy SanggonBoy released this 11 Sep 12:58
· 13 commits to main since this release

PyreCrawl v0.7.4

Five targeted fixes from a full codebase review, all verified offline before release.

Bug Fixes

  • Codex TOML block corruption (cli.py) — uninstall/reinstall left an orphan literal line in config.toml. Regex now matches to next section header via negative lookahead.
  • crawl() drops css_selector + max_depth (engines.py) — css_selector was documented as "reserved for llm tier" but never wired to any tier. max_depth was hardcoded to 2 in BFSDeepCrawlStrategy. Both now propagated correctly across fast/stealth/auto/llm tiers with a new _scope_to_selector() helper for non-llm.
  • map_urls / BFS link harvest junk (engines.py) — bare href= regex matched <link rel=stylesheet|canonical|icon> + RSS feeds, burning limit quota and creating junk "pages". Now scoped to <a> elements only with _NON_PAGE_EXTS extension filter.
  • arXiv API over plain HTTP (engines.py) — export.arxiv.org fetched via HTTP (MITM-able). Now HTTPS. Also added source= validation guard (unknown source now returns structured error instead of silently falling to arXiv).
  • scrape docstring claims file:///raw: support (server.py) — these schemes were never implemented. Docstring corrected.
  • selfcheck only checked 6 of 13 tools (scripts/selfcheck.py) — updated to assert all 13 registered tools + exact count.

New Test Scripts

  • scripts/test_scope_selector.py — crawl css_selector/max_depth wiring (18 checks, real lxml parser)
  • scripts/test_link_harvest.py — link harvest purity regression (17 checks)

Notes

  • Telemetry support by a parallel agent is not included in this release (will land in 0.7.5).
  • False positives removed from initial review: setup Unix path was already correct (Path(sys.executable).parent resolves to bin/ on Linux).

Docs: https://hermes-agent.nousresearch.com/