Back to home

Changelog

All notable changes to SplitDuo will be documented in this file.

Generated with git-cliff from Conventional Commits.

[1.16.0] - 2026-09-02

Features

  • (settlements) Typed-expense settlements with API, settle UX, tests
  • (release) Sync backend, frontend and api spec versions on release

[1.15.4] - 2026-08-28

Bug Fixes

  • (stats) Gross semantics for YouOwe/YoureOwed + validate unassigned payer in alias mode

Code Refactoring

  • Resolve stale backend TODOs (CSV parsers + user stats relocation)
  • (stats) Separate user dashboard stats by alias vs non-alias mode

[1.15.3] - 2026-08-28

Bug Fixes

  • (stats) Rename expense count field and drop currency formatting

[1.15.2] - 2026-08-26

Bug Fixes

  • (ui) Resolve UI/UX review findings (a11y, i18n, currency, tokens)

[1.15.1] - 2026-08-24

Bug Fixes

  • (ui) Avatar initials render as clean circle in dark mode
  • Group member list does not show avatars after upload

[1.15.0] - 2026-08-24

Features

  • Expense receipt attachments
  • Split expense by percentage
  • User profile picture with initials fallback

Testing

  • Close backend coverage gaps (imports + background jobs)

[1.14.0] - 2026-08-18

Bug Fixes

  • (expenses) Correct alias-mode dot color and split-among layout
  • (ci) Scope aggregate-coverage manual rule to MR events only

Build System

  • Mark verify and security jobs interruptible to save runner minutes

Features

  • (settle) Add dedicated settle page

Styling

  • (expenses) Make AI scan button more discoverable

[1.13.0] - 2026-08-15

Bug Fixes

  • (groups) SQL aggregation for alias balances + created-by bug
  • (users) Handle alias-mode balances in user stats endpoint

Features

  • (ui) Add logo to header and enhance login page

[1.12.0] - 2026-08-15

Bug Fixes

  • Align backend default admin creds with docker-compose

Code Refactoring

  • (ci) Regroup stages into verify/test/coverage/build/release

Features

  • (pwa) Generate icons from SVG logo via @vite-pwa/assets-generator
  • (cache) In-memory cache for backend aggregates

Testing

  • (frontend) Add Vitest test infrastructure and regression suite

[1.11.1] - 2026-08-06

Bug Fixes

  • (ci) Exclude .git and build artifacts from trufflehog scan

Build System

  • (security) Add trivy and trufflehog scans to verify stage

[1.11.0] - 2026-08-06

Bug Fixes

  • (frontend) Inline GenericModal props to fix SFC type resolution

Features

  • (scripts) Add aggregated security scan runner

[1.10.0] - 2026-08-06

Bug Fixes

  • (ci) Pull upstream artifacts into aggregate-coverage job
  • (ci) Expose cobertura files as artifact paths for downstream jobs
  • (frontend) Make expense form buttons full-width on mobile

Build System

  • (test) Skip integration-tests on release commits to main
  • Aggregate coverage, gate build on tests, tag-only build
  • (frontend) Bump apexcharts to v6, tree-shake to bar+donut

Features

  • Migrate frontend from JavaScript to TypeScript

[1.9.2] - 2026-08-01

Bug Fixes

  • (docker) Enable globalization in alpine runtime for en/it cultures

Build System

  • (verify) Skip lint and unit-tests on release commits to main

[1.9.1] - 2026-08-01

Bug Fixes

  • (ci) Add JunitXml.TestLogger to unit test project

Styling

  • Wrap arrow arg parens in nuxt.config

[1.9.0] - 2026-08-01

Bug Fixes

  • (scripts) Keep backfill-releases scratch files in repo root

Build System

  • Add verify stage and document pipeline

Features

  • I18n

[1.8.0] - 2026-07-31

Build System

  • (test) Skip integration tests on version tags
  • (test) Use sdk image directly to fix nuget access on gitlab runners
  • (test) Scope after_script to build job and fix test script line continuations
  • (test) Use canonical dind TLS config and drop redundant service alias
  • (build) Scope before_script to build job to avoid leaking docker login to test job
  • (test) Fix junit report path — logger writes next to test project, not results dir
  • (release) Create GitLab release on v* tags
  • (release) Create GitHub release on mirrored repo for v* tags

Code Refactoring

  • (admin) Extract pending user card to component

Features

  • (groups) Allow admins to promote and demote members
  • (users) Allow system admins to promote and demote users

Testing

  • (integration) Add JunitXml.TestLogger for junit report in CI
  • (integration) Bump JunitXml.TestLogger to 8.0.0
  • (integration) Pin JunitXml.TestLogger to 7.1.0 for Testing.Platform 1.x compat
  • (coverage) Add coverlet to unit tests and run-coverage wrapper
  • (groups) Add missing ChangeMemberRole guard tests and document lessons learned

[1.7.2] - 2026-07-26

Bug Fixes

  • (auth) Escape braces in password complexity error message
  • (auth,aliases) Block deleted users from login and return assigned member in alias DTO
  • (imports) Preserve conflict status on duplicate and rollback transaction on alias-mode guard
  • (groups) Rework pending invitation card for mobile and extract shared component

Build System

  • (test) Add manual integration tests job with cobertura coverage report

Testing

  • (auth,invitations) Add integration tests for auth and invitations
  • (groups,balances) Add integration tests for group members and balances
  • (aliases,2fa,users) Add integration tests for aliases, 2FA, and user profile
  • (imports) Add integration tests for import analyze, map, and process flow

[1.7.1] - 2026-07-25

Bug Fixes

  • (expenses) Validate enum values and preserve category/payment mode on empty update

Testing

  • (groups) Add integration tests for Groups CRUD
  • (expenses) Add integration tests for Expenses CRUD

[1.7.0] - 2026-07-25

Features

  • User settings

[1.6.4] - 2026-07-24

Bug Fixes

  • (expenses) Treat comma as decimal separator in amount inputs

[1.6.3] - 2026-07-24

Features

  • (frontend) Carousel for dashboard recap stats on mobile

[1.6.2] - 2026-07-24

Bug Fixes

  • (frontend) Add dark-mode body background for Android nav bar sampling

[1.6.1] - 2026-07-24

Bug Fixes

  • (frontend) Round currency display to 2 decimals and fix stat card overflow
  • (frontend) Set color-scheme to follow app dark mode for Android nav bar

[1.6.0] - 2026-07-23

Features

  • Group alias

[1.5.0] - 2026-07-20

Features

  • (frontend) Proactive token refresh before expiry

[1.4.0] - 2026-07-20

Bug Fixes

  • (frontend) Sync auth token state to prevent stale retry after refresh

Features

  • (frontend) Add loading indicator and SPA loading template

[1.3.1] - 2026-07-20

Bug Fixes

  • (frontend) Preserve selected participants when editing expense

[1.3.0] - 2026-07-20

Features

  • (frontend) Rework group stats and recap UI with hierarchy

[1.2.0] - 2026-07-19

Bug Fixes

  • (release) Bump package.json alongside VERSION in cat-v config

Features

  • (frontend) Add PWA install prompt, offline banner, and iOS meta tags

[1.1.0] - 2026-07-19

Build System

  • (release) Use commit-and-tag-version for version bumps

Features

  • (frontend) Unify back navigation with useSmartBack composable

[1.0.0] - 2026-07-19

Bug Fixes

  • (scripts) Add selinux z mount label for container scans
  • (backend) Resolve all nullable warnings
  • (auth) Use UTC DateTime for JWT expiry
  • (scripts) Tag bump commit after changelog amend

Code Refactoring

  • (ui) Gate destructive actions behind overflow menu and confirmation

Features

  • (scripts) Add trivy and trufflehog security scan scripts

Styling

  • (frontend) Apply UI consistency fixes across all pages
  • (frontend) Polish desktop and tablet UI layout

[0.1.38] - 2026-07-12

Bug Fixes

  • (auth) Use role claim name to match MapInboundClaims=false

[0.1.37] - 2026-07-12

Bug Fixes

  • (docker) Restore Api project only to skip missing test csprojs

[0.1.36] - 2026-07-12

Code Refactoring

  • (backend) Inject TimeProvider for testable time-dependent code

Features

  • (auth) Rework auth with lockout, multi-device refresh, security stamp

[0.1.35] - 2026-07-11

Bug Fixes

  • (docker) Copy pnpm-workspace.yaml for build script approval

[0.1.33] - 2026-04-21

Bug Fixes

  • Replace UiDatePicker with UiInputDate for date filters

[0.1.32] - 2026-04-21

Bug Fixes

  • Update app description to reflect broader user base
  • Update SameSite attribute for cookies to ‘lax’ for better compatibility
  • Add middleware to redirect authenticated users to dashboard

[0.1.31] - 2026-04-17

Bug Fixes

  • Update button labels to use span for better responsiveness
  • Implement 3-decimal precision for expense splits and update currency formatting

[0.1.30] - 2026-04-17

Features

  • Add rate limiting for receipt scanning and validate receipt amount

[0.1.29] - 2026-04-16

Bug Fixes

  • Ensure color is set for notification messages

[0.1.28] - 2026-04-16

Features

  • Implement AI receipt scanning feature

[0.1.27] - 2026-04-15

Features

  • (expense) Replace UiDatePicker with UiInputDate component

[0.1.26] - 2026-04-15

Features

  • (health) Add health checks for PostgreSQL database

[0.1.25] - 2026-04-15

Bug Fixes

  • (auth) Enhance token handling and refresh logic

[0.1.24] - 2026-04-11

Bug Fixes

  • Update short name in manifest to ‘SplitDuo’
  • Replace IConfiguration with IOptions for database connection in LogCleanupJob

[0.1.23] - 2026-04-11

Features

  • Add pwa feature
  • Replace UInput with UiDatePicker for expense date selection. Closes #4

[0.1.22] - 2026-03-23

Bug Fixes

  • Change currency format from USD to EUR in formatCurrency function. Closes #2

Features

  • Add dev.sh script for managing development services
  • Add ToDisplayName extension method for PaymentMode enum
  • Add TicketRestaurant option to PaymentMode enum and update extension method. Closes #3

[0.1.21] - 2026-02-23

Bug Fixes

  • Add APP_VERSION build argument to Docker image build script

Build System

  • Fix dockerfile by adding npmrc file copy

[0.1.20] - 2026-02-23

Build System

  • Switch to pnpm 10

Code Refactoring

  • Remove LastName from email notification templates
  • Switch to otp.net library

Features

  • Db migrations
  • Totp 2fa challenge and remove email 2fa
  • 2fa flow in frontend
  • Add autofocus to TOTP input and simplify auto-submit condition

[0.1.19] - 2026-02-22

Code Refactoring

  • Update email notification templates for improved clarity and tone

[0.1.18] - 2026-02-22

Features

  • Email template provider

[0.1.17] - 2026-02-21

Features

  • Add option to seed demo data and implement demo data seeding logic
  • Implement net balance calculation for user groups and update UI accordingly

[0.1.16] - 2026-02-21

Styling

  • Enhance
  • Update button variants and layout for better UI consistency
  • Improve layout and structure of profile page for better UI consistency

[0.1.15] - 2026-02-21

Code Refactoring

  • Consolidate style

[0.1.14] - 2026-02-21

Code Refactoring

  • Authentication setup and add JwtBearerOptions configuration using options pattern properly

Features

  • Expenses stats charts
  • Implement chart theme composable and update chart components

Styling

  • Format

[0.1.13] - 2026-02-21

Bug Fixes

  • Update filter title styling to use primary color

Code Refactoring

  • Implement ExpenseFilterCard component

Features

  • Add filters fin group expense page
  • Replace UInput with UiDatePicker for date selection in ExpenseFilterCard
  • Add text search functionality to expense filters
  • Persiste page and filters in group index view

[0.1.12] - 2026-02-21

Bug Fixes

  • Simplify API request handling by creating fetchOnce function and improving error handling

Code Refactoring

  • Standardize page width
  • Remove useless settlement entity
  • Introduce ExpenseFilterOptions for improved expense retrieval filtering

Features

  • Add Net Balance card to dashboard with dynamic color and icon
  • Add skeleton components for user, group, and expense cards; implement loading state in dashboard and groups pages

[0.1.11] - 2026-02-18

Bug Fixes

  • Remove filtering of “Payment” category in Splitwise CSV parser

Code Refactoring

  • TabsNav component and integrate stats and expenses tabs in group page
  • Implement ExpensesTab and StatsTab components for group page

Features

  • Splitwise import
  • Add notification system for expense and group deletions
  • Group stats

[0.1.10] - 2026-02-08

Features

  • Invitation system

[0.1.8] - 2026-02-07

Features

  • Add “Add & Add More” button and functionality to ExpenseForm

[0.1.7] - 2026-02-01

Features

  • Pass application version as build argument and display in dashboard

[0.1.4] - 2026-02-01

Build System

  • Go back to node 22

[0.1.3] - 2026-02-01

Bug Fixes

  • Update expense response was broken since i do not understand EF core tracking context

Build System

  • Update Node.js and .NET versions in Dockerfile

Styling

  • Format

[0.1.2] - 2025-10-28

Bug Fixes

  • Replace UBadge with UButton for member count display

Code Refactoring

  • Standardize card header
  • Reorganize create group button and refresh button layout
  • Remove ‘Settle Up’ quick action from dashboard
  • Update revoke tokens functionality to include confirmation modal

Features

  • Generic modal
  • Implement password change functionality with validation and notification
  • Forgot password