v2.1.2 — Cross-agent install + OpenAlex API key requirement
Patch release — cross-agent install + OpenAlex API key requirement
Three changes since v2.1.1. The OpenAlex item is the one that may require action on existing setups; the rest are additive or behavior fixes. The search pipeline, helper scripts, RCS rubric, and output structure are unchanged — Claude Code users see no difference in behavior.
1. ⚠️ OpenAlex now requires a free API key (action may be needed)
OpenAlex deprecated the mailto= polite pool on 2026-02-13; all API calls now require a free API key. A config that only set openalex_email will stop working against live OpenAlex.
What to do: grab a free key at https://openalex.org/settings/api (instant, no approval) and set openalex_api_key in ~/.paper-search-pro/config.yaml. The free tier is $1/day ≈ 10k list calls / 1k searches — a Standard-tier run uses ~200 calls, so this is plenty. Setup docs, config template, verification scripts, and READMEs all updated to reflect the new requirement; openalex_email is kept as a deprecated/ignored field for backward-compatible configs.
2. Cross-agent install support via $PSP_HOME
The Skill claimed to work on "Claude Code, Codex, any SKILL.md agent," but 22 hardcoded ~/.claude/skills/paper-search-pro paths meant it only really ran under Claude Code. Every invocation now uses $PSP_HOME, resolved once in STEP 0 via a three-layer chain:
- Explicit injection — the agent substitutes the SKILL.md directory it was given
- Env var —
CLAUDE_SKILL_DIR/CODEBUDDY_SKILL_DIR - Filesystem fallback — walks known install locations:
~/.claude/skills,~/.codex/skills,~/.agents/skills,~/.config/opencode/skills,~/.codeium/windsurf/skills,~/.config/goose/skills,~/.cline/skills,~/.roo/skills,~/.copilot/skills, plus project-local equivalents
Classifier SubAgent prompts (STEP 6) now pass the expanded absolute rubric path, since each SubAgent runs in its own shell where $PSP_HOME isn't exported. READMEs list the per-agent install paths up front.
3. Japanese / Korean queries route to the English UI (not Chinese)
The old detector sent every CJK character to the Chinese UI — so a Japanese or Korean query produced a Chinese interface, friendly to neither audience. New logic checks hiragana/katakana (U+3041–U+30FF) first → English; then CJK Unified Ideographs → Chinese; Korean Hangul and everything else → English (the international default). Paper titles / abstracts / authors are never translated regardless — only the report UI chrome.
Verification
Both changes were checked by two read-only subagent test passes: the $PSP_HOME resolver behaves correctly across all four scenarios (explicit / env var / fallback / not-found), the language regex routes six representative queries correctly (including the previously-misrouted kanji+hiragana mix 東京大学の最新研究 → EN), all 25 bash blocks pass bash -n, and no hardcoded install paths remain outside legitimate fallback lists and prose examples.
What's NOT changed
- Search pipeline, tier logic, saturation curve, citation chasing — untouched
- Python helper behavior, RCS rubric content, PRISMA-S logger — untouched
- Output file structure (HTML / MD / BibTeX / RIS / CSV / PRISMA-S log) — unchanged
- Claude Code user experience —
$PSP_HOMEauto-resolves to~/.claude/skills/paper-search-proexactly as before