New to OpenLedger? Read the Documentation
45 Guides Available Quick Start Guide
Learn AI Categorization View Guide
Have Questions? Check the FAQ
New to OpenLedger? Read the Documentation
45 Guides Available Quick Start Guide
Learn AI Categorization View Guide
Have Questions? Check the FAQ

Release Notes

Changelog and download links for every version of OpenLedger.

Back to Downloads

v0.1.0.2589

stable Latest
April 13, 2026



Bug Fixes

  • move ScrollViewer Padding to child Margin on payment dialogs
  • increase payment dialog height, refresh after attachments, tighten grid
  • apply filters to individual split rows when ShowSplits is active
  • improve sorting, batch ops, context menu, and bank sync
  • update uncategorized count in real-time after category changes
  • propagate manual category corrections to PayeeMaster via learning
April 11, 2026



Bug Fixes

  • default date range end to last day of current month
  • show Calculate Miles button in both Manual and Odometer modes
  • add wait-for-ready logic to prevent report generation hang
  • convert BrokenLinksWarningDialog from overlay to Window
  • sync all accounts after mapping new SimpleFin accounts
  • deduplicate sync account list to prevent double-sync

New Features

  • add Needs Attention toggle to filter accounts
April 10, 2026



Bug Fixes

  • use raw bank payee for transfer pattern learning and matching
  • auto-select account with pending items after bank sync
  • start recurring invoice generation service on file open
  • generate all missed recurring invoices on catch-up
  • replace magic string TransactionOption with strongly-typed enum
  • add missing Include(LineItems) and race condition guard
  • compact receive payment dialog, inline transaction list, selected invoice totals
  • adjust receive payment layout, transaction list selection, and invoice totals
  • fix radio button converter, pin totals bar, tighten DataGrid columns
  • fix receive payment layout per screenshot feedback
  • pin totals bar and footer outside ScrollViewer
  • totals inline below DataGrid, columns fill width
  • restructure receive payment to match wireframe layout
  • widen transaction column, orange selection, fill height
  • align transaction list, orange selection, totals layout
  • clip transaction list to card, orange selection, totals alignment
  • fixed layout with no ScrollViewer, proper height constraints
  • remove invalid HorizontalContentAlignment from ListBox
  • right-justify columns, add splitter, compact headers
  • wider dialog, ListBox item separators
  • wider checkbox column, thicker separators, stretch list items
  • ListBox width from parent, smaller grid font, totals in footer
  • money colors, auto-match invoices, 70/30 split, ListBox stretch
  • ListBox StackPanel items panel, fix CanApply validation
  • guard allocations, batch auto-match, fix handler validation
  • add error display and loading overlay to receive payment dialog
  • lock TotalAmount when linking transaction, fix split ID mapping
  • swap shift+click behavior for bank statement launch

New Features

  • add invoice generation toast notification and dashboard widget
  • add LinkedSplitId to InvoicePayment entity
  • pass LinkedSplitId through Invoice.RecordPaymentWithDetails
  • include LinkedSplitId in transaction invoice link DTO
  • add LinkedSplitId column to InvoicePayments table
  • add GetOutstandingInvoicesByCustomer query
  • add ReceivePaymentCommand for multi-invoice payment allocation
  • add ReceivePaymentDialogViewModel for multi-invoice payments
  • add ReceivePaymentWindow view for multi-invoice payments
  • wire Receive Payment button on Invoices toolbar
  • unapply payment with optional transaction deletion
  • hide date range for Unpaid/Overdue/Draft, persist preset
  • add Calculate Miles button using Google Maps API with AI fallback
  • show driving time and add directions link

Other Changes

  • add design spec for invoice notifications and dashboard widget
  • add design spec for multi-invoice receive payment dialog
  • add implementation plan for multi-invoice receive payment
  • add design spec for multi-invoice receive payment dialog
  • add implementation plan for multi-invoice receive payment
  • add InvoicePayments table with LinkedSplitId to NLP schema
April 2, 2026



Bug Fixes

  • resolve all 7 compiler warnings
  • skip Amazon transactions in fast categorization pipeline
  • detect Amazon transactions by payee pattern in assistant pipeline
  • reset toolbar state after assistant dialog closes
  • populate Memo field when creating transactions from statement
March 29, 2026



Bug Fixes

  • relax transfer auto-link from exact date to ±2 days
  • prevent bank prefix "sig" from causing false payee matches
  • show B/P indicator on expanded split rows in transaction list
  • rebuild worksheet site with proper embedded data and fallback parser
  • Net Worth chart blank on initial load
  • align subscription table columns like a proper datagrid
  • clean up loan payoff projection toolbar, add actual/custom extra payment toggle
  • address code review findings for spending report toggles
  • stabilize report width when switching Summary/Detail view modes
  • pin report paper width and stretch ItemsControl items for smooth view toggle
  • keep Summary/Detail toggle stationary, move expand/collapse to left
  • address code review feedback for loan detail report
  • always show loan selector when accounts exist

New Features

  • add Last 24 Months and Last Year-to-date date range presets
  • add interactive HTML website for smoke test worksheets
  • make worksheet website fully self-contained (no web server)
  • add summary/detail toggle to Spending by Category report
  • add summary/detail toggle to Spending by Payee report
  • add LoanDetailMode support for mortgage and non-mortgage loans
  • rebuild Loan Detail PDF with conditional sections and visual layout

Other Changes

  • add smoke test and training worksheets for all 26 account types
  • rename Mortgage Summary to Loan Detail Report
  • set Loan Detail print orientation to Portrait
March 27, 2026



Bug Fixes

  • fix 8 failing tests — mock mismatch and provider-specific collation
  • eliminate DataGrid ghosting from per-item AutoCompleteBox updates
  • move AutoCompleteBox from CellTemplate to CellEditingTemplate
  • switch PayeeAutocomplete to server-side search
  • switch inline payee autocomplete to async server-side search
  • match payee autocomplete behavior to category autocomplete
  • allow Space key in inline editing AutoCompleteBox
  • commit payee edit on Tab/Enter to persist the value
  • persist payee edits to database on Tab/Enter
  • persist payee edit on LostFocus (not just Tab/Enter)
  • show parent payee for split rows in Category Review mode
  • stop overwriting PayeeDisplayName when linking Amazon orders
  • make split display rows readonly in both grid views
  • show parent payee (not split memo) in Category Review mode
  • show parent payee (not split memo) in Category Review mode
  • count individual uncategorized splits, not just parents
  • split parents show "Split" not "Uncategorized" in Category column
  • count parent transactions not individual splits for uncategorized badge
  • filter uncategorized at split level, not parent level
  • include Amazon splits in AssistantCount and fix CategorizedForReview
  • uncategorized split rows show orange text consistently
  • use split memo for AI payee lookup instead of generic parent payee
  • send both payee and bank description to AI for split lookups
  • split rows show Edit icon, hide Accept/Exclude, block payee inline edit
  • split rows show Edit icon, hide Accept/Exclude, block payee inline edit
  • show Accept/Exclude actions for non-split rows in Category Review mode
  • re-link transfer pair to match target when excluding duplicate

New Features

  • add Marketplace pricing tier and update pricing page
  • add CreatedAt tooltip on date column and readonly field in edit dialog
  • add email notification on download

Other Changes

  • change Marketplace tier price to Coming Soon
  • move Marketplace to separate Add-on section below the 3 tiers
  • replace personal gmail with openledger@openledger.cloud
  • add batch tag processing implementation plan
March 26, 2026



Bug Fixes

  • defer Custom Date Range filtering until both dates are set
  • remove duplicated filter buttons, convert Show Only checkboxes to toggle buttons
  • address code review issues — page settings, debit/credit mode, validation
  • use LostFocus to defer Custom Date Range query
  • add missing balance config test, revert to established Foreground="White" pattern
  • use SizeToContent=Height so dialog fits all content without scrolling
  • relocate app data from %LOCALAPPDATA% to %APPDATA% to survive Velopack repair
  • don't auto-dismiss recent orders missing payment details
  • treat N/A PaymentIdentifier as missing when extracting CardLast4

New Features

  • add application layer models and interfaces for custom export
  • add ExportGroupingService with recursive grouping engine
  • add CustomExportDialogViewModel with tab logic and tests
  • add CustomExportDialog tabbed view
  • add TransactionExportDataSource implementing IExportDataSource
  • add GroupedTransactionExportDocument QuestPDF renderer
  • add grouped Excel and CSV exporters
  • wire Custom Export dialog into transaction list view
  • add wizard step navigation, summary text, and running balance to ViewModel
  • replace TabControl with wizard step panels and navigation
  • add running balance computation and render in all 3 exporters
  • show "X of Y rows" count in Amazon orders view

Other Changes

  • add custom export dialog design spec
  • add custom export dialog implementation plan
  • remove unused _dataSource field from CustomExportDialogViewModel
  • add wizard redesign spec for custom export dialog
  • add wizard redesign implementation plan
March 24, 2026



Bug Fixes

  • persist tags from banking editor and populate TagNames in GetTransactionsByAccountQueryHandler
  • show transaction BusinessType in B/P column instead of category usage type
  • inherit category UsageType into transaction BusinessType
  • use transaction BusinessType as single source of truth
  • fix auto-categorization bugs and UI scrambling after bank sync

New Features

  • add total row to transaction PDF export
March 23, 2026



Bug Fixes

  • use DisplayDescription for autocomplete and remove dead code
  • review fixes for batch tag processing
  • preserve tag name casing instead of forcing lowercase

New Features

  • add Tags column and Show Tags toggle to Transaction view
  • add payee autocomplete in DataGrid
  • add memo autocomplete dependent on payee
  • convert Transaction view filter checkboxes to toggle buttons
  • add AddTagsToSelectedAsync and ClearTagsForSelectedAsync coordinator methods
  • add batch tag ViewModel commands and options
  • add Set Tags dropdown to bulk operations toolbar
  • add tag search filter to transaction filter panel

Other Changes

  • move TagsEditor to shared Common location
  • polish and verify Banking/Transaction UI enhancements
March 22, 2026



Bug Fixes

  • keep Downloaded/Pending transactions in fuzzy matching pool
  • use AccountId for ExternalId dedup to survive SimpleFin reconnections
  • use date-based distinction for recurring charges vs SimpleFin ID changes
  • add raw SimpleFin transaction logging and ExternalId tracing
  • stamp ExternalTransactionId onto matched target on accept/exclude
  • handle finalized transactions in RELINKED path
March 22, 2026



Bug Fixes

  • revert DataGrid to fixed column widths that fit container
  • move ScrollViewer padding to content margin in Property Value tab
  • prevent DataGrid column clipping in Marketplace views
  • address code review - volatile flag and status text clearing
  • prevent false positive duplicate detection for recurring charges
  • correct download page fallback sizes to match current installers
  • show AI-suggested categories and fix assistant count on initial load

New Features

  • add CUDA lazy-download for GPU acceleration
  • report real installer sizes to website from pipeline
March 22, 2026



Bug Fixes

  • revert DataGrid to fixed column widths that fit container
  • move ScrollViewer padding to content margin in Property Value tab
  • prevent DataGrid column clipping in Marketplace views
  • address code review - volatile flag and status text clearing
  • prevent false positive duplicate detection for recurring charges

New Features

  • add CUDA lazy-download for GPU acceleration
  • report real installer sizes to website from pipeline
March 22, 2026



Bug Fixes

  • increase valuation dialog height and fix DataGrid column widths

Performance

  • strip cross-platform runtimes and debug files from installers
March 21, 2026



Bug Fixes

  • add reverse lookup for transfer pattern matching
  • match abbreviated month names in statement date detection
  • resolve widgets not loading on initial navigation
  • detect transfer legs as duplicates during bank sync
  • use display name and recency weighting for history categorization
  • auto-dismiss unmatchable orders and add Prime Video pattern
March 20, 2026



Bug Fixes

  • address code review feedback for payment attachments
  • delay due date by 1 day so statement is available
  • default date range to Last 90 Days in Q1, This Year otherwise
  • return after setting default so reload uses correct range
  • address code review issues in StatementFetchService
  • use single shared browser profile like Amazon auto-sync
  • use Chrome's real profile for saved passwords and extensions
  • revert to simple persistent profile matching Amazon pattern
  • revert Fetch Statement to launch default browser

New Features

  • add AttachmentPanel to InvoiceDetailView for supporting documents
  • replace Account editor hand-rolled attachment code with AttachmentPanel
  • wire IAttachmentStorageService into AccountListViewModel for AttachmentPanel
  • add Playwright-based statement fetch with learn/fetch modes
  • add StatementFetchProfile domain, application, and infrastructure layers
  • simplify IStatementFetchService to single FetchStatementAsync method
  • add IGeminiPageAnalyzer interface for AI page analysis
  • implement GeminiPageAnalyzer with AI prompts from POC
  • rewrite StatementFetchService with AI-powered login and navigation
  • wire AI-powered statement fetch into reconciliation UI
  • auto-detect next statement date and warn if too early
  • Shift+Fetch launches browser and logs in without downloading

Other Changes

  • initialize attachment rollout project
  • define v1 requirements
  • create roadmap (2 phases)
  • research entity integration domain
  • add validation strategy
  • create phase plans
  • complete Invoice Detail AttachmentPanel + Payment attachment verification
  • complete Account Editor AttachmentPanel plan
  • complete phase execution
  • create phase plan
  • write AttachmentPanel integration HOWTO document
  • complete AttachmentPanel integration HOWTO plan
  • complete phase execution
  • add AI statement fetch design doc and POC tool
March 18, 2026



Bug Fixes

  • fix QuestPDF layout overflow in Reports-section marketplace documents
  • defer column width adjustment until after memo visibility change
  • replace Jaro-Winkler with token-based scoring in category resolve dialog
  • add reference count check before physical file deletion
  • wire up dropdown menu, fix LAN IP detection, add URL dialog
  • resolve thumbnail/storage paths and fix double-click open
  • use TextInverseBrush for category badge foreground colors
  • address code review feedback for payment attachments
  • extract shared DTO mapping and fix validation error layout
  • require account match for transfer detection, remove risky keywords
  • restore keywords as hints, account match is the real guard
  • default Banking view to All instead of For Review
  • let account editor dialog stretch to fill available height
  • ensure account editor dialog fills available height for scrolling
  • update attachment icon in grid after editing transaction

New Features

  • wire up PDF generation for Fee Trends monthly report
  • wire up PDF generation for Monthly Comparison report
  • wire up PDF generation for Product Profitability report
  • adjust Payee/Category column widths when memo column is hidden
  • adjust Payee/Category column widths when memo is hidden
  • add linked file, URL, and notes support to AttachmentPanel
  • add phone capture flow with QR code and HttpListener
  • wire phone capture into TransactionEditorViewModel
  • add payment document attachments with paperclip indicators
  • add PropertyValuation aggregate root with strongly-typed ID, enums, and value objects
  • add IPropertyValuationRepository interface
  • add PropertyValuation EF Core configuration, repository, and DI registration
  • add PropertyValuations database migrations for all providers
  • add PropertyValuation DTOs and IPropertyValuationService interface
  • add AddManualValuation and RefreshPropertyValuation commands with TDD tests
  • add queries for property valuations and stale account detection
  • add PropertyValuationService with Gemini/OpenAI/Claude provider chain
  • add PropertyValueSection view and AddManualValuation dialog
  • integrate PropertyValueSection into real estate account editor
  • add weekly auto-refresh startup service for property valuations
  • move Property Value to dedicated tab with address guidance
  • add property valuation PDF report with value trend line chart
  • add Update method and DeleteAsync to PropertyValuation
  • add UpdatePropertyValuation and DeletePropertyValuation commands
  • add edit and delete for valuation history records
  • roll out AttachmentPanel to Account, Invoice, and Payment views (#10)

Other Changes

  • initialize attachments project
  • add project config
  • add attachment system research (stack, features, architecture, pitfalls)
  • define v1 requirements (24 requirements, 4 phases)
  • create roadmap (4 phases, 24 requirements)
  • add business documentation suite for non-technical collaborators
  • update business docs - not open source, premium pricing, marketplace differentiator
  • update PROGRESS.md with real estate valuation feature
March 16, 2026



Bug Fixes

  • subscribe to cache invalidation for auto-refresh on data changes
  • wire reports to cache invalidation and add missing bulk op invalidation
  • batch Set Payee dropdown now shows payees from checked transactions only
  • guard PayeeLookup against null ParentTransaction and add logging
  • fix split index ordering, rename command, and harden tooltip sync
  • replace hardcoded orange selection colors with theme resources in CategoryResolveDialog
  • fix CategoryResolveDialog scrolling — increase height and allow resize
  • style AutoCompleteBox dropdown with distinct background
  • detect Amazon Settlement V1 files and show actionable error
  • convert wizard to real window dialog with reordered layout
  • convert all 4 remaining dialogs from overlays to proper Windows
  • fix AccentBrush typo and extract hardcoded colors to ReportStyles

New Features

  • enable inline category editing on split display rows
  • show edit button on split display rows to open parent transaction
  • enable payee and memo inline editing on split display rows
  • auto-apply category to matching uncategorized splits
  • wire up print/PDF/CSV export for Fee Trends report
  • wire up print/PDF/CSV export for Tax Center report
  • wire up print/PDF/CSV export for Settlement Detail report
  • wire up print/PDF export for Health Check report
March 15, 2026



Bug Fixes

  • ensure hero screenshot displays properly on mobile
  • add missing hero screenshot image
  • fix 4 pre-existing test failures and suppress AutoMapper CVE
  • hide Re-Categorize nav item when feature disabled in Settings
  • prevent intermittent ObjectDisposedException in SQLite test fixtures
  • replace invalid AccentBrush references with AccentPrimaryBrush
  • replace invalid TextOnAccentPrimaryBrush with TextOnAccentBrush in tax reports
  • align report sort overrides with master's base class API
  • remove duplicate ReportSortingTests and fix test override compatibility
  • fix access modifiers, dead ToggleSort command, and CLAUDE.md AccentBrush reference
  • add missing CanUserSortColumns bindings and fix access modifiers
  • merge sort toggle fixes — CanUserSortColumns bindings and access modifiers
  • fix post-merge build errors — access modifiers and duplicate field

New Features

  • auto-discover snapshots for hero carousel
  • add screenshots gallery page with lightbox and slideshow
  • optimize auto-sync date range based on last order date
  • hide Marketplace reports when feature is disabled
  • add sort infrastructure — base class, filter bar toggle, DataGrid styles
  • wire sort toggle to 4 Marketplace DataGrid reports
  • add sorting and column resize to 6 Tier 1 reports
  • add sorting and column resize to 5 Tier 2 drilldown reports
  • add sorting and column resize to 4 financial statement reports
  • add sorting and column resize to 4 multi-section reports

Other Changes

  • update 45+ NuGet packages to latest minor/patch versions
  • add category consolidation and reclassification SQL migration scripts
  • update 19 NuGet packages to latest major versions
  • update Microsoft.ML 5.0 and ML.Tokenizers 2.0, fix 2 more test bugs
  • add sorting and column resize implementation plan
March 15, 2026



Bug Fixes

  • show file-open errors on Welcome screen instead of swallowing them
  • clear cached rules on database switch to prevent cross-DB contamination
  • position PayeeLookup dialog at top of owner with stable height
  • use orange selection color in CategoryResolveDialog for better contrast
  • guard split display rows from database operations

New Features

  • add tooltips for category full path and payee memo
  • add Business/Personal usage type indicator dots to category pickers
  • rotate hero screenshot between 4 images with crossfade carousel
March 14, 2026



Bug Fixes

  • show product names in COGS dialog and restore Review button
  • replace Review Queue ComboBox with CategoryAutoComplete
  • open sample DB in-place from Assets folder
  • improve group header and root category styling
  • add inline editing for parent categories, fix system category save error
  • allow type changes on system categories
  • stop marking sample categories as system categories
  • use cyan accent for root category names in tree view
  • use category usage type as primary business filter for PandL
  • never auto-create categories, find closest matches instead
  • address code review findings for category match dialog
  • resolve BalanceSheet and ReportGallery test failures
  • always show category match dialog, never silently auto-apply
  • always show category match dialog, never silently auto-apply
  • remove invalid MultiBinding on Border.Classes causing InvalidCastException
  • revert to original PayeeLookup dialog, remove CategoryMatchDialog

New Features

  • add Equity, Asset, Liability, OtherIncome, OtherExpense transactions
  • color-code category hierarchy levels in autocomplete dropdown
  • add themed FluentIcons and colored names for type group headers
  • seed product costs and fix grid spacing
  • add Expand All / Collapse All / Invert context menu to tree view
  • add smart category match dialog with auto-apply threshold
  • add per-category deductible percentage and collapsible tax report sections
  • populate alternatives for all providers via fuzzy matching
  • show closest matches dialog instead of auto-creating categories
  • show closest matches dialog instead of auto-creating categories

Other Changes

  • regenerate SampleData.oledger with all category types
  • add tax report upgrade design and implementation plan
  • resolve PROGRESS.md merge conflict
  • fold seeding pipeline, Tax Summary, and sample data into Schedule C refactoring plan
  • add Tax Report Upgrade orchestrator prompt
March 13, 2026



Bug Fixes

  • fix BusinessType filter being silently dropped during active refresh
  • rewrite PandL classification to match real category data
  • use CategoryType from database for PandL classification
  • use CategoryType from database for income/expense classification in all reports
  • use RecomputeFromCache instead of InvalidateTransactions for batch ops
  • revert filter split, keep single Clear All using default date range
  • make CategoryUsageType observable so grid refreshes on business/personal change
  • add Velopack uninstall cleanup and fix AI Setup dialog scroll
  • address code review findings
  • use expanded CategoryType (9 values) for income/expense classification in all reports
  • update AI categorization pipeline for 9-type CategoryType enum
  • code review fixes for plan 4
  • code review fixes for plan 5
  • add Velopack uninstall cleanup and fix AI Setup dialog scroll
  • PandL sorting, zero-amount filtering, QBO inferrer refinement, report width
  • trust Account List as single source of truth for category types
  • gate Re-Categorize and Statement Extractor visibility on AI provider settings
  • use negation instead of Math.Abs() for PandL expenses, rename group
  • align Schedule C and Tax Summary with PandL sign and status conventions
  • update SampleData fixture for content file and fix naming convention
  • split Balance Sheet equity into Retained Earnings and Net Income
  • initialize LiveCharts axes with default Axis to prevent crash
  • make category tree grouping data-driven instead of hardcoded
  • show product names in COGS dialog and restore Review button
  • skip Amazon summary rows with empty transaction-type

New Features

  • add variance and common-size analysis models to PandL Comparison
  • add QuickBooks-style variance columns to PandL Comparison
  • replace Show Prior Year checkbox with Compare to dropdown
  • add collapsible sections to PandL reports
  • redesign all reports with paper-style layout and fix PandL bugs
  • add ClearFiltersKeepDateRange and fix ClearAllFilters to use default date range
  • split Clear All into Clear Filter (fast) and Reset (full reset)
  • add SetPayeeAsync to IBulkTransactionCoordinator
  • add SetPayeeForSelected command and BulkPayeeOptions
  • add Set Payee dropdown to bulk operations toolbar
  • add PrintScalingMode enum, ReportLayoutInfo types, and update PrintableDocument/PrintSettings
  • add ScalingEngine with TDD tests for print scaling calculations
  • add scaling support to BaseReportDocument
  • add scaling and column slicing to ProfitLossComparisonReportDocument
  • replace Scale with ScalingMode in print preview UI
  • wire scaling delegates in ReportViewModelBase
  • wire scaling in ProfitLossComparisonViewModel
  • expand CategoryType enum from 3 to 9 values with QB-compatible financial classification
  • update Category Management UI for 9-type CategoryType enum
  • expand QBO migration inferrer to support all 9 CategoryType values
  • expand sample data and new file wizard to support all 9 CategoryType values
  • ship SampleData.oledger as content file for Velopack updates
  • ship SampleData.oledger as content file for Velopack updates
  • add ScalingEngine service and tests
  • page-style report layout and AI-gated nav visibility
  • add COGS, OtherIncome, OtherExpense transactions

Other Changes

  • update PROGRESS.md with report filter and PandL comparison work
  • add plan for category-type-driven report classification
  • add plan for report visual redesign and collapsible sections
  • remove dead ReportHeader component and fix indentation
  • add design spec and implementation plan for cache fix and batch payee
  • update PROGRESS.md with cache fix and batch payee changes
  • add print scaling modes design spec
  • add print scaling modes implementation plan
  • change version suffix from alpha to beta
  • remove deprecated PrintSettings.Scale property
  • update PROGRESS.md with print scaling completion
  • add design spec for CategoryType expansion to 9 values
  • rewrite CategoryType expansion spec with 6-plan phased approach
  • add execution prompts for all 6 CategoryType upgrade plans
  • add orchestrator prompt for full CategoryType upgrade execution
  • add plans 7-8 and phase 2 orchestrator for deferred items
March 12, 2026



Bug Fixes

  • extend auto-sync timeouts and add cancel button
  • align Banking footer margins with DataGrid content area
  • skip duplicate prompt when transactions have distinct external IDs
  • equalize Accept/Exclude button margins in Banking DataGrid
  • widen Banking DataGrid action column to prevent Exclude cutoff
  • add missing SqlServer/PostgreSQL migrations and update test counts

New Features

  • make Marketplace a toggleable feature in Settings
  • add IndexNow integration for real-time search engine indexing

Other Changes

  • rename Amazon to Amazon Business across all user-facing text
March 11, 2026



Bug Fixes

  • fix file lock on stale .encrypting temp file and add perf optimizations
  • clean up stale temp files and clear pools before encryption
  • add Beta badge and fix zero NetPayout on dashboard
  • compute NetPayout from line items when stored value is zero
  • right-align amounts/numbers, add money colors, restructure dashboard

New Features

  • remove duplicate header, add 3-mode channel overview display

Other Changes

  • add bill payment history report design
  • add bill payment history report implementation plan
  • add design plans, marketplace analysis, and recat assessment
  • reorganize docs folder with consistent naming and structure
March 10, 2026



Bug Fixes

  • IsChanged now respects UserOverrideCategoryId
  • replace substring matching with word-boundary payee matching
  • failed evaluations no longer vote in consensus
  • enforce direction guardrail on pre-resolved category IDs
  • report weight-adjusted confidence instead of simple average
  • distinguish SessionInherited from Unanimous consensus type
  • AutoApplyThreshold now controls preview auto-inclusion
  • ChangedCount reflects actual applied count, notify on skipped groups
  • remove partially-unused category cleanup suggestion
  • add missing WeightedWin counter case, remove unused repository field
  • wire MinimumVoteConfidence from settings DB into ViewModel
  • resolve critical CQRS violation, N+1 query, and missing Include
  • resolve important issues — DI wiring, tests, EF config, UI badge
  • resolve minor issues — DRY mapper, stubs, logging, theme
  • fix badge refresh, add nav buttons, clean up review queue
  • use local date for clearing account opening date
  • extract shared parser helpers, fix layer boundaries, remove unused parameter
  • resolve AccountId type confusion and Regex ReDoS
  • update migration test expected count for regenerated sample data
  • improve dashboard card contrast and DataGrid column sizing
  • apply fee mappings to sample settlement lines for realistic demo data
  • restore background hierarchy in channel overview cards
  • resolve AccountId type confusion and Regex ReDoS
  • address code review issues on marketplace reports
  • widen DataGrid columns and enable horizontal scroll on dashboard
  • add icons to action buttons and fix card background contrast
  • replace non-existent AccentBrush with AccentPrimaryBrush and tighten grid columns
  • fix DataGrid right-side cutoff by moving padding to margin
  • resolve binding errors for hex color strings and spinner RotateTransform
  • map Transfer lines and constrain dashboard DataGrids
  • address code review findings — critical bugs, logging, DRY, tests
  • resolve merge conflict in ProfitabilityVM — restore print/PDF usings
  • resolve MoneyDisplay null binding and SplitEditor parent traversal errors

New Features

  • add configurable MinimumVoteConfidence to EnsembleOptions
  • add configurable MinimumVoteConfidence to EnsembleOptions
  • add MinimumVoteConfidence setting wired from UI to ensemble
  • add ProviderRetryHelper with exponential backoff for transient errors
  • integrate retry with backoff into provider calls (Pass 1 + challenge)
  • add IEnsembleResultCache with TTL-based provider vote caching
  • integrate result cache into ensemble — skip cached provider calls
  • add domain entities, enums, and repository interfaces
  • add EF Core configurations, repositories, and migrations
  • add Amazon TSV and Shopify CSV settlement parsers
  • add MappingEngine, CQRS commands, queries, and handlers
  • add marketplace dashboard UI and navigation
  • add marketplace setup wizard
  • add settlement import dialog
  • add import success screen, review queue, and attention badge
  • add settlement detail view, bank deposit matching, and clearing verification
  • add accrual splitter, MFT tax isolation, and audit logging
  • add unified dashboard, default fee mappings, and parser tests
  • add API client interfaces, connection management, and sync infrastructure
  • add profitability reports, fee waterfall, and Schedule C helper
  • add DeleteMarketplaceAccountCommand with cascade cleanup
  • add BulkApplyFeeMappingCommand for batch fee categorization
  • add GetPendingSettlementsQuery for dashboard pending view
  • wire delete account and pending settlements to dashboard
  • add FeatureMarketplacesEnabled setting
  • add marketplace step to setup wizard and feature selection
  • add marketplace sample data provider
  • add marketplace integration to website
  • add DeleteMarketplaceAccountCommand with cascade cleanup
  • add BulkApplyFeeMappingCommand for batch fee categorization
  • add GetPendingSettlementsQuery for dashboard pending view
  • wire delete account and pending settlements to dashboard
  • add FeatureMarketplacesEnabled setting
  • add marketplace step to setup wizard and feature selection
  • add marketplace sample data provider
  • add marketplace integration to website
  • add TikTok Shop and Walmart to marketplace provider listings
  • update hero text for e-commerce and add marketplace guide
  • add cross-account GetAllByDateRangeAsync to settlement repo
  • extract FeeClassifier for cross-platform fee categorization
  • add Fee Trends Over Time report
  • add Monthly Comparison report
  • add Per-Product Profitability report
  • add Marketplace group to Report Gallery
  • UI polish, Walmart/TikTok support, PDF/print for profitability report
  • rewrite sample data with 6-provider programmatic generator
  • add Walmart and TikTok Shop default fee mappings to seeder
  • add MarketplaceProductCost entity, repo, config, migration, and tests
  • add application layer queries, commands, and DTOs for sub-views
  • add Shell VM with tab infrastructure and refactor Dashboard/Profitability
  • add AXAML views for Shell, FeeTrends, TaxCenter, HealthCheck, and ProductCostDialog

Other Changes

  • fix plan header to reflect all 15 tasks across 4 parts
  • add final sweep prompt — gap analysis, code review, sample DB regeneration
  • add UI fixes plan — card contrast, column sizing, sample data, web docs
  • add explicit worktree/branch instructions to UI fixes plan
  • fix UI plan to use own worktree branched from marketplace
  • add UI fixes plan — card contrast, column sizing, sample data, web docs
  • add explicit worktree/branch instructions to UI fixes plan
  • add reports research and planning prompt
  • final wiring verification and code review fixes
  • add user guide for marketplace integration
  • add marketplace topic to interactive guide system
  • add marketplace mention to web quick-start guide
  • update PROGRESS.md with final sweep results
  • regenerate SampleData.oledger with marketplace demo data
  • add web documentation page for marketplace integration
  • update PROGRESS.md with UI fix status
  • add user guide for marketplace integration
  • add marketplace topic to interactive guide system
  • add marketplace mention to web quick-start guide
  • update PROGRESS.md with final sweep results
  • add reports research and implementation plan
  • update reports plan with 6-platform fee research
  • add marketplace sample data overhaul design spec
  • add marketplace sample data overhaul implementation plan
  • update PROGRESS.md with sample data overhaul status
  • regenerate SampleData.oledger with 6-provider data
  • add Shell DataTemplate and include plan docs

Performance

  • optimize unmapped fee count query to use DB-level COUNT
  • reduce model download intensity to avoid slowing user's machine
March 9, 2026



Bug Fixes

  • exclude hidden payees from duplicate scan and fix TextBox readability
  • use orange background with dark text for payee badges
  • use cyan background for non-selected payee badges
  • count transactions by display name, not just FK
  • server-side HasAttachments filter and batch tag loading
  • split rows show correct P/B usage type from their own category
  • prevent edit/delete on split display rows
  • add missing IAttachmentRepository to test constructors
  • invalidate cache on CategoryDisplayMode change
  • in-place editor save, check# inline edit, and check# sorting
  • recompute SplitCount from cache on filter changes

New Features

  • add CategoryUsageType to TransactionSplitDto
  • populate CategoryUsageType for splits in SearchTransactionsQueryHandler
  • populate CategoryUsageType in GetTransactionsByAccountQueryHandler
  • populate CategoryUsageType for splits in GetPendingTransactionsQueryHandler
  • add Splits(n) filter toggle to transaction list
  • click paperclip icon to preview attachments as combined PDF
  • add TransactionDataCache for in-memory filtering
  • integrate cache into loading and filtering pipeline
  • in-place cache updates for delete and inline edits
  • force cache reload after bulk modifications
  • add persistent "Recent First" sort preference

Other Changes

  • re-add LoadTransactionsCommand wrapper for tests
  • comprehensive design for native e-commerce integration
  • add risk assessment, architecture decision, and pre-implementation checklist

Performance

  • apply splits-only filter before sorting for efficiency
  • compute assistant/uncategorized/attachment counts from cache
  • move all filters to client-side, only date range hits DB
March 9, 2026



Bug Fixes

  • add caching, API key, fallback, and throttle for Blockchair rate limiting
  • fix 3 failing tests — MVVM exceptions, migration count, skip free-tier APIs
  • batch UI fixes — dialog heights, threading, layouts, selection styling
  • use scoped DbContext for verification + add explicit Microsoft.Data.Sqlite ref
  • add file logging, fix email delivery, normalize phone numbers
  • F11 screenshot now works in dialogs and focused controls
  • F11 screenshot works globally via class handler
  • align memo column padding with payee and add exclude button margin
  • eagerly resolve ScreenshotService at startup for F11 handler registration
  • use InvariantCulture for CSV amounts, add user notifications
  • wrap PDF/XLSX in Task.Run, add 11 export tests, disable button when empty
  • combine date range + status + customer filters in query handler
  • update invoice and report tests for new query signatures and VM constructors
  • sort re-applies locally, search respects date range
  • populate AttachmentCount in all query handlers
  • update check_ocr.py for PaddleOCR 3.x compatibility and improved check number detection
  • code review fixes - DRY check regex, conversion data loss, public OCR API
  • auto-initialize storage path when database file opens
  • fix Invoice # link color to use AccentPrimaryBrush
  • navigate to invoice outside current date range
  • add right margin to Exclude button cell
  • code review fixes for centralized storage
  • use IServiceScopeFactory instead of IDbContextFactory

New Features

  • default sort to Date desc, fix running balance with date filters
  • add headless E2E test framework with banking accounts proof of concept
  • add all account type E2E tests — 22 tests across 5 categories
  • validate email domain on registration with typo detection
  • add /api/logs endpoint for remote log monitoring
  • add SMS + email admin notifications for tickets and logins
  • add visible-mode UI test runner with AutomationId form filling
  • add SampleData-driven E2E tests for all entity types (51 new tests)
  • add F11 screenshot capture for tutorial content creation
  • add Phase 2 SampleData-driven E2E tests for all remaining entity types (106 new tests)
  • add UI scenario orchestrator infrastructure for visible-mode test playlist
  • add Account, Customer, Vendor UI scenarios with test wrappers
  • add AutomationIds to BillReminder, ScheduledTransaction, Invoice, LineItem, Budget dialogs
  • add Category, Transaction, Security, Holding UI scenarios
  • add Service, Mileage, CategoryRule, BillReminder, ScheduledTransaction UI scenarios
  • add Visual Studio playlist and convenience run scripts for UI scenarios
  • add CSV, PDF, and XLSX export to transaction list
  • auto-launch exported file with default application
  • add InvoiceDate to payment list DTO
  • remove paging from payments query, return all results
  • auto-apply filters with debounce, remove paging from payments VM
  • replace payments table with sortable DataGrid
  • add date range/customer filters with debounced auto-apply
  • replace card layout with sortable DataGrid, add filter bar
  • add payment method breakdown summary to payments view
  • integrate check image OCR into FCB checking extractor
  • add check image and OCR payee fields to statement models
  • wire check image and OCR payee through full conversion pipeline
  • add ReferenceNumber to MatchingStatementTransaction for direct check number matching
  • auto-copy check number and OCR payee to register during reconciliation
  • attach check image PNGs to transactions during reconciliation
  • status badge colors per invoice status
  • add PDF export for payments view
  • centralize storage to AppData/Local with content-addressable filenames
  • add migration service for moving to centralized storage
  • use SHA256 content hash for statement filenames
  • trigger attachment and statement migrations on database open

Other Changes

  • add profit and loss comparison design and implementation plan
  • resolve all 13 build warnings across solution
  • remove Appium/WinAppDriver E2E test infrastructure
  • add headless E2E testing design document
  • add headless E2E testing implementation plan
  • update PROGRESS.md with headless E2E testing status
  • fix design doc DI registration file reference
  • add Phase 2 E2E data entry tests implementation plan
  • add invoice/payments view overhaul design doc
  • add invoice/payments view overhaul implementation plan
  • add content-addressable attachment blob store design
  • add attachment blob store implementation plan
  • add Task 15 — embedded vs linked user choice with attach dialog
  • add centralized attachment storage implementation plan
  • add statement hash naming and temp-file-first write to storage plan
  • add SQL for migrating check image attachments to centralized storage
March 7, 2026



Bug Fixes

  • update auto-backfill source label from CoinGecko to Binance
  • update tests for Binance/CryptoCompare provider changes
  • fix Binance geo-block, ComboBox InvalidCast, and provider defaults
  • fix blank provider dropdown by using string items instead of enum
  • remove BaseAddress from Binance HttpClient DI registration
  • payee search now filters by payee only, not memo
  • payee search includes memo only when memo column visible
  • add error handling, bounds check, and handler integration tests for RAG help
  • guard against race condition and clear payments on close
  • comprehensive reporting engine audit and fixes
  • fix black-on-black legend text and add category grouping toggle
  • isolate AppSettingsServiceTests from production settings.json
  • fix PandL and Mortgage date range refresh not triggering
  • center-align filter groups vertically in Banking and Transaction views
  • replace 295 invalid theme brush references across 96 AXAML files
  • add missing InvoicePaymentRepository and fix Record Payment dialog
  • address code review feedback
  • vertically center filter text content and increase control spacing
  • address code review findings for PandL comparison
  • vertically center filter tabs and align toggle button sizing
  • address code review findings in backup providers
  • add missing InitializeAsync calls for PandL reports
  • move Clear Filters and Expander to filter tabs row, align account name with inputs
  • redesign PandL Comparison with grouped period columns
  • make invoice card styling theme-reactive
  • address code review findings in invoice payment tracking
  • fix empty payments list and add date range dropdown
  • fix payment query LINQ translation failure with Money value conversion
  • redesign payments grid with proper column layout
  • add payment edit/delete icons, fix detail margin, fix browse transactions

New Features

  • add CryptoHistoricalProvider enum for historical price source selection
  • add BinanceProvider for free historical crypto OHLCV data
  • add CryptoCompareProvider for historical crypto OHLCV data
  • register Binance and CryptoCompare providers, remove CoinGecko historical
  • route crypto historical to Binance/CryptoCompare providers
  • pass crypto provider preference through command pipeline
  • replace CoinGecko API key with CryptoCompare in settings
  • replace CoinGecko API key with CryptoCompare in settings provider
  • replace CoinGecko with CryptoCompare in settings UI
  • add provider dropdown logic to PriceHistoryViewModel
  • add crypto provider dropdown to PriceHistoryView
  • auto-set date filter when security changes in Price History
  • add IsHelpQuery property to QueryIntent record
  • add help query intent detection with patterns and tests
  • add IEmbeddingService interface for vector embeddings
  • add IHelpKnowledgeService interface and GuideChunk DTO
  • add GuideChunker for splitting markdown guides into embeddable chunks
  • add OnnxEmbeddingService for sentence embedding via ONNX model
  • add HelpKnowledgeService with cosine similarity search over guide embeddings
  • add build-time embedding generator tool and fix sequence truncation
  • add help query handling with RAG context in SendMessageCommandHandler
  • register EmbeddingService and HelpKnowledgeService in DI container
  • add ONNX model and guide embeddings as Content items in Desktop csproj
  • add AmountPaid to InvoiceListItemDto and mapping
  • add payment info to InvoiceItemViewModel
  • highlight selected invoice in grid
  • add payment history section to invoice detail panel
  • add Record Payment button to detail panel and grid
  • add theme-adaptive color coding to report gallery tiles
  • add orphaned transfers review dialog with item selection
  • add Profit and Loss Comparison report
  • add IDatabaseBackupProvider interface for multi-provider backup support
  • add GetBackupProvider to factory interface and implementation
  • implement SqliteBackupProvider using Online Backup API
  • implement SqlServerBackupProvider using BACKUP/RESTORE DATABASE T-SQL
  • implement PostgreSqlBackupProvider using pg_dump/pg_restore CLI
  • refactor BackupService to use IDatabaseBackupProvider for all providers
  • register IDatabaseBackupProvider in DI via factory pattern
  • add UpdatePayment and RemovePayment domain methods
  • add UpdateInvoicePaymentCommand
  • add DeleteInvoicePaymentCommand
  • add GetAllInvoicePayments query with filtering and pagination
  • add GetInvoicePaymentsReportQuery with method/customer breakdowns
  • add GetInvoiceLinksForTransactionsQuery for deposit badges
  • convert Record Payment to windowed dialog with edit/delete and auto-match
  • add payments sub-tab with filtering and pagination
  • add Invoice Payments report to report gallery
  • add invoice payment link badge to transaction list
  • add selection highlighting and detail panel margin to Services view
  • add busy cursor and non-blocking transaction filtering

Other Changes

  • add design and implementation plan for Binance/CryptoCompare providers
  • add in-app knowledge system (RAG) design document
  • add implementation plan for in-app knowledge RAG system
  • add invoice margin fix, implementation plan, and gitignore update
  • extract IProfitLossClassificationService from PandL logic
  • replace inline PandL classification with shared service
  • add multi-provider backup and restore design document
  • add multi-provider backup and restore implementation plan
  • update PROGRESS.md with multi-provider backup/restore completion
  • merge worktree-category-usagetype-seeding into master
  • add invoice payment tracking improvements design document
  • add invoice payment tracking implementation plan
  • add busy cursor and async filter implementation plan
March 6, 2026



Bug Fixes

  • use CoinGecko days-based endpoint for historical prices
  • cap CoinGecko historical to 365 days, default To date
  • define missing theme brushes and replace hardcoded foreground colors
  • prevent crash when LiveCharts XAxes collection is empty

New Features

  • add CoinGecko Demo API key support for historical crypto prices
March 5, 2026



Bug Fixes

  • address code review issues for excluded view buttons
  • set UsageType to Business for Office Expenses categories
  • batch fix category filter, sync styling, dialog heights, and UX improvements
  • use domain IsInvestmentAccount() for account filtering
  • update Polygon RPC endpoint from polygon-rpc.com to polygon.drpc.org

New Features

  • context-sensitive action buttons for Excluded view
  • set correct UsageType on preset categories during new database creation
  • add re-run AI and usage type filter to categorization assistant
  • add BNB, Polygon, Avalanche, Cardano to BlockchainNetwork enum
  • add address validation for BNB, Polygon, Avalanche, Cardano chains
  • add generic EVM wallet provider for multi-chain support
  • add Cardano wallet provider using Koios API
  • register BNB, Polygon, Avalanche, Cardano wallet providers in DI
  • add address placeholders and display names for new blockchains
  • add flickering animation to categorization assistant lightbulb icon
  • add 15 new blockchain networks with Moralis chain IDs
  • add address validation for 15 new EVM chains
  • add MoralisEvmWalletProvider for multi-chain token discovery
  • add MoralisSolanaWalletProvider for SOL + SPL token discovery
  • register Moralis providers for 19 EVM chains + Solana
  • add address placeholders for 15 new blockchain chains
  • responsive toggle button text collapse in Banking toolbar
  • responsive text collapse for Banking header toolbar
  • show transfer icon instead of warning for linked transactions

Other Changes

  • add wallet blockchain expansion design and implementation plan
  • two-column layout for categorization assistant options
  • add top-100 crypto Moralis expansion design
  • add top-100 crypto Moralis expansion implementation plan
  • add missing CoinGecko symbols for new chain native tokens
  • extract shared AsyncMockHttpHandler, add null/whitespace tests
March 4, 2026



Bug Fixes

  • use AddRecentConnectionAsync for SQL Server/PostgreSQL connections
  • allow excluding non-imported pending transactions
  • use AddRecentConnectionAsync for non-SQLite metadata

New Features

  • add encrypted credential storage for recent connections
  • decrypt stored credentials when opening recent connections
  • add ConnectToDatabaseDialogViewModel
  • add ConnectToDatabaseDialog view
  • add Connect to Database button on Welcome screen
  • auto-open database after migration

Other Changes

  • add design and implementation plan for SQL Server/PostgreSQL open flow
March 4, 2026



Bug Fixes

  • update RefreshSecurityPricesCommandHandler test for new IPriceHistoryRepository dependency
  • create target database before connecting during provider migration
  • create target database before connecting and force TCP/IP
  • remove tcp: prefix, keep Encrypt=Optional
  • improve password dialog UX with retry and lockout
  • run EF migrations on target provider, not DI-registered source
  • prevent LiveCharts crash when axes are empty

New Features

  • add HistoricalPricePointDto and historical prices interface
  • add Alpha Vantage historical daily price fetching
  • add CoinGecko historical daily price fetching
  • wire historical price fetching into MarketDataService
  • add PriceHistoryDto and PriceHistoryStatsDto
  • add FetchHistoricalPricesCommand for market data backfill
  • add ImportPriceHistoryCsvCommand for Yahoo Finance CSV import
  • add GetPriceHistoryQuery and DeletePriceHistoryCommand
  • add Price History tab with chart, grid, and data management
  • auto-backfill price history on security refresh
  • add daily OHLC price history to sample data
  • add Portfolio Performance tab with historical PandL chart
  • add subscription, tag, and category rule sample data

Other Changes

  • add historical price data and charting design document
  • add historical price data implementation plan
  • update PROGRESS.md with historical price data feature
  • sync SQL Server and PostgreSQL model snapshots
  • add missing Reference column migration for SQL Server and PostgreSQL
  • regenerate SampleData.oledger with new providers
March 3, 2026



Bug Fixes

  • replace data-copy encryption with sqlcipher_export to fix ExecutionEngineException
  • rewrite DatabaseMigrationService to actually copy data
  • fix file lock during encryption by reordering disconnect events and adding retry
  • remove .playwright dir from macOS bundle before codesigning
March 3, 2026



Bug Fixes

  • align reconciled guard tests with current handler logic
  • add missing Reference column to BankAssistant test DB schema
  • fix file security dialog closing database and losing connection on error
  • use PRAGMA rekey for encryption instead of data copy
  • restore data-copy encryption with transaction optimization
  • wire DefaultAccountId setting to transaction list filter
  • clean up stale temp files and clear pools before encryption

New Features

  • allow future dates for mileage trip entries
  • add migrate database option to welcome screen and pre-populate source from current DB

Other Changes

  • update troubleshooting doc status to deferred
  • document integration test fixes in troubleshooting doc

Performance

  • fix UI freeze during file encryption/decryption
March 3, 2026



Bug Fixes

  • uniform button layout, grouped actions, and market price prefill
  • fix button centering, auto-wrap, and ensure all icons
  • replace PathIcon with SymbolIcon on Add Holding button
  • pass all dependencies through InvestmentShellViewModel to HoldingsViewModel
  • persist SnapTrade account mappings to database
  • exclude Personal transactions from Schedule C report
  • treat BusinessType as metadata, not structural change
  • align SnapTrade sync progress overlay with Bank Sync pattern
  • increase dialog heights for mapping and sync progress
  • create dedicated RecurringLineItemDialog view to fix InvalidCastException
  • fix SnapTrade positions deserialization for nested symbol structure
  • preserve scroll position during inline edit save
  • move UnlockReconciledTransactions from global to per-file settings
  • guard status changes on reconciled transactions
  • allow full split editing on reconciled transactions
  • await editor load to fix race condition bypassing all guards
  • treat check# as metadata and add editor save diagnostics
  • wire tags end-to-end and add structural change diagnostics
  • enforce reconciled guards at UI and save-path levels
  • use IUserPreferencesService for UnlockReconciledTransactions in guard tests
  • persist tags via junction table and show Reconciled radio
  • map CheckNumber and tags in query DTO loading
  • wire Reference field end-to-end and fix missing DTO mappings

New Features

  • add CreateRecurring callback to InvoiceItemViewModel
  • add CreateRecurringFromInvoice navigation in InvoicesViewModel
  • handle InvoiceDto prefill in RecurringInvoiceEditorViewModel
  • add context menu with 'Create Recurring' to invoice list items
  • show sent/emailed date in invoice detail side panel
  • add reconciled lock toggle to status bar

Other Changes

  • commit pending CLAUDE.md updates and design docs
  • move guide markdown files to Assets/Guides
  • add design and plan for reconciled guard tests
  • add comprehensive diagnostic logging and troubleshooting doc
  • remove debug writeline noise from MainWindow
March 2, 2026



Bug Fixes

  • code review fixes for email feature
  • fix API key encryption timing and add email handler tests
  • update MarkBillAsPaidCommandHandlerTests for new IMediator dependency
  • fix dialog auto-close and add None option to account dropdown
  • address code review issues - null check, transaction safety, cache invalidation, display
  • improve dialog with proper window chrome and category autocomplete
  • set explicit 700px height on bill payment dialog
  • clear change tracker after duplicate search to prevent SQLite lock
  • remove future date restriction from transactions
  • clear change tracker before bill payment to prevent SQLite lock
  • reset page on search and add amount-match highlighting in picker
  • remove explicit SQLite transaction to eliminate deadlock
  • address code review issues for Either-to-NotSet rename
  • widen deductible % input in dialog and simplify grid inline editor
  • add missing IInvoiceActivityRepository implementation and move error to top
  • show email errors in dialog and add sent/paid dates to detail view
  • remove SendGrid, fix leaky SMTP abstraction, simplify email architecture
  • use "Generated by OpenLedger" in PDF invoice footer
  • remove unused DeductiblePercent field from category system
  • add RevertToDraft tests, hide line item buttons when read-only, fix stale panel
  • update 12 stale tests to match current production code
  • exclude non-business account types from Schedule C and Tax Summary
  • complete unlock reconciled transactions feature
  • remove UsageType filter from Schedule C account eligibility
  • show Reconciled status in all edit dialogs when unlocked
  • check DefaultNameMappings for subcategory parts in Schedule C mapping
  • add diagnostic logging to transaction validators for "not found" errors
  • make IsReconciledStatusVisible observable for binding
  • include BusinessType in reconciled structural change detection
  • eliminate false positives from subscription detection
  • auto-prepend https:// to account URLs for Fetch Statement
  • show finalized/emailed dates in detail panel and simplify email body
  • connect SnapTrade adapter to user-entered credentials from settings.db
  • rewrite SnapTrade API auth to use query params per API spec
  • fix SnapTrade signature computation to match official SDK
  • use relaxed JSON encoding for SnapTrade signature
  • fix SnapTrade account model and add response logging
  • fix SnapTrade account model — brokerage_authorization is a string UUID
  • prevent UNIQUE constraint violation in batch pattern learning
  • include mapping dialog in ShouldCache check
  • remove IAsyncDisposable from AmazonAutoSyncService
  • keep filter bar and grid visible when filter returns no results
  • add diagnostic logging and UI thread dispatch for mapping dialog

New Features

  • add SendGrid email settings (API key, from, CC, BCC)
  • add Email settings view in Settings sidebar
  • add IInvoiceEmailService interface
  • implement SendGridInvoiceEmailService
  • add EmailInvoiceCommand with branded HTML email
  • add Email button and send dialog to InvoiceDetailView
  • add AccountUrl to AccountSummaryDto and mapping
  • add CategoryId and Payee to MarkBillAsPaidRequest
  • create transaction when recording bill payment with account
  • rewrite MarkBillPaidDialogViewModel with account and category selection
  • rewrite MarkBillPaidDialog as windowed dialog with account/category
  • switch BillRemindersViewModel to windowed dialog for mark paid
  • add duplicate transaction detection when recording bill payments
  • add TransactionPickerDialog for linking existing transactions
  • add Link Existing Transaction option to Record Payment dialog
  • add DeductiblePercent property and domain tests
  • add DeductiblePercent to DTOs and handlers
  • wire DeductiblePercent through ViewModels
  • rename Tax Deductible to Schedule C Deductible, add percentage input
  • apply DeductiblePercent in Tax Summary report math
  • support partial bill payments with remaining balance tracking
  • widen percentage input, add filter panel, and tree icons
  • use category emoji icons in tree view instead of monochrome FluentIcons
  • add count column and inline percentage to subcategory grid
  • add Income/Expense/Transfer type editing to detail panel and grid badge
  • rename Either to Not Set, add warning icons, business indicators, and group-by-type toggle
  • add SMTP email support as alternative to SendGrid
  • add Email Invoice button to detail view for finalized invoices
  • add Email button to list sidebar, read-only editor for finalized invoices, and Revert to Draft
  • add HasAnyActiveAsync to ITransferPatternRepository
  • add BackfillTransferPatternsCommand to seed patterns from history
  • trigger transfer pattern backfill on file open
  • add transfer pattern lookup to coordinator for auto-detection
  • add Auto Sync design, plan, and POC tests
  • add IAmazonAutoSyncService interface
  • implement AmazonAutoSyncService with Playwright automation
  • add AutoSync command to AmazonSyncViewModel
  • add Auto Sync button to Amazon view
  • wire up SnapTrade account mapping dialog and auto-sync

Other Changes

  • add invoice emailing design document
  • add invoice emailing implementation plan
  • add SendGrid NuGet package for invoice emailing
  • add bill payment dialog redesign design document
  • add bill payment dialog implementation plan
  • remove mark-paid overlay panel from BillRemindersView
  • add dialog standards reference and slim down CLAUDE.md
  • add design for Link Existing Transaction to Invoice Payment
  • add implementation plan for Link Existing Transaction feature
  • add DeductiblePercent column configuration and migrations
  • remove duplicate IsVisible attribute on Person icon
  • regenerate SampleData.oledger with enriched business transactions
  • add transfer pattern auto-detection design and implementation plan
  • update progress with transfer pattern auto-detection
  • add Playwright package reference to Desktop project
  • register IAmazonAutoSyncService in DI container

Performance

  • optimize pattern lookup with dictionary grouping and pre-loading
March 1, 2026



Bug Fixes

  • persist line item edits and reorder to database
  • align subcategory grid headers and remove row gap
  • exclude soft-deleted transactions from badge counts
  • address code review issues before merge
  • sanitize XML-unsafe characters in release notes for Velopack

New Features

  • add Save and Finalize button and line item reordering
  • add IsInUse computed property to CategoryTreeItemViewModel
  • add subcategory inline editing grid with toggle pills
  • add PendingReview and Inactive status values
  • add RawPayeeName, IsPayeeUserEdited, Deactivate, Reactivate, Confirm, RenamePayee
  • add PendingReview, Inactive, and DateRange repository methods
  • add Confirm, Deactivate, Reactivate, Rename, BulkConfirm commands
  • add date range filter to query and new DTO fields
  • add category exclusion, raw payee names, tighter thresholds
  • add AI enrichment service with consensus voting
  • add Gemini and LocalLlama subscription AI providers
  • wire AI enrichment into detection pipeline
  • add subscription detection settings (4-file pattern)
  • add date filter, grouping, view toggle, confirm/deactivate to VM
  • add card view template and update list view with card/table toggle
  • add subscription detail dialog with click-to-open
  • add pending review indicator to dashboard widget

Other Changes

  • add subscription detection v2 design document
  • add subscription v2 implementation plan
  • update PROGRESS.md and add subcategory grid design docs
  • add EF Core config for RawPayeeName and IsPayeeUserEdited
  • add SubscriptionV2Properties migration for all providers
  • update PROGRESS.md with subscription v2 improvements
March 1, 2026



Bug Fixes

  • default file open dialog to user's Documents/OpenLedger folder
  • fix sync date display, add SimpleFin lightning bolt, accent lock icon
  • change lock icon color from accent to green for better visibility
  • require only 1 completed reconciliation and extend overdue grace period to 10 days
  • restore PDF export for all 9 report ViewModels
  • use theme resource brushes for toast notification colors
  • fix HasBankConnection from LinkedBankAccounts, fix AccentBrush name
  • fix Category Type icon and filter behavior
  • change lock icon color from accent to green for better visibility
  • address PR #7 code review findings
  • change LastDetectionRun from DateTimeOffset to DateTime for SQLite compatibility
  • use correct Semantic*Brush theme resource keys in CategoryDetailPanel
  • suppress spurious saves on category selection change
  • add 4 missing topics to interactive user guide
  • align subcategory grid headers and remove row gap
  • exclude soft-deleted transactions from badge counts

New Features

  • show lock icon on accounts with stored credentials
  • implement Spending Trends and Tax Summary reports
  • add Category Type filter dropdown (Personal/Business/Mixed)
  • add Category Type icon column and fix Mixed filter
  • add domain entities for subscription detection
  • add infrastructure for DetectedSubscription
  • add DTOs, PayeeNormalizer, and SubscriptionDetectionService
  • add commands, queries, and DI registration
  • add dashboard subscriptions widget
  • add dedicated subscriptions page with navigation
  • add StringMatchConverter for enum-to-string visibility bindings
  • add inline editing support with UsageType and TaxCategoryId
  • redesign CategoryDetailPanel with leaf inline editing and parent badges
  • add feature toggle for subscription detection
  • add IsInUse computed property to CategoryTreeItemViewModel
  • add subcategory inline editing grid with toggle pills
  • replace tree icons with UsageType FluentIcons

Other Changes

  • add subscription detection design document
  • add subscription detection implementation plan
  • update PROGRESS.md with category inline editing work
  • add subscription tracking documentation
  • add Services & Products user guide (guide-50)
  • add subscription detection v2 design document
  • add subscription v2 implementation plan
  • update PROGRESS.md and add subcategory grid design docs
February 28, 2026



Bug Fixes

  • show wizard button for any first-time loan reconciliation
  • move wizard button below banner as standalone element
  • only show wizard button for Mortgage accounts
  • add cache invalidation after single accept and editor save
  • unlink transfer pairs when excluding transactions
  • show which process is locking the database file on restore failure
  • detect BOA auto loan origination statements without FINANCECHARGE
  • use account opening balance as fallback for first reconciliation
  • use PDF beginning balance for first loan reconciliation and flip payment sign
  • also fix dynamic re-parse path and add diagnostic logging
  • remove unused icon picker from category editor and fix bottom cutoff
  • stretch category editor dialog to fill available height
  • restore file history functionality for encrypted files
  • show file history with current file and enable QBO migration button
  • route to Advanced View on resume when statement has 0 parsed lines
  • always show categories in new file wizard
  • map interest categories to correct Schedule C lines
  • add offsetting transaction for closing costs in mortgage wizard
  • null-guard _mappingService in Schedule C report
  • fix Schedule C income detection and add QBO category mappings
  • fix 18 test failures across Application and Integration tests
  • build full Parent:Child category paths in query handlers
  • suppress RefreshDataAsync during construction
  • include line items in all invoice repository queries
  • fix batch status/business actions and add Mark Reconciled
  • use Money brushes instead of Semantic brushes for financial amounts
  • fix Schedule C income detection and add QBO category mappings
  • restore 6 SampleData test files lost during merge
  • add RootViewModel to MVVM pattern test exceptions

New Features

  • add Run Mortgage Wizard button to Start Reconciliation dialog
  • add prior servicer payment support to mortgage wizard
  • add Unlock Reconciled Transactions setting
  • add View Statement button to start reconciliation dialog
  • enrich sample data with business/personal category overlap
  • add money colors to Schedule C report
  • add SampleData.Tests project with shared fixture
  • add expected value constants for SampleData calculation tests
  • add loan report tests against SampleData
  • add investment report tests against SampleData
  • add core financial report tests against SampleData
  • add remaining report tests against SampleData
  • add remaining report tests against SampleData

Other Changes

  • add diagnostic logging to Schedule C report
  • add diagnostic logging to ReportViewModelBase
  • fix Schedule C diagnostic logging using lazy logger
  • regenerate SampleData.oledger with current date range
February 27, 2026



Bug Fixes

  • detect credit balance sign and refresh Complete button on flip
  • address clean-context review issues for matching engine
  • address code review - rename to SwapStatuses, add handler validation

New Features

  • add Swap Status button to fix QBO import mistakes
February 26, 2026



Bug Fixes

  • address code review issues for matching engine extraction
  • block completion when transactions are missing from register
February 26, 2026



Bug Fixes

  • exclude zero-balance accounts from reconciliation reminders
  • widen Create New Data File wizard to follow dialog strategy
  • restore sync progress dialog after duplicate review closes
  • uncategorized count wrongly included split parent transactions
  • use stored balance for investment accounts in batch queries
  • remove Reconciled and Diff columns from account list to reduce clutter
  • use string-based amount filtering and fix pagination with filters
  • restore blinking caret in MoneyTextBox by using ClearValue
  • cancel stale DB loads when filters change mid-flight
  • restore Gemini/LLM fallback for generic extractors with 0 transactions
  • clip description text overflow in Advanced Reconciliation view
  • fix review issues from strategy pattern refactor
  • search all pages, not just current page
  • improve transaction matching and allow completion when balanced
  • strong visual feedback for drag-and-drop matching
  • stronger drag-and-drop visuals with row highlight
  • handle sign-flipped amounts, fix drop recalc and hover
  • restore register checkboxes and remove Include/Delete buttons
  • wire IReconciliationMatchingEngine through DI to AdvancedReconciliationViewModel

New Features

  • add drag-and-drop manual matching for unmatched transactions
  • implement multi-pass ReconciliationMatchingEngine
  • wire AdvancedReconciliationViewModel to use IReconciliationMatchingEngine

Other Changes

  • rename AvgCost to PricePerShare to match holdings dialog
  • add strategy pattern foundation for statement extraction
  • extract FingerprintParser and CustomParserDetection strategies
  • extract PythonExtractionStrategy (simple flow)
  • extract DualExtractionStrategy from StatementAIParserService
  • extract GeminiVisionStrategy and clean up StatementAIParserService
  • add matching engine extraction design and plan
  • add matching engine input/output DTOs
  • add IReconciliationMatchingEngine interface and empty impl
  • enforce mandatory worktree isolation for all Claude sessions

Performance

  • column search filters cached data instead of reloading from DB
February 26, 2026



Bug Fixes

  • align filtered total with total using grid layout
  • right-justify filtered total to align with total amount
  • add OtherLiability domain enum and fix AR/AP UI mappings
  • cache categories in mortgage wizard to prevent duplicates
  • correct loan account sign handling and date matching
  • resolve 10 critical gaps in database password protection
  • replace broken PRAGMA rekey='' with schema+data export for password removal
  • use InvariantCulture for decimal parsing, add comprehensive tests
  • use decimal cast for percentage bar width in asset allocation
  • remove broken tests referencing removed overlay dialog properties
  • remove broken tests referencing removed overlay dialog properties
  • update 17 failing tests after parallel session feature changes
  • address code review issues from parallel session integration
  • change holding dialog to use price per share instead of total cost basis
  • lighten SemanticWarningMuted backgrounds for dark themes and add theme-aware warning text color

New Features

  • add filtered total to transaction list footer
  • add DocumentationIndex for embedded guide content loading
  • add DocSearchService for LLM-powered documentation search
  • add documentation search command and properties to AppShellViewModel
  • add documentation search box and result flyout to header bar
  • add Spending by Payee, Batch Edit, Tag Filtering, and Asset Allocation
  • add SQLCipher NuGet package for optional database encryption
  • add IDatabasePasswordProvider for in-memory password storage
  • wire password provider into all SQLite connection strings
  • add IsPasswordProtected to DatabaseSettings and RecentFile
  • add password dialog for opening encrypted databases
  • add password protection option to New File Wizard
  • integrate password prompt into file open and auto-open flows
  • pass database password through backup/restore operations
  • add File Security dialog for add/change/remove password protection
  • store encryption metadata in recent files list
  • show lock icon on encrypted files in recent files list
  • add AlphaVantageApiKey setting for stock/ETF price refresh
  • add Market Data section with Alpha Vantage API key UI
  • add IMarketDataService interface for price refresh
  • add RefreshSecurityPricesCommand and handler
  • implement CoinGecko provider for crypto prices
  • implement Alpha Vantage provider for stock/ETF prices
  • add Refresh Prices button to Holdings view
  • convert overlay dialogs to proper modal windows
  • add Moralis API key and restructure Market Data section
  • add WalletConnection aggregate root with blockchain network support
  • add WalletConnection EF Core configuration, repository, and migrations
  • add wallet connection CRUD commands and sync handler
  • add 6 blockchain wallet balance providers with address validation
  • add wallet connection dialog and MoralisApiKey setting
  • add read-only wallet balance tracking for 6 blockchain networks
  • extract Market Data into its own settings section

Other Changes

  • update user guides and add new guide content
  • register DocSearchService
  • merge duplicate Closing Costs, reparent orphan categories, fix typo
  • add design and plan docs for doc search and mortgage reconciliation
  • add design doc for database password protection
  • add implementation plan for database password protection
  • add .worktrees to gitignore for isolated feature workspaces
  • add market data integration design
  • add market data integration implementation plan
  • rename CryptoWallet display to Cryptocurrency
  • add parallel session isolation instructions and update settings references
  • add worktree completion workflow with auto-merge and PR options
  • update settings references from desktop-settings.json to settings.db
  • archive progress history and update current PROGRESS.md
  • add BankingCenterViewModel god class refactoring design and plan
  • add static analysis and lint cleanup
  • suppress noise warnings and remove dead code
  • update PROGRESS.md with investment system fixes
  • fix analyzer warnings — suppress low-count rules and resolve S2139 log-then-throw
February 25, 2026



Bug Fixes

  • compact loan and mortgage sections in account editor dialog
  • 4-column loan terms, uniform input heights, expander and tab styling
  • tab bottom border, rate history spacing, expander button styling, section separator
  • fix MoneyTextBox phantom caret and NumericTextBox focus loop

New Features

  • add 4-step mortgage setup wizard with closing costs and auto-reconciliation
  • add escrow pipeline for 3-way mortgage matching (P/I/E)
  • add mortgage document attachments with 11 standard categories
  • add server-side filtered query methods to TransactionRepository

Other Changes

  • add Mortgage Setup Wizard design document
  • add Mortgage Setup Wizard implementation plan
  • add transaction view performance optimization design
  • add transaction performance optimization implementation plan
  • add mortgage wizard, escrow pipeline, and document attachments designs
  • update PROGRESS.md with mortgage workflow tasks
  • scaffold BenchmarkDotNet project for transaction performance testing
  • add benchmark database fixture seeding 50K transactions
  • add baseline query benchmarks for transaction repository
  • add baseline filter benchmarks comparing current vs optimized approaches
  • add running balance and collection swap benchmarks
  • record baseline benchmark results
  • record post-optimization benchmark results

Performance

  • push 5 in-memory filters to SQL, eliminate int.MaxValue dataset loads
  • add covering index for AccountId+Status+CategoryId
  • single-pass filter with Span matching, HashSet category lookup
  • skip redundant sort in running balance when data is already date-sorted
February 24, 2026



Bug Fixes

  • derive mortgage principal as remainder and reload after inline edit
  • show category names and split details in reconciliation print report
  • toast above status bar, fetch statement button, account column spacing
  • toast above status bar, fetch statement button, account column spacing

New Features

  • add segmented tabs and collapsible sections to account editor
  • populate TypeSpecificDataJson for all account types
  • add PDF export and print preview for Mortgage Summary report
  • add reconciliation reminders with pattern detection
  • support zero-transaction mortgage statement parsing and reconciliation

Other Changes

  • add design and implementation plan for reconciliation reminders
February 24, 2026



New Features

  • add Mortgage Summary report with P/I/E breakdown and fix PennyMac parser
  • add release update and clear API endpoints