v0.3.0 — Agent-native CLI
What's Changed
Agent-native CLI (scripts/fetch.py)
- Structured JSON output — stable
{"ok": bool, "data": ...}envelope on stdout --format json|text— JSON for agents (default), text for humans--dry-run— resolve sources without downloading- Distinct exit codes — 0=success, 1=runtime, 3=validation
- Granular error codes —
not_found,download_network_error,download_not_a_pdf,download_host_not_allowed,download_size_exceeded,download_io_error,internal_error UNPAYWALL_EMAILnow optional — warns on stderr, skips Unpaywall, remaining 4 sources still work- Download safety — host allowlist (27 known OA domains) + 50 MB per-PDF size limit
- Top-level exception wrapper — no tracebacks on stdout
Platform support
- Added pi-mono (
metadata.pimonamespace)
Documentation
- Partial-failure batch example in SKILL.md
--dry-runand--format textexamples in both READMEs- Support and Author sections
Full Changelog: v0.1.0...v0.3.0