Changelog
A record of updates, improvements, and new features shipped for the Buffett Letters Knowledge Base.
V 2.0
2026-05-06
Talk to Buffett — Retrieval Engine Upgrade & Bilingual Search Fix
Retrieval — Full-Text Index Coverage (O0)
- •Expanded BM25 search index to include full markdown article bodies (up to 5,000 characters each) for all Concepts, Companies, and People — previously only short TS data snippets (definition/description fields) were indexed, causing the AI to miss relevant knowledge nodes even when the user's question directly referenced them.
- •Added People as a new indexed entity type — all 10+ people profiles (Benjamin Graham, Charlie Munger, Ajit Jain, etc.) are now fully searchable. Before this change, people were entirely absent from the retrieval index.
- •Results now consistently surface multi-type source attribution (e.g., a single query can retrieve [company] See's Candies + [concept] Franchise Value + [person] Charlie Munger simultaneously), producing richer, better-grounded answers.
Retrieval — Chinese Query BM25 Fix
- •Fixed a critical issue where pure Chinese queries returned 0 retrieved sources. MiniSearch (BM25) is a whitespace-based tokenizer — Chinese characters have no spaces between them, so the entire query was treated as a single unmatched token.
- •Implemented a bilingual keyword expansion table (ZH_EN_MAP) in normalizeForSearch() covering 45+ entries: investment terms (内在价值→intrinsic value, 安全边际→margin of safety, 护城河→economic moat), people names (本杰明·格雷厄姆→Benjamin Graham, 查理·芒格→Charlie Munger), and companies (喜诗糖果→See's Candies, 伯克希尔→Berkshire Hathaway). Longest-match-first ordering prevents sub-term false positives.
- •Chinese queries now correctly retrieve 10 sources on average. Verified with 7 unit tests covering pure Chinese, mixed Chinese/English, and English-only queries — all passing. English query behavior is unchanged.
Context Window — max_tokens Increase (O2)
- •Doubled the LLM response token budget from 4,096 to 8,192 tokens. Long multi-section answers (investment philosophy overviews, multi-era chronologies) were previously being cut off mid-paragraph.
- •Compressed the per-source excerpt length in the retrieved context block from 1,500 to 800 characters, freeing headroom for more sources without exceeding the model's context limit.
- •Increased the number of BM25 results passed to the LLM from 6 to 10 per query, providing a broader evidence base for every answer.
Frontend — Person Source Type Support
- •Updated the Source interface in the Talk page to include the new 'person' type alongside 'letter', 'concept', and 'company'. The sourceUrl() and sourceLabel() helper functions now correctly route person sources to their detail pages (/projects/buffett-letters/people/[slug]) and display formatted labels in source popovers.
V 1.9
2026-04-14
Talk to Buffett — AI Infrastructure Upgrade & Stabilization
LLM Provider — Gemini 2.5 Flash
- •Migrated the Talk to Buffett AI backend from Groq (Llama 3.3 70B) back to Google Gemini after resolving persistent API key and quota issues — Gemini produces higher-fidelity Buffett persona responses with better instruction compliance and citation formatting.
- •Upgraded from gemini-2.0-flash to gemini-2.5-flash (Google's latest production model), delivering noticeably richer, more structured answers with improved multi-section organization and verifiable inline citations.
- •Configured a paid-tier Google AI Studio API key (linked to Google Cloud billing), elevating rate limits from 15 RPM / 1,500 RPD to 2,000 RPM — eliminating the 429 rate-limit errors that previously disrupted the chat experience.
Multi-Provider Architecture
- •Restructured .env.local into a clean, well-commented provider switcher — Gemini 2.5 Flash as primary, Groq Llama 3.3 70B as backup — allowing instant failover without code changes.
- •Added inline notes for all archived/inactive provider configurations (Kimi/Moonshot, OpenRouter, expired Gemini keys) to ensure the fallback chain remains auditable and maintainable.
Prompt Engineering — Gemini Optimization
- •Restored the full-strength citation header for Gemini's retrieved context block — reinstating the explicit CITATION RULE with an inline example sentence that was inadvertently simplified during the Groq optimization sprint.
- •Fixed 400 Bad Request errors caused by passing an unsupported thinking parameter to the OpenAI-compatible Gemini endpoint — removed the parameter since Gemini 2.5 Flash's direct-answer mode already produces optimal Buffett-persona output.
- •Preserved all Llama/Groq-specific optimizations (XML-tagged source blocks, few-shot citation examples, user-turn reminders) as dormant code that activates automatically when the backup provider is switched on.
V 1.8
2026-04-12
Zen Modernization Sprint — UI, Data Architecture & Content
Concept Pages — Content Completeness
- •Created 5 missing high-priority concept markdown files — Margin of Safety, Owner Earnings, Insurance Float, Return on Equity, and Risk — each with the full 7-section depth: Definition & Origins, Core Ideas, Practical Application, Common Misconceptions, Buffett's Own Words (4–5 quotes), Thought Evolution (3–4 eras), and Case Companies.
- •Fixed mdPath for all 5 concepts in concepts.ts — pages now render complete multi-section analysis instead of the 3-line detail fallback. All 36 concepts now have mdPath configured.
- •Introduced ConceptQuote type and curated quotes[] array in concepts.ts for 7 core concepts, enabling verbatim Buffett quotes with correct year and letter-slug attribution.
- •Case Companies upgraded from static text lists to clickable interactive cards with hover feedback and auto-generated links to company detail pages.
Index Pages — Industry Observations & Concepts Map
- •Redesigned the Industry Observations section on the Company Index page: replaced cramped pill labels with an editorial list-row layout featuring a left-border visual anchor, larger company-name text, annotation descriptions at readable size, mention-count badges, and a hover arrow.
- •Unified hover color across all list rows and interactive elements to warm linen (#ECEAE4), replacing inconsistent ghost-white variants.
- •Concepts list page (/concepts) now synced with Core Concepts Map (/index/core-concepts-map) — eliminated the divergent local CONCEPT_MENTION_COUNTS hardcoded map.
Data Architecture — Single Source of Truth
- •Moved stats object from hardcoded values in letters.ts to dynamically computed values in index.ts — totalConcepts, totalCompanies, and totalPeople are now calculated from actual array lengths at build/render time.
- •Homepage stat pills, sidebar nav badges, and navCard descriptions all now update automatically whenever a data file changes — no manual count maintenance required.
- •Fixed stale descriptions (e.g., '7 individuals' for People when there are 10) by making all navCard description strings dynamically templated from data arrays.
- •Established the data architecture principle: data/buffett-letters/*.ts is the single source of truth; page components are read-only views that never duplicate business data inline.
Thought Evolution Timeline
- •Redesigned the Thought Evolution section on all concept detail pages: replaced flat chronological text with a vertical timeline visualization — year indicators, connecting lines, and era labels — making the progression of Buffett's thinking visually explicit.
Agent Skills & Workflow Tooling
- •Created .agents/workflows/buffett-data-architecture.md — formal SOP documenting the SSOT principle, 7 approved concept categories, anti-patterns to avoid, and a pre-change checklist for all data-layer work.
- •Created .agents/skills/buffett-concept-enrichment/ — SKILL.md with full audit procedures, 7-section markdown template with per-section quality standards, known content map for all 36 concepts, and a troubleshooting guide.
- •Added scripts/audit-concepts.ts — runnable TypeScript audit script that checks all concepts for missing mdPath, missing markdown files, and sparse content, with a size-sorted report.
V 1.7
2026-04-08
People Profiles, Layout Standardization & Content Integrity
People Section — Full Audit & Enrichment
- •Completed a full audit of all 10 People profiles (Buffett, Munger, Ajit Jain, Greg Abel, Todd Combs, Ted Weschler, Walter Schloss, Tom Murphy, Lou Simpson, Bill Ruane) — verified content completeness and added missing bibliographic and biographical information.
- •Added avatarPath, avatarScale, and avatarObjectPosition fields to the Person type in types.ts, enabling per-profile portrait photo integration with face-zoom control.
- •Updated the People index page and sidebar badge to reflect the correct count of 10 individuals (was incorrectly showing 7).
Layout Standardization — Three-Column Design
- •Extended the three-column editorial layout (main content + sticky right sidebar) from company detail pages to all People and Concepts detail pages, achieving consistent structure across all 150+ knowledge nodes.
- •Refactored the right-hand sidebar to use a unified sticky container with a left-border separator, replacing the ad-hoc per-page backlink components that existed before.
- •Replaced all existing 'Mentioned In' backlink implementations with a unified list-based "Linked From" panel with consistent typography and spacing.
Content Integrity — CJK Purge Pipeline
- •Implemented a multi-layered CJK character filtering system in the markdown rendering pipeline, stripping all Chinese/Japanese/Korean characters, translator footnotes, and extraction-related attribution artifacts from all 90+ letter pages.
- •Ensured a 100% English-only reading experience across the entire letter corpus — partnership letters (1957–1969) and Berkshire annual letters (1965–2024).
Letter Table Optimization
- •Refactored the table renderer for all Berkshire shareholder letters to eliminate excessive horizontal scrolling on long financial data tables.
- •Implemented responsive table containers with consistent header styling, border treatment, and width constraints that maintain structural integrity without breaking the Zen reading aesthetic.
Visual & Navigation Refinement
- •Introduced concept quote cards with dark navy background and gold vertical accent lines on 49 concept pages.
- •Added circle-connected vertical timelines to 49 concept pages to display how Buffett's thinking evolved across decades.
- •Created independent card styles for typical case companies on 32 concept pages.
- •Reorganized sidebar navigation for concepts, companies, and people to sort by reference count (descending).
- •Adjusted the primary index flow: Letters Overview → Core Thoughts → Companies → People.
- •Enabled wide-screen centering for all content areas. Cleaned up 14 broken links.
V 1.6
2026-04-06
Knowledge Graph & Graph Layout Engineering
Knowledge Graph — Launch
- •Launched a D3.js force-directed Knowledge Graph featuring 219 nodes (letters, concepts, companies, people) and over 3,900 weighted links — every internal cross-reference in the knowledge base rendered as an interactive edge.
- •Implemented full interactivity: click-to-focus node, drag-to-reposition, scroll-to-zoom, and panel-based filtering by entity type (letters / concepts / companies / people).
- •Graph uses physics simulation with configurable link strength and collision radius to prevent node overlap across all zoom levels.
Graph Layout Engineering
- •Resolved persistent left-side empty space caused by container margin asymmetry — the content header and graph cluster are now correctly left-aligned within the page's content area.
- •Implemented graph auto-fit logic that centers the force simulation within the specific visible content rectangle (accounting for the fixed sidebar width), ensuring the graph doesn't render behind the navigation.
- •Calibrated responsive padding and container width so the graph fills the viewport correctly across all screen widths.
Content — Dynamic Backlinks
- •Replaced the static "Mentions Over the Years" hardcoded lists with a dynamic right-side backlink panel that auto-populates from the cross-link data layer.
- •Added Expand/Collapse All controls to the backlink panel for navigating letters with large mention counts.
Integrations
- •Integrated TradingView affiliate links on company detail pages for direct market data access.
V 1.5
2026-04-06
Contextual Backlinks & Three-Column Layout Foundation
Backlink System
- •Introduced an Obsidian-style contextual backlink panel that surfaces excerpts of the surrounding text for every reference — not just a list of letters, but the actual passage where the concept or company is mentioned.
- •Backlinks automatically sorted by reference frequency, surfacing the most-cited letters first.
- •Implemented highlight rendering within excerpts to visually anchor the referenced term inside the surrounding context.
Layout — Three-Column Foundation
- •Implemented CSS Grid-based two-column layout (main content + sticky sidebar) for company detail pages — the foundation for the three-column standard later extended to all entity types.
- •Sticky sidebar remains in viewport during long-scroll reading sessions; collapses to single-column on mobile.
UI Cleanliness
- •Removed favorite/bookmark buttons from individual content pages to reduce visual clutter — retained only on the Knowledge Hub homepage.
V 1.4
2026-04-06
Brand Identity & Homepage Redesign
Design System — Wabi-Sabi / Zen Aesthetic
- •Adopted the Wabi-Sabi / Kyoto Zen visual language as the design foundation: warm ivory paper (#F5F4F0) backgrounds, charcoal text (#1C1C1C), and 22K gold (#D4AF37) as the primary accent color.
- •Established the typography system: Lora / Noto Serif SC for display headings, Inter for UI labels, Libre Baskerville for body editorial text.
- •Defined a spacing system centered on generous white space — wide vertical padding, measured line heights — to create the Zen openness that distinguishes this knowledge base from typical wikis.
Homepage Overhaul
- •Built a Hero section with a large serif heading, animated subtitle, and a direct entry point to the Letter Corpus.
- •Added a 4-column statistics bar displaying total letters, concepts, companies, and people — the site's primary data scorecard.
- •Added category tag clouds where tag font size scales proportionally with total reference count, providing a visual map of relative concept importance.
Interaction & Motion
- •Added entrance animations (staggered fade-in) and scroll-triggered reveal effects across homepage sections.
- •Implemented card-hover transitions: subtle float lift + glowing gold border line to signal interactivity without breaking the calm aesthetic.
Sharing & Accessibility
- •Added a Bookmark / Share system with keyboard shortcut support (Cmd/Ctrl+D to bookmark) and native Web Share API integration for mobile devices.
V 1.3
2026-04-05
Content Expansion — Concepts, Industries & Search
Concept Coverage
- •Added 3 new concept pages: Management Integrity, Corporate Governance (Shareholder Orientation), and Tax Efficiency (Retained Earnings) — filling critical governance and fiscal philosophy gaps in the concept library.
- •Built 8 dedicated industry analysis pages covering Insurance, Banking & Financial Institutions, Railroads, Consumer Brands, Technology, Utilities, Media, and Retail — each cross-linked to relevant companies and letters.
- •Total knowledge nodes reached 219 (up from 188 at launch).
Search — Full-Text Upgrade
- •Upgraded sidebar search from simple title-matching to full-text indexing across letter body content, concept definitions, and company descriptions.
- •Added real-time query suggestions with highlighted context snippets showing where the search term appears within the matched document.
Content Quality
- •Standardized all 61 company pages to the 5-section format: Overview, Business Model, Buffett's Assessment, Key Quotes, and Mentioned In.
- •Verified 1:1 file parity between data registry (companies.ts) and markdown content files — no orphaned entries or missing files.
V 1.2
2026-04-05
The Partnership Years — Early Buffett Letters
Letter Corpus — Partnership Era
- •Added all 18 surviving Buffett Partnership Letters (1957–1969) — Buffett's earliest documented investment writing, covering the formation and management of Buffett Partnership Ltd.
- •Each partnership letter is cross-linked bidirectionally to the relevant concepts, companies, and people referenced in the text.
- •Partnership letters display with a distinct visual treatment to distinguish them from the Berkshire Hathaway annual letters.
Concept Expansion
- •Added 3 partnership-era specific concept pages: Workouts (risk arbitrage / special situation investing), Bonds (Buffett's early bond portfolio analysis), and Convertible Securities — reflecting the distinct investment strategies Buffett employed before the Berkshire transition.
Navigation
- •Added the Letters index page with period-based grouping: Partnership (1957–1969), Berkshire Annual (1965–2024), and Special Letters (essays, op-eds).
- •Sidebar accordion for Letters section auto-expands when on any letter route and shows per-period document counts.
V 1.1
2026-04-05
Search, Pipeline & Data Integrity
Search
- •Introduced site-wide fuzzy search in the sidebar — searches simultaneously across all letters (by title and year), concepts (by name and definition), companies (by name and industry), and people (by name and role).
- •Search results grouped by entity type (Letters / Concepts / Companies / People) with the most relevant matches surfaced first.
Data Integrity Fixes
- •Merged duplicate letter entries — notably the 2025 Thanksgiving Message which appeared twice under different slugs.
- •Reconciled mdPath references for letters where the file name on disk did not match the data registry entry.
- •Removed stale cross-link references pointing to concept and company slugs that no longer existed.
Build Pipeline
- •Developed an Obsidian-to-Next.js content pipeline: a processing script that reads Obsidian-format Markdown files (with [[wikilinks]] and frontmatter), strips CJK characters, resolves internal links to their Next.js route equivalents, and outputs clean content for the web renderer.
V 1.0
2026-04-04
Initial Launch — The Buffett Letters Knowledge Base
Letter Corpus
- •Launched with 63 Berkshire Hathaway annual shareholder letters (1965–2024) and 18 Buffett Partnership Letters (1957–1969) — 81 letters total, all in high-fidelity English-only Markdown sourced from the pzponge/Yestoday GitHub repository (verified against official Berkshire Hathaway Annual Reports).
- •Each letter is a standalone page with full prose rendering, structured headings, and financial tables.
Knowledge Nodes
- •Launched with 35 concept pages covering Buffett's core investment philosophy — each with a structured definition, key quotes, and cross-links to the letters where the concept is discussed.
- •Launched with 61 company pages covering every major operating subsidiary and equity investment Buffett has discussed across his letters — each with a business overview, Buffett's assessment, and letter cross-links.
- •Launched with 7 people profiles covering key figures in Buffett's intellectual and professional universe: Warren Buffett, Charlie Munger, Ajit Jain, Greg Abel, Todd Combs, Ted Weschler, and Tom Murphy.
Cross-Link Architecture
- •Established bidirectional cross-linking across all 188 knowledge nodes — over 4,000 internal links connecting every letter to the concepts, companies, and people it references.
- •All cross-link data lives in the data layer (data/buffett-letters/*.ts) as structured arrays, enabling programmatic traversal, search, and display without hardcoded HTML.
Technical Foundation
- •Built on Next.js 16 with App Router, TypeScript throughout, and Vanilla CSS for the Wabi-Sabi aesthetic system.
- •Fixed sidebar navigation with collapsible letter groups, entity-type sections (Concepts / Companies / People / Graph), and a cross-links stats footer.
- •All pages are server-rendered with full SEO metadata (title, description, canonical URL).