Skip to content

furic/richfolio](https:

v1.6.0 Breaking

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

Published 13d 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

Summary

AI summary

Updates What's New, Guards, and References across a mixed release.

Changes in this release

Feature Medium

Bond ETF timing signals now use base + modifiers scoring instead of flat 75% BUY.

Bond ETF timing signals now use base + modifiers scoring instead of flat 75% BUY.

Source: llm_adapter@2026-05-25

Confidence: high

Feature Medium

AI recommendations are sorted by action tier: STRONG BUY → BUY → HOLD → WAIT, with confidence descending within each tier.

AI recommendations are sorted by action tier: STRONG BUY → BUY → HOLD → WAIT, with confidence descending within each tier.

Source: llm_adapter@2026-05-25

Confidence: high

Feature Low

Documentation site now supports i18n with English, Simplified Chinese, and Traditional Chinese translations.

Documentation site now supports i18n with English, Simplified Chinese, and Traditional Chinese translations.

Source: llm_adapter@2026-05-25

Confidence: high

Feature Low

90‑day price percentile scoring adds +12 points for bottom 20% and −15 points for top 20%.

90‑day price percentile scoring adds +12 points for bottom 20% and −15 points for top 20%.

Source: granite4.1:30b@2026-05-25-audit

Confidence: low

Feature Low

10‑year treasury 20‑day change scoring adds +6 points when rising >+0.15% and subtracts 12 points when falling <−0.15%.

10‑year treasury 20‑day change scoring adds +6 points when rising >+0.15% and subtracts 12 points when falling <−0.15%.

Source: granite4.1:30b@2026-05-25-audit

Confidence: low

Feature Low

Distribution yield scoring adds +3 points for yields >4.5% and subtracts 2 points for yields <3%.

Distribution yield scoring adds +3 points for yields >4.5% and subtracts 2 points for yields <3%.

Source: granite4.1:30b@2026-05-25-audit

Confidence: low

Feature Low

Per‑tier confidence ceilings set: gap≥5% → 95, 3‑5% → 85, 1‑3% → 72; gap<1% remains HOLD.

Per‑tier confidence ceilings set: gap≥5% → 95, 3‑5% → 85, 1‑3% → 72; gap<1% remains HOLD.

Source: granite4.1:30b@2026-05-25-audit

Confidence: low

Feature Low

AI reason field now frames bond recommendations using percentile and rate direction, omitting RSI/MACD.

AI reason field now frames bond recommendations using percentile and rate direction, omitting RSI/MACD.

Source: granite4.1:30b@2026-05-25-audit

Confidence: low

Feature Low

Bond‑cap guard now strips `suggestedLimitPrice`/`limitPriceReason` as a safety net.

Bond‑cap guard now strips `suggestedLimitPrice`/`limitPriceReason` as a safety net.

Source: granite4.1:30b@2026-05-25-audit

Confidence: low

Refactor Low

Claude Code project settings added via `.claude/settings.json`.

Claude Code project settings added via `.claude/settings.json`.

Source: llm_adapter@2026-05-25

Confidence: high

Refactor Low

Short‑duration bonds no longer receive `suggestedLimitPrice` or `limitPriceReason`.

Short‑duration bonds no longer receive `suggestedLimitPrice` or `limitPriceReason`.

Source: granite4.1:30b@2026-05-25-audit

Confidence: low

Refactor Low

Absolute confidence ceiling for short‑duration bonds raised from 88 to 95 to match equity cap.

Absolute confidence ceiling for short‑duration bonds raised from 88 to 95 to match equity cap.

Source: granite4.1:30b@2026-05-25-audit

Confidence: low

Refactor Low

Gap‑based confidence ceiling removed for bonds, replaced by timing modifiers.

Gap‑based confidence ceiling removed for bonds, replaced by timing modifiers.

Source: granite4.1:30b@2026-05-25-audit

Confidence: low

Full changelog

What's New

Bond ETF Timing Signals — No More Flatline 75% BUY for BSV

The short-duration bond ETF framework (BSV, SHY, VGSH, SCHO, BIL, SHV, SGOV, ...) was previously gap-capped: any meaningful allocation gap returned a fixed 75% BUY every single day, regardless of whether today was actually a good entry. This release replaces that with a base + timing-modifiers scoring system so BSV's daily conviction reflects real entry-quality signals.

  • 90-day price percentile (new on TechnicalData.pricePercentile90d) — where today's price sits in its rolling 90-day window. Bottom 20% gets +12pts (cheap entry), top 20% gets −15pts (poor entry).
  • 10-year treasury 20-day change (new on MacroIndicators.treasury10yChange20d) — bonds get cheaper when rates rise. Rising fast (>+0.15%) adds +6pts; falling fast (<−0.15%) subtracts 12pts to discourage chasing rallies.
  • Distribution yield (new on QuoteData.distributionYield, from Yahoo summaryDetail.yield) — high SEC yield (>4.5%) adds +3pts, low yield (<3%) subtracts 2pts.
  • Per-tier confidence ceilings: gap≥5% can reach 95, gap 3-5% reaches 85, gap 1-3% reaches 72. Gap<1% stays HOLD.
  • No more limit-price clutter: short-duration bonds never get a suggestedLimitPrice — the daily range is too tight for the suggestion to mean anything.
  • AI reason field now frames bond recommendations around percentile + rate direction, never RSI/MACD (which are noise for rate-driven instruments).

Net effect: BSV will swing from ~35% (poor entry day) up to 90%+ (great entry day — near 90-day low, rates spiking, high yield, big gap) instead of flatlining at 75% every day.

Action-Tier Sort

AI recommendations are now sorted STRONG BUY → BUY → HOLD → WAIT (with confidence descending within each tier), applied as a final pass in aiAnalyze after the guard pipeline. Previously the email/Telegram render order was confidence-only, which meant a high-confidence bond BUY could rank above a genuine equity STRONG BUY. Now equity STRONG BUYs always appear at the top.

Documentation: i18n Site

  • Jekyll polyglot scaffolding for the docs site, supporting English (default), Simplified Chinese, and Traditional Chinese
  • Full translations of how-it-works.md, features.md, and references.md for both Chinese variants
  • hreflang and canonical <link> tags emitted for each language to improve SEO
  • Language switcher in the header (vertically centered fix)

References

  • OpenAlice promoted to #2 in the inspiration credits
  • hvkshetry Medium article added

Guards

  • Absolute confidence ceiling for short-duration bond ETFs raised 88 → 95 to match the equity confidence cap (guardConfidenceSanity). The action-tier sort prevents visual displacement of equity STRONG BUYs.
  • Bond-cap guard now strips suggestedLimitPrice/limitPriceReason for short-duration bonds (safety net in case the AI suggests one anyway).
  • Gap-based confidence ceiling for bonds removed — driven by the new timing modifiers instead.

Chore

  • Claude Code project settings added (.claude/settings.json) with Playwright MCP and python3 permissions

Full Changelog: https://github.com/furic/richfolio/compare/v1.5.0...v1.6.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

Related tools

Beta — feedback welcome: [email protected]