Releases: tomy0000000/kayman
Releases · tomy0000000/kayman
Release list
0.14.0
🌟 Features
- Frontend: transactions can now be edited. The transaction FAB doubles as an edit form, with a negative-amount toggle on create.
- Frontend: new events table, with a badge showing each event's type.
- Frontend: when creating an event, you can now link existing transactions to it.
- Backend: new batch
POST /events/entriesendpoint for creating multiple event entries at once. - Backend: transaction update API, which recomputes account balances as amounts change.
- Backend: read transactions now accepts transaction id filters and returns results ordered by id.
🧨 Breaking Changes
- Backend:
PaymentEntryis nowEventEntryeverywhere. The table, schemas, CRUD module, and router were all renamed, andevent_entry.payment_idbecameevent_id. Migrations0036and0037handle the rename. - Backend: the deprecated legacy event create endpoint is gone. Use the current event and event-entry endpoints instead.
🪜 Other Notable Changes
- Backend: currency internals modernized, and
EventEntryschemas moved into their own module. - Frontend: components no longer run their own queries or mutations. Data fetching lives in routes and is passed down as props, so
AccountSelectand the transaction FAB are now pure presentational components. - Frontend: shared utilities and timezone constants pulled out into
lib/. - Docs: new rules covering timestamps/timezones and the backend dev process.
🐞 Bug fixes
- Backend: transaction update no longer tries to write the id it was given.
- Backend: fix the mock data test.
⚙️ Internal
- Backend: broader test coverage for account, transaction, and event-entry CRUD.
- Backend: expanded mock data, including event entries.
- CI: pre-commit autoupdate.
0.13.1
🐞 Bug fixes
- Backend: fix the account create API
- Tooling: improve the
preview:dockermise task
⚙️ Internal
- Backend: improve error logging
- Docs: revise CRUD rules
0.13.0
🌟 Features
- Event creation
- New create event API, expanded to support
create_events(batch) - Create event FAB with keyboard shortcut and form
- Colorized event-type tabs, account select, and import item UI
- New create event API, expanded to support
- Link transactions to events
LinkTransactionsTableandLinkedTransactionsFieldcomponents
- Event filtering on transactions
- Filter by event in
get_transactionsand the transaction read API
- Filter by event in
- Statement
- Statement SQL model and schema
- Frontend
- Create account FAB
- Better timezone combobox
- New UI primitives: dialog, empty, checkbox, kbd, combobox, item, tabs
🧨 Breaking Changes
- Rename
Paymentmodel toEvent(table, enumPaymentType->EventType, SQL relationships, API endpoints and params) - Rename transaction
payment_idtoevent_id - Old create event API marked as deprecated
🪜 Other Notable Changes
- Reindex Alembic migration scripts with sequence numbers, add auto-index migration script
- Revise mise db tasks (rename
db:seedflow,db-devtask) - Rename
TransactionStatusBadgecomponent - Event mock data fixtures
- Docs: additional CRUD and frontend API rules, AI notes cleanup,
@-only import rule
🐞 Bug fixes
- Backend: OAuth token URL, mandated
__tablename__, minor fixes - Frontend: lint and rename fixes
⚙️ Internal
- Bump backend deps:
fastapi@0.138.0,alembic@1.18.4,sqlmodel@0.0.38,loguru@0.7.3,tzdata@2026.2,python-jose@3.5.0,python-multipart@0.0.32 - Bump frontend toolchain:
node@26,pnpm@11.8.0,shadcn@4.11.0
0.12.0
🌟 Features
- Transaction lifecycle
posted_atandreconciled_attimestamp fields- Derived transaction
statusfield on API - Make
payment_idandindexoptional on transactions
- Create transaction API
- Account balance and transactions
read_account_balancefunction- Read account transactions with running balances
- Expanded read transactions API with more params
- Mock data system
- Init mock data scaffolding and
db:seedtask - Account, transaction, and category mock data fixtures
- Dynamic mock data timestamps
- Init mock data scaffolding and
- Backend logging setup
- Frontend
- Account list page
- Account transaction page wired to the API
- Create transaction FAB
- Transaction badge component
- Expanded date range picker
- Auto logout
🧨 Breaking Changes
- Remove
transaction.reconcilefield (replaced byreconciled_at) - Remove transaction
timezonefield - Account
timezoneis now non-nullable
🪜 Other Notable Changes
- Reorganize frontend routes (
_authenticated-> nested_auth) - Date range picker state lifted to props
- Drop
__tablename__declarations across backend models - DB setup task auto-upgrades schema
- Docs: README,
AGENTS.md, CRUD rules, nesting rules, additional agent rules - New release skill for cutting future releases
🐞 Bug fixes
- Backend: transaction default id,
created_atdefault, transaction types - Backend: mock data resyncs id sequence on seed
- Backend: lint and test fixes
- Frontend: lint and type errors
⚙️ Internal
- Bump GitHub Actions:
checkout@7,pnpm/action-setup@6,docker/metadata-action@6,download-artifact@8,upload-artifact@7 - Routine
pre-commitautoupdate - Refine frontend task scripts
0.11.0
🌟 Features
- Frontend rewrite to React + Vite + TypeScript (#166)
AuthProviderframework with login and logout- Account page with resizable panel and transactions
- Category page (nested category support)
- Setting page
- Calendar app showing payments
- Load accounts and categories from backend via React Query
- Production-mode TanStack Query devtools
- Iconify icons, shadcn/ui components, Primer tree component
- Backend
- Account
timezonefield - Serve frontend from backend (single deployment image)
- Dynamic auth clients
- Apply customized
openapi.jsonon server - Add
robots.txt
- Account
- Migrate Python tooling from Poetry to
uv - Backup and restore script
🧨 Breaking Changes
- Drop payment service providers, remove PSP foreign key
- Rename transaction
timestamptocreated_at
🪜 Other Notable Changes
- Reorganize repo into
backend/andfrontend/subdirectories - Replace legacy backend startup handler with
lifespan - Move
openapi-tsto a dedicated config - Onboard backend and frontend tasks with
mise(replacing VSCode tasks and Docker compose) - New frontend Docker image, backend Dockerfile reorganized
- Update READMEs
- Bump Postgres to v17
🐞 Bug fixes
- Backend CORS middleware
- Lock backend at Python 3.12
- Nested categories not queried
- DB URL issue in backend
- Frontend and backend Dockerfile fixes
- OpenAPI spec script
⚙️ Internal
- New Docker CI, frontend CI, and Dockerfile lint script
- Bump
Ruffto0.14,mypyto1.17,ipythonto9.4 - Bump GitHub Actions:
checkout@5,setup-node@6,setup-python@6,setup-uv@7,download-artifact@6,upload-artifact@5,codeql-action@4,dockerhub-description@5,codecov-action@v7 - Switch Volta config to
miseconfig - Routine
pre-commitautoupdates and dependabot bumps
0.10.0
🌟 Features
- Payment entry
- Add
indexfor sorting - Add
currency, which means one payment can have entries with different currencies
- Add
- Payment
- 🧨 Remove
total
- 🧨 Remove
- Transaction
- Add
indexfor sorting - 🧨
timezoneandpsp_reconcileare now non-nullable
- Add
⚙️ Internal
- Bump
uvicornto0.34 - Bump
httpcoreto1.0.9 - Bump
python-multipartto0.0.20 - Bump
cryptographyto45.0.2
0.9.0
🧨 Breaking Changes
- Most of the table schemas have been refined in this version
- The create payment API has been overhauled. Check the latest examples
🪜 Other Notable Changes
- Reimplement the create payment API
⚙️ Internal
- Improve dev setup with better logging
- Refactor SQLModel for the latest conventions
- Bump dependencies
- Factory Boy to
3.3.3 - Python Jose to
3.4.0
- Factory Boy to
- Move
Transactionschema to a dedicated source file - Separate factories into individual files
- Alembic formatter has changed from Black to Ruff
Transactiontable now has a single column primary key
0.8.2
🌟 Features
- Allow all origins in CORS by default
⚙️ Internal
- Setup Mypy
- Rebuild GitHub Actions pipelines
- Create OpenAPI schema conversion script
0.8.1
🧨 Breaking Changes
- Docker compose config is updated
.envis updated
🐞 Bug fixes
- Fix static config that forbids application from deploy
⚙️ Internal
- Update pre-commit config
- Update Dependabot config
- Bump a few GitHub Actions
- Bump Mypy 1.14.1
- Change code formatter from Black + isort to Ruff
- Update docker configs
0.8.0
🌟 Features
- Read payments now support filter on payment date and category
- Read transactions API
🧨 Breaking Changes
- All API paths (except
tw-invoice) are now pluralaccount→accountscurrency→currenciescategory→categoriespayment→paymentspsp→psps
🪜 Other Notable Changes
- Minor changes to Docker compose config and Dockerfile
⚙️ Internal
- Bump dependencies
- Python: 3.12
- FastAPI: 0.115
- Pydantic: 2.0
- SQLAlchemy: 2.0.37
- SQLModel: 0.0.22
- Few pre-commit hooks
- Initialize test framework with Pytest + Factory Boy