Skip to content

Releases: becauseimclever/BudgetExperiment

v3.24.3

18 Mar 20:59

Choose a tag to compare

[3.24.3] - 2026-03-18

Bug Fixes

  • Update Dockerfile.prebuilt with chiseled-extra and ICU support

Full Changelog: v3.24.2...v3.24.3

v3.24.2

18 Mar 05:01

Choose a tag to compare

[3.24.2] - 2026-03-18

Bug Fixes

  • Disable globalization-invariant mode in Docker image

Full Changelog: v3.24.1...v3.24.2

v3.24.1

18 Mar 04:38

Choose a tag to compare

[3.24.1] - 2026-03-18

Bug Fixes

  • Use noble-chiseled-extra image for ICU globalization support

Full Changelog: v3.24.0...v3.24.1

v3.24.0

18 Mar 03:36

Choose a tag to compare

[3.24.0] - 2026-03-18

Bug Fixes

  • Return 404 for unmatched API routes instead of SPA fallback

Documentation

  • Add feature docs 108-111
  • Add feature docs 114-117
  • Archive feature docs 091-100
  • Add feature 118 - PostgreSQL 18 upgrade plan

Features

  • perf: Add API performance testing infrastructure (Feature 112)
  • perf: Add API performance testing infrastructure (Feature 112)
  • perf: Add dedicated performance test environment using Raspberry Pi 5
  • docker: Use hardened Docker images
  • api: Add production logging and observability stack
  • 110: Debug log export - phases 1-4 (WIP)
  • Add debug log export docs, bug report template, archive docs 101-110
  • docs: Add feature 119 - Recurring Charge Detection & Suggestions documentation
  • Initial page load performance optimizations (Feature 117)

Miscellaneous

  • deps: Bump GitHub Actions and NuGet dependencies
  • deps: Bump all dependencies (closes #40-#48)

Full Changelog: v3.23.0...v3.24.0

v3.23.0

12 Mar 04:00

Choose a tag to compare

[3.23.0] - 2026-03-12

Documentation

  • Add feature 105 — AI suggestions UX redesign
  • Update CHANGELOG for v3.23.0

Features

  • AI suggestion quality improvements (Features 105 & 106)
  • Implement Feature 107 - Unified Transaction List with actionable operations

Full Changelog: v3.22.0...v3.23.0

v3.22.0

09 Mar 01:41

Choose a tag to compare

[3.22.0] - 2026-03-09

Bug Fixes

  • import: Handle sanitized negative amounts in CSV import
  • Set en-US culture in ChatMessageBubbleTests for CI compatibility

Documentation

  • Add culture-sensitive formatting guidance to copilot instructions
  • client: Document ViewModel extraction pattern (Feature 097 done)
  • Add feature docs 098-104 for ViewModel extraction of remaining pages
  • Add v3.22.0 changelog — ViewModel extraction, test coverage, CI improvements

Features

  • 095: Add client test coverage phase 2 - API services and page tests
  • tests: Expand client test coverage - Phase 6 + P1 pages
  • docs: Establish localization infrastructure for multi-language support
  • client: Add CategoriesViewModel with comprehensive unit tests
  • 098: Extract RulesViewModel from Rules.razor
  • 099: Extract AccountsViewModel from Accounts.razor
  • Extract BudgetViewModel from Budget.razor (Feature 100)
  • client: Extract RecurringViewModel from Recurring.razor (#101)
  • Extract RecurringTransfersViewModel from Razor code block (Feature 102)
  • client: Extract TransfersViewModel from Transfers.razor (#103)
  • 104: Extract OnboardingViewModel from Onboarding.razor

Miscellaneous

  • deps: Bump docker/build-push-action from 5 to 6
  • deps: Bump actions/setup-dotnet from 4 to 5
  • deps: Bump actions/download-artifact from 4 to 8
  • deps: Bump actions/checkout from 4 to 6
  • deps: Bump dorny/test-reporter from 1 to 2
  • Bump dotnet-ef from 10.0.0-preview.7.25380.108 to 10.0.3
  • Bump Microsoft.Build.Tasks.Core from 18.0.2 to 18.3.3
  • Bump the extensions group with 2 updates

Refactoring

  • client: Wire Categories.razor to CategoriesViewModel

Testing

  • client: Add tests for P2 page components
  • client: Add chat and display component tests
  • client: Add P3 page, service, and model tests
  • client: Deepen page handler coverage toward 65% target
  • client: Deepen page handler coverage to reach 65% target

What's Changed

  • chore(deps): bump docker/build-push-action from 5 to 6 by @dependabot[bot] in #18
  • chore(deps): bump actions/setup-dotnet from 4 to 5 by @dependabot[bot] in #19
  • chore(deps): bump actions/download-artifact from 4 to 8 by @dependabot[bot] in #20
  • chore(deps): bump actions/checkout from 4 to 6 by @dependabot[bot] in #21
  • chore(deps): bump dorny/test-reporter from 1 to 2 by @dependabot[bot] in #22
  • chore: Bump the extensions group with 2 updates by @dependabot[bot] in #24
  • chore: Bump dotnet-ef from 10.0.0-preview.7.25380.108 to 10.0.3 by @dependabot[bot] in #28
  • chore: Bump Microsoft.Build.Tasks.Core from 18.0.2 to 18.3.3 by @dependabot[bot] in #29

New Contributors

Full Changelog: v3.21.0...v3.22.0

v3.21.0

09 Mar 01:41

Choose a tag to compare

[3.22.0] - 2026-03-09

Bug Fixes

  • import: Handle sanitized negative amounts in CSV import
  • Set en-US culture in ChatMessageBubbleTests for CI compatibility

Documentation

  • Add culture-sensitive formatting guidance to copilot instructions
  • client: Document ViewModel extraction pattern (Feature 097 done)
  • Add feature docs 098-104 for ViewModel extraction of remaining pages
  • Add v3.22.0 changelog — ViewModel extraction, test coverage, CI improvements

Features

  • 095: Add client test coverage phase 2 - API services and page tests
  • tests: Expand client test coverage - Phase 6 + P1 pages
  • docs: Establish localization infrastructure for multi-language support
  • client: Add CategoriesViewModel with comprehensive unit tests
  • 098: Extract RulesViewModel from Rules.razor
  • 099: Extract AccountsViewModel from Accounts.razor
  • Extract BudgetViewModel from Budget.razor (Feature 100)
  • client: Extract RecurringViewModel from Recurring.razor (#101)
  • Extract RecurringTransfersViewModel from Razor code block (Feature 102)
  • client: Extract TransfersViewModel from Transfers.razor (#103)
  • 104: Extract OnboardingViewModel from Onboarding.razor

Miscellaneous

  • deps: Bump docker/build-push-action from 5 to 6
  • deps: Bump actions/setup-dotnet from 4 to 5
  • deps: Bump actions/download-artifact from 4 to 8
  • deps: Bump actions/checkout from 4 to 6
  • deps: Bump dorny/test-reporter from 1 to 2
  • Bump dotnet-ef from 10.0.0-preview.7.25380.108 to 10.0.3
  • Bump Microsoft.Build.Tasks.Core from 18.0.2 to 18.3.3
  • Bump the extensions group with 2 updates

Refactoring

  • client: Wire Categories.razor to CategoriesViewModel

Testing

  • client: Add tests for P2 page components
  • client: Add chat and display component tests
  • client: Add P3 page, service, and model tests
  • client: Deepen page handler coverage toward 65% target
  • client: Deepen page handler coverage to reach 65% target

Full Changelog: v3.20.0...v3.21.0

v3.20.0

07 Mar 06:22

Choose a tag to compare

[3.20.0] - 2026-03-07

Testing

  • Add client component and service test coverage (Phases 1-2)
  • Add client component test coverage for common, import, AI, reconciliation, navigation (Feature 091 Phases 3-5)

Full Changelog: v3.19.0...v3.20.0

v3.19.0

07 Mar 06:22

Choose a tag to compare

[3.20.0] - 2026-03-07

Testing

  • Add client component and service test coverage (Phases 1-2)
  • Add client component test coverage for common, import, AI, reconciliation, navigation (Feature 091 Phases 3-5)

Full Changelog: v3.17.0...v3.19.0

v3.17.0

06 Mar 20:10

Choose a tag to compare

[3.17.0] - 2026-03-06

CI/CD

  • docker: Restrict to tag releases + manual dispatch

Documentation

  • Close feature 059, defer CI enablement to #17
  • 061: Mark feature as done — all 3 slices complete
  • Update Feature 078 doc to Done status with actual scope
  • Update CHANGELOG with Feature 079 and 080 entries
  • 080: Update Feature 080 doc — mark prerequisite done, add test coverage table, expand long methods list
  • Remove individual feature docs 071-080 (archived in docs/archive/)
  • Update 082 status and CHANGELOG for concurrency Slices 1-2

Features

  • ci: Add CI workflow, move PR triggers from Docker to CI
  • Multi-feature batch — location choropleth, dismissed suggestions view, docs archive
  • 061: Slice 2 — restore dismissed category suggestions
  • 061: Slice 3 — clear dismissed suggestion patterns
  • 063: Enhance CSV import security by moving parsing to client-side
  • Secure file upload hardening (Feature 063)
  • app: Replace hardcoded USD with ICurrencyProvider (Feature 064)
  • docs: Add feature specifications for code improvements
  • Add Dependabot configuration for automated dependency updates
  • docs: Add CI and release badges to README
  • Features 061-070 — suggestions, onboarding, scope fix, E2E, bug fixes
  • 075: Split remaining multi-type files (Slices 6-8)
  • api: Add runtime API versioning with Asp.Versioning (Feature 081)
  • api: Implement optimistic concurrency Slice 1 - Foundation + Account
  • api: Implement optimistic concurrency Slice 2 - Transaction
  • api: Add ETag/If-Match concurrency for BudgetCategory and BudgetGoal (082 Slice 3)
  • 082: Optimistic concurrency slices 4-7 — recurring, secondary aggregates, client integration
  • api: Code hygiene fixes — middleware hardening, async naming, transfer pagination, docs & DI (Feature 084)

Refactoring

  • contracts: Split 2-type DTO files into one-per-file (Slice 1)
  • contracts: Split CRUD DTO files into one-per-file (Slice 2)
  • contracts: Split medium DTO files into one-per-file (Slice 3)
  • contracts: Split large DTO files into one-per-file (Slice 4)
  • application: Split service interface files into one-per-file (Slice 5)
  • domain: Rename 17 value objects with Value suffix
  • domain: Organize interfaces into Services/ and Identity/ folders
  • all: Re-enable StyleCop analyzers, fix ~1500 violations (Feature 078)
  • all: Decouple Client from Domain — extract shared enums to BudgetExperiment.Shared (Feature 079)
  • Decompose ImportService into focused sub-services (Phase 1)
  • app: Decompose RuleSuggestionService and NaturalLanguageParser (Feature 080 Phase 2)
  • app: Decompose ReconciliationService and ReportService (Feature 080 Phase 3)
  • app: Decompose remaining god services (Phase 5)
  • domain: Extract DescriptionSimilarityCalculator from TransactionMatcher
  • Centralize OIDC claim name strings into ClaimConstants
  • Centralize magic strings into shared constants (Feature 083)

Testing

  • e2e: Add unit tests for performance threshold logic
  • app: Add 36 unit tests for RecurringTransactionService, update Feature 080 doc (Feature 080)

Full Changelog: v3.16.1...v3.17.0