Skip to main content

Changelog

Every improvement, automatically tracked from our commit history.

Subscribe via Atom feed
← Prev Page 13 of 32 Next →
February 22, 2026
minor Finance

Add goal engine, age-of-money, credit card logic, and envelope transfers (v1.4.0)

Finance 1.3.0 → 1.4.0 | 34d40bee
Details

New services: GoalService (5 goal types: MonthlySpending, WeeklySpending,

NeededByDate, SavingsBalance, MonthlySavingsBuilder with progress and

underfunded calculations), AgeOfMoneyService (FIFO matching of spending

to income), CreditCardService (funded vs unfunded CC debt, available for

payment), TransferService (conservation-law category-to-category budget

transfers). New GoalTargetType enum and ReconciliationCheckpoint record.

Category model extended with optional GoalTargetType field. Comprehensive

test coverage for all new services including edge cases.

minor Finance

Refactor Finance plugin for CLAUDE.md compliance, bump to v1.3.0

Finance 1.2.0 → 1.3.0 | 2507327e
Details

Splits 3 oversized files to comply with modularity standards:

  • ReconciliationService: extracted StringSimilarity (Jaro-Winkler,

Levenshtein, Token Jaccard) into Services/StringSimilarity.cs

  • CsvStrategy: extracted CsvProfileDetector (auto-detection, delimiter,

date format) and CsvLineParser (RFC 4180 quoted fields) into separate files

  • FinancePlugin.Intents: split descriptors from execution handlers into

FinancePlugin.IntentHandlers.cs

Extracts 4 nested ViewModels into dedicated files per One Thing Rule:

CategoryGroupViewModel, CategoryViewModel, TransactionViewModel,

ReconciliationMatchViewModel.

Fixes async anti-patterns:

  • OnSelectedAccountChanged: wrapped fire-and-forget in try/catch
  • OnAllocatedChanged: added error handling in UpdateAllocationAsync
  • IShareableBehavior: replaced per-call .GetAwaiter().GetResult() with

ConcurrentDictionary cache and lazy refresh on miss

Updated test references for extracted classes.

minor Finance

Add 5 capability interfaces to Finance plugin, bump to v1.2.0

Finance 1.1.0 → 1.2.0 | d9d5dced
Details

Implements the remaining high-priority capability interfaces for the Finance

plugin using the established partial class pattern:

  • IShareableBehavior: shares finance_account and finance_transaction entities

with title resolution from the repository

  • ICommandProvider: 3 command palette entries (Budget, Register, Reconciliation)
  • IIntentProvider: 3 AI intents — create transaction, check account balance,

and check budget category status with full slot validation

  • IReminderProvider: budget overallocation alerts on the 1st of each month

when To-Be-Budgeted goes negative

  • IQuickActionProvider: quick transaction entry overlay (Cmd+Shift+T) with

a new QuickTransactionForm programmatic control implementing IQuickActionForm

All 5 capabilities are registered in OnInitializeAsync. The QuickTransactionForm

follows the constructor-built pattern to avoid intermittent empty overlay issues.

Version bumped in both .csproj and PluginMetadata. CONTINUATION.md updated to

reflect completed work and remaining medium/lower priority items.

February 21, 2026
minor Habits

Fix Habits plugin compliance gaps and bump to v1.2.0

Habits 1.1.0 → 1.2.0 | 06e54e59
Details

Comprehensive audit and fix for full plugin compliance:

  • Add 5 missing capability registrations in OnInitializeAsync (IGraphDataProvider,

IIntentProvider, IIndexableContentProvider, IQuickActionProvider, ISeedDataProvider)

  • Fix GoalDetailPanel $parent binding crash: replace with Tag+Click handler pattern
  • Wire goal detail persistence: Status/Priority ComboBox SelectionChanged handlers,

Progress Slider PointerReleased handler, centralized PersistGoal()

  • Add reminder_time to habit entity schema indexed fields
  • Add async methods to all 4 services (UpdateAsync, DeleteAsync, CreateAsync)
  • Add seed progress logging to HabitsSeedService
  • Refresh DetailEntries after ToggleHabitCompletion and LogNumericValue
  • Version bump 1.1.0 → 1.2.0 (csproj + PluginMetadata synced)
minor Notes

Update Notes AI pipeline for nested blocks and column layouts

Notes 1.60.0 → 1.61.0 | 4d74a66f
Details

ExtractBlockText now recurses into PageBlock.Children and handles

ColumnLayoutBlock, with dedicated helpers for bullet, numbered, and

task list ChildBlocks extraction. InsertBlockRelative replaced with

InsertBlocksRelative which parses AI content through MarkdownBlockParser

to create structured blocks (lists, headings, code, etc.) instead of

plain paragraphs. CaptureBlockText uses ExtractBlockText for full

block-type coverage. Undo handler supports multi-block removal via

semicolon-separated inserted block IDs. Version bump to 1.61.0.

← Prev Page 13 of 32 Next →

Get notified about new releases