Skip to content

furic/richfolio](https:

v1.7.0 Breaking

This release includes breaking changes for platform teams planning a safe upgrade.

Published 19h Productivity & Wikis
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

buy-signals cron email-digest etf gemini-ai investing
+9 more
morning-brief personal-finance portfolio rebalancing resend stocks typescript wealth-management yahoo-finance

ReleasePort's take

Light signal
editorial:auto 19h

Release v1.7.0 adds Anthropic Claude as a second AI provider and introduces multi‑AI mode that runs Gemini and Claude concurrently, aggregating scores per ticker.

Why it matters: Multi‑AI aggregation enables concurrent scoring from Gemini and Claude, improving analysis robustness; storage schema upgrades drop existing history on first load, requiring migration planning.

Summary

AI summary

Broad release touches Graceful degradation, Bug Fixes, How aggregation works, and What's New.

Changes in this release

Feature Medium

Adds Anthropic Claude as a second AI provider alongside Gemini.

Adds Anthropic Claude as a second AI provider alongside Gemini.

Source: llm_adapter@2026-06-05

Confidence: high

Feature Medium

Introduces multi-AI mode that runs Gemini and Claude concurrently, aggregating scores per ticker.

Introduces multi-AI mode that runs Gemini and Claude concurrently, aggregating scores per ticker.

Source: llm_adapter@2026-06-05

Confidence: high

Feature Medium

Updates storage schema from v1 to v2, dropping existing history on first load.

Updates storage schema from v1 to v2, dropping existing history on first load.

Source: llm_adapter@2026-06-05

Confidence: high

Feature Medium

Adds pluggable provider architecture for future AI integrations (OpenAI, Mistral, etc.).

Adds pluggable provider architecture for future AI integrations (OpenAI, Mistral, etc.).

Source: llm_adapter@2026-06-05

Confidence: high

Feature Medium

Adds docs site support for Japanese, Korean, and Spanish (total 6 languages).

Adds docs site support for Japanese, Korean, and Spanish (total 6 languages).

Source: llm_adapter@2026-06-05

Confidence: high

Feature Medium

Replaces language‑switcher links with a dropdown `<select>` for scalable locale selection.

Replaces language‑switcher links with a dropdown `<select>` for scalable locale selection.

Source: llm_adapter@2026-06-05

Confidence: high

Feature Low

Updates docs/api-keys.md, deployment.md, troubleshooting.md to cover multi‑AI configuration and translations.

Updates docs/api-keys.md, deployment.md, troubleshooting.md to cover multi‑AI configuration and translations.

Source: llm_adapter@2026-06-05

Confidence: high

Feature Low

Provides upgrade guide for enabling multi‑AI mode with Anthropic API key and optional Claude model selection.

Provides upgrade guide for enabling multi‑AI mode with Anthropic API key and optional Claude model selection.

Source: llm_adapter@2026-06-05

Confidence: high

Bugfix Medium

Fixes docs language switcher script by removing stray `//` comments that broke parsing.

Fixes docs language switcher script by removing stray `//` comments that broke parsing.

Source: llm_adapter@2026-06-05

Confidence: high

Full changelog

What's New

Multi-AI Mode — Gemini + Claude Side by Side

Richfolio is no longer Gemini-only. The analysis layer was refactored into a pluggable provider architecture, and Anthropic Claude is now a first-class second provider.

  • Set one key (GEMINI_API_KEY or ANTHROPIC_API_KEY) → identical behaviour to v1.6, single-AI rendering, no surprises.
  • Set both keys → multi-AI mode auto-engages: providers run concurrently, scores aggregate per ticker, every email and Telegram message shows a per-AI breakdown beneath each consensus recommendation.

How aggregation works

  • Consensus action via mode-of-votes with confidence-sum tiebreaker (see src/aiAggregation.ts)
  • STRONG BUY requires unanimous agreement — if any provider dissents, the consensus caps at BUY. Preserves STRONG BUY's "rare, high-conviction" semantics.
  • Averaged confidence drives within-tier sort, displayed prominently with an avg tag
  • Agreement badge (unanimous / majority / split) shown next to the action
  • Suggested buy value / limit price inherited from the highest-confidence provider that voted consensus — deterministic, no muddled averages

Graceful degradation

  • If a provider throws mid-run (rate-limited, network blip, quota hit), surviving providers continue.
  • If exactly one provider survives, that run renders as single-AI mode.
  • If all providers fail, falls back to gap-based recommendations (today's behaviour with no AI key).

Reasoning history is now per-provider

Each AI sees only its own past convictions in the "HISTORICAL CONTEXT" prompt section. Storage schema bumped v1 → v2; existing history is dropped on first load (7 days isn't precious data).

Pluggable detailed analysis (STRONG BUY page)

The dedicated "More Details" analysis page for STRONG BUY tickers can now be generated by either provider. Default: first available. Override:

| Env var | Effect |
|---|---|
| AI_DETAILED_PROVIDER=gemini | Force Gemini |
| AI_DETAILED_PROVIDER=claude | Force Claude |
| CLAUDE_MODEL=claude-haiku-4-5-20251001 | Use Haiku for cheaper Claude calls |

New Architecture (Extensible)

Adding a third provider (OpenAI, Mistral, whatever) is now ~50 lines: implement the AIProvider interface in src/providers/, register it in src/providers/index.ts, done. The orchestrator, guard pipeline, aggregation, reasoning history, and renderers all flow through automatically — no consumer changes needed.

src/providers/
├── types.ts        # AIProvider interface + canonical AIBuyRecommendation
├── prompts.ts      # SDK-agnostic prompt builders
├── gemini.ts       # GeminiProvider (Google @google/genai)
├── claude.ts       # ClaudeProvider (Anthropic @anthropic-ai/sdk, tool-use)
└── index.ts        # Provider registry — buildActiveProviders()

src/aiOrchestrator.ts  # Runs active providers, applies guards, sorts
src/aiAggregation.ts   # Consensus action, average, unanimity rule

3 More Languages: Japanese, Korean, Spanish

The docs site now ships in 6 languages total:

  • English (default)
  • 简体中文 (Simplified Chinese)
  • 繁體中文 (Traditional Chinese)
  • 日本語 (Japanese) — new
  • 한국어 (Korean) — new
  • Español (Spanish, neutral / Latin-American) — new

Language picker in the docs header was converted from inline links to a compact dropdown <select> to scale cleanly as more locales are added.

Bug Fixes

  • fix(docs): removed // comments from the language switcher inline script — Jekyll's HTML compression collapsed the script onto a single line, turning // into a runaway comment that broke the parser with "Unexpected end of input". Dropdown navigation now works in production.

Docs

  • docs/api-keys.md restructured around the multi-AI mode (single/multi comparison table at top, dedicated Anthropic Claude section, removed obsolete "Using a different AI model" sub-section)
  • docs/deployment.md "Add Secrets & Variables" table now lists ANTHROPIC_API_KEY, CLAUDE_MODEL, AI_DETAILED_PROVIDER
  • docs/troubleshooting.md Gemini quota fix now notes Claude continues alone when both keys are set; "empty email" bullet expanded into 4 combinations
  • All of the above translated to the 5 non-English locales

Upgrading

If you already had GEMINI_API_KEY set: nothing breaks, nothing changes. v1.7 is fully backward compatible with single-AI configurations.

To opt into multi-AI mode:

  1. Sign up at console.anthropic.com and create an API key
  2. Add ANTHROPIC_API_KEY as a GitHub Secret (and to your local .env)
  3. Optionally set CLAUDE_MODEL=claude-haiku-4-5-20251001 as a GitHub Variable for cheaper Claude calls
  4. Optionally set AI_DETAILED_PROVIDER=gemini or claude to pin who generates the STRONG BUY analysis page
  5. Next scheduled run picks up the new env automatically — no code deploy needed

Full Changelog: https://github.com/furic/richfolio/compare/v1.6.0...v1.7.0

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track furic/richfolio](https:

Get notified when new releases ship.

Sign up free

About furic/richfolio](https:

All releases →

Related context

Beta — feedback welcome: [email protected]