This release includes breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+9 more
Summary
AI summaryUpdates What's New, Guards, and References across a mixed release.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| 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 YahoosummaryDetail.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, andreferences.mdfor both Chinese variants hreflangand 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/limitPriceReasonfor 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 andpython3permissions
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
About furic/richfolio](https:
All releases →Beta — feedback welcome: [email protected]