v1.4.4 — Parser extraction, Perplexity model config, Jina auth
What's new
Architecture
- Extracted backend parsers into backends/parsers.ts — 11 pure JSON parsers
- 26 vitest unit tests — replaces stale benchmark/benchmark.mjs
- benchmark/benchmark.mjs deleted (drift-prone duplication, replaced by unit tests)
Bug fixes
- Config null edge case: project.backends = null no longer destroys global backends
- ALL_CAPS credential warning: warns if an ALL_CAPS value looks like an env var but is unset
- Cache invalidation: commandValueCache cleared on config reload — key rotation works
web_read + Jina
- Jina Reader auth: r.jina.ai accepts optional API key via Authorization Bearer header
- Jina search backend: optionalKey flag — works without key, uses key if configured
- Note: s.jina.ai search endpoint now requires an API key; web_read uses r.jina.ai Reader (free)
Perplexity
- Per-backend model config: new model field — choose sonar (default), sonar-pro, sonar-deep-research, or sonar-reasoning
Docs
- Updated README: Exa March 2026 pricing, Perplexity model variants, Jina key requirement
- Removed Publishing section from README
- .gitignore blocks dev docs (findings.md, handoffs/, benchmark/, etc.)
Commits since v1.4.3
d6a1553 docs: remove Publishing section from README
a0195ac chore: stop tracking findings.md (local dev doc)
59f1aeb fix: Jina key requirement in README, cleanup .gitignore
0a4ff36 fix: Jina search requires API key (web_read Reader is free)
183e71e docs: consolidate 4 findings files into single findings.md
9b8fda0 feat: Jina auth, Perplexity model config, parsers + tests