Skip to content

v2.2.0

Choose a tag to compare

@O0000-code O0000-code released this 04 Jul 06:19

v2.2.0

The biggest feature drop since v2.1 — journal partitions in the report, a switchable primary source, a headless mode for agent-to-agent use, plus two reliability fixes. The human 14-step workflow is unchanged when the new capabilities aren't used, and there are no new hard dependencies.


✨ Journal partitions — 中科院 / JCR / SJR

Every paper is now tagged with its journal tier across three systems:

  • On each card / row — a quiet single badge (your preferred platform).
  • In the detail panel — the full three-platform breakdown (中科院 tier + Top, JCR quartile + impact factor, SJR quartile) with source attribution.
  • In the toolbar — a zone filter to keep only Q1 / ≥Q2 / ≥Q3 (or 一区 / ≥二区 for 中科院). Ask in natural language ("只要一区二区的", "Q1 only") and the request is parsed as a filter, not a search term.

Partition tables are fetched at runtime from public mirrors — never bundled — and attributed; only JCR's figure is labelled an impact factor.

🔀 Primary source — by preference, and by fallback

Two independent capabilities from one setting:

  • Pick your primary. OpenAlex is the default; set Semantic Scholar as the primary source instead when its corpus or field coverage suits your topic better.
  • Automatic quota fallback. When the active primary runs low on its daily quota (or starts erroring), the run continues on the other source rather than stopping — a depleted key degrades gracefully instead of halting the search.

🤖 Headless mode for agents

When the consumer is another agent rather than a person, scripts/agent_search.py runs the deterministic core in a single command and returns one structured JSON envelope — deduped, relevance-scored, saturation-checked, partition-annotated — with no HTML and no classification SubAgents. Same search discipline, machine-readable output.

🛠 Reliability

  • prisma_s_logger no longer crashes on the documented single-dict curve.json (it silently dropped the snapshot and left coverage at 0). — thanks to @MatrixA (#2)
  • rcs_parser now applies RCS scores from batches keyed by canonical_key, not just entity.paper_id — previously those scores were silently discarded. — @MatrixA (#2), extended here to the raw-response path.
  • Regression tests added for both.

Compatibility

  • No behavior change to a run that doesn't use partitions / source-switching / headless mode — the report renders byte-for-byte as before.
  • No new hard dependencies.

Full changelog: v2.1.2...v2.2.0