v0.7.0
Highlights
Agent-friendly defaults and correctness pass from live MCP dogfooding.
Search & content
- Compact search defaults: max_results=5, abstract_mode=snippet; full/none modes retained (#128)
- search_papers always returns total_results; start/next_start pagination (#186/#189)
- Default read/download bounds (~12k) with next_retrieval / return_full_text (#127)
- Schema token trim on search_papers (#131)
- ICML HTML chrome stripped from downloads (#190)
- Content warning moved to content_warning field (first chunk only); paginated content stitches (#215)
Paper navigation
- New tools: get_paper_outline, read_paper_section, search_paper_text (#129)
- Bare HTML heading parse for arXiv HTML→md outlines (#209)
- LaTeX section title macro expansion (#195)
IDs & cache
- Shared ID normalization on download/latex (arxiv:/URL forms) (#200)
- Versioned storage under bare ID + sidecars; list dedupe (#202)
- No silent version downgrade of bare cache without force; expose arxiv_version/versioned_id (#206)
- download_paper not-found (not pdf-extra misreport) (#196)
Citations
- citation_graph strips vN for Semantic Scholar lookup; no S2 URL leak in errors (#211)
- export_citations batch of multiple versions of same paper no longer false not-found (#212)
Alerts
- check_alerts unpack fix after total_results change (#193)
- Truncated max_results no longer jumps watermark to now / skips window; drain advances (#217)
- check_alerts readOnlyHint=False, idempotentHint=False (#216)
- Unknown topic → Watch not found (not empty success) (#221)
- watch_topic update preserves categories unless explicitly passed (#222)
Possibly breaking / behavior changes
- search default max_results 10→5; abstracts default to snippets
- read_paper/download_paper no longer return full text by default
- UNTRUSTED banner no longer prepended into every content chunk (use content_warning)
- check_alerts watermark / annotation semantics changed