Releases: ckoglmeier/pathscout
Release list
v0.4.0 — server-readiness network hardening
Server-readiness hardening of the network layer so the engine is safe to run across many watchlists on a schedule (the hosted SearchPass worker), not just one laptop run. Stdlib-only; no data-contract or CLI-output change.
- Retry with jittered exponential backoff on timeout / connection errors (configurable; disable-able).
- Conditional caching via an injectable ResponseCache honoring ETag / Last-Modified (304 Not Modified reuses the cached body).
- Per-host rate limiting via an injectable RateLimiter, wired through fetch_source / runner.py.
- Fetch failures now log via logging.getLogger("pathscout.fetchers") instead of being silently swallowed.
- New config knobs on network sources: retries, backoff_base_seconds, min_host_interval_seconds, cache_enabled.
runner.py per-source resilience and the http_get mock point are unchanged. 57 tests green.
v0.3.0 — first PyPI release
First published release of the PathScout engine to PyPI. Local-first role-discovery CLI: fetch, score, and store deduplicated career-opportunity signals; canonical JSON artifacts plus a readable Markdown digest. Published via GitHub Actions Trusted Publishing (no stored credentials).
PathScout v0.2.0
PathScout v0.2.0 is the initial OSS Core release.\n\nHighlights:\n- Installable Python CLI with pyproject/setup.py metadata and MIT license.\n- Schema-versioned profile, sources, watchlist, suppressions, and portfolio config.\n- Canonical JSON findings artifact plus Markdown renderer.\n- Review and suppress CLI workflow.\n- Portfolio source naming with deprecated radar aliases for compatibility.\n- Careers-page role-title extraction with page-level fallback.\n- Generic startup role seeker defaults and fictional sample data.\n\nVerified with:\n- PYTHONPYCACHEPREFIX=/tmp/pathscout_pycache python3 -m unittest discover -s tests\n- PYTHONPYCACHEPREFIX=/tmp/pathscout_pycache python3 -m pathscout doctor\n- PYTHONPYCACHEPREFIX=/tmp/pathscout_pycache python3 -m pathscout run --dry-run --format both\n- Local wheel metadata build via pip install --no-build-isolation --target /tmp/pathscout-pkg-test-final .