What's Changed
📦 Other Changes
- feat: add accounts, groups sync, ledger, and auth infrastructure by @antonio-ivanovski in #5
- Fix email password signin by @antonio-ivanovski in #6
- fix: google social signin, signin on landing page, forgot password by @antonio-ivanovski in #7
- Import Spliit groups by @antonio-ivanovski in #8
- comprehensive web app RTL test coverage + missing API integration tests by @antonio-ivanovski in #9
- feat: multi-payer expenses — full-stack implementation with expense-form refactor by @antonio-ivanovski in #10
- feat: expense items by @antonio-ivanovski in #11
- Splitwise import by @antonio-ivanovski in #13
- chore: update deps and improve linting by @antonio-ivanovski in #14
- chore: improve dx, proper S3 and SMTP services by @antonio-ivanovski in #16
- feat: acitivities and notifications by @antonio-ivanovski in #15
- feat: Implement friend-ledger features and enhance UI components by @antonio-ivanovski in #17
- Refactor navigation to use TanStack Router hooks directly by @antonio-ivanovski in #18
- Add react-email support and implement styled transactional templates by @antonio-ivanovski in #19
- Unified share calculation and global balance accumulation by @antonio-ivanovski in #20
- refactor: implement native BigInt rational arithmetic and remove decimal.js by @antonio-ivanovski in #21
- feat: server authoritative currency conversion by @antonio-ivanovski in #22
- feat: change AI library for broader support + bulk expense categorize spike by @antonio-ivanovski in #24
- Fix web image build: install workspace deps in builder stage by @rsivic in #28
- feat: push notifications + user preferences by @antonio-ivanovski in #32
- feat: durable recurring expense by @antonio-ivanovski in #36
- Improve i18n CLI helper and skill and add Swedish support by @antonio-ivanovski in #38
- Bug#62 Fix datepicker and typing capabilities on expense-form by @hugoprudente in #63
- feat: add idempotent creates and expense concurrency by @antonio-ivanovski in #68
- feat: Bill the mascot by @antonio-ivanovski in #73
- feat: invite only instance by @antonio-ivanovski in #75
- feat: count negative expenses in stats and budgets by @antonio-ivanovski in #77
- feat: add X (Twitter) as an optional OAuth sign-in method by @antonio-ivanovski in #79
- feat: generic OIDC sign-in by @antonio-ivanovski in #78
- docs: add referenced Cursor Cloud agent instructions by @antonio-ivanovski in #80
- feat: introduce local-first category suggestion and quick server search short circuit instead of slow LLM by @antonio-ivanovski in #81
- chore: cleanup categories, consolidate icons, have "settlement" as category instead of checkbox, by @antonio-ivanovski in #82
- chore: simple Abuse and Overload Protection by @antonio-ivanovski in #83
- feat: anonymous user by @antonio-ivanovski in #84
- feat: public view only group link by @antonio-ivanovski in #85
- Fix PDF report generation in self-hosted setup. by @firetech in #94
- chore(security): run MCP container as non-root by @kdelalic in #92
- fix(ai): use structured outputs for bulk categorization by @kdelalic in #90
- fix: make .env.example boot from a clean clone by @dorian-pltr in #100
New Contributors
- @rsivic made their first contribution in #28
- @hugoprudente made their first contribution in #63
- @firetech made their first contribution in #94
- @kdelalic made their first contribution in #92
- @dorian-pltr made their first contribution in #100
Full Changelog: https://github.com/antonio-ivanovski/spliit-cloud/commits/sha-f44ef125606f76b6f7217ca696281147a6668875
🐳 Docker images for this commit
ghcr.io/antonio-ivanovski/spliit-cloud-api:f44ef125606f76b6f7217ca696281147a6668875(f44ef12)ghcr.io/antonio-ivanovski/spliit-cloud-migrate:f44ef125606f76b6f7217ca696281147a6668875(f44ef12)ghcr.io/antonio-ivanovski/spliit-cloud-worker:f44ef125606f76b6f7217ca696281147a6668875(f44ef12)ghcr.io/antonio-ivanovski/spliit-cloud-mcp:f44ef125606f76b6f7217ca696281147a6668875(f44ef12)ghcr.io/antonio-ivanovski/spliit-cloud-web:f44ef125606f76b6f7217ca696281147a6668875(f44ef12)- also available as
:latest(rolling)
Pin with
SPLIIT_TAG=f44ef125606f76b6f7217ca696281147a6668875or follow rolling withSPLIIT_TAG=latest— seecompose.yaml