Skip to content

Releases: tomy0000000/kayman

0.14.0

Choose a tag to compare

@tomy0000000 tomy0000000 released this 11 Jul 23:22
c1ae69e

🌟 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/entries endpoint 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: PaymentEntry is now EventEntry everywhere. The table, schemas, CRUD module, and router were all renamed, and event_entry.payment_id became event_id. Migrations 0036 and 0037 handle 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 EventEntry schemas 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 AccountSelect and 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

Choose a tag to compare

@tomy0000000 tomy0000000 released this 30 Jun 07:04
aa0ab91

🐞 Bug fixes

  • Backend: fix the account create API
  • Tooling: improve the preview:docker mise task

⚙️ Internal

  • Backend: improve error logging
  • Docs: revise CRUD rules

0.13.0

Choose a tag to compare

@tomy0000000 tomy0000000 released this 29 Jun 05:51
74e4ebc

🌟 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
  • Link transactions to events
    • LinkTransactionsTable and LinkedTransactionsField components
  • Event filtering on transactions
    • Filter by event in get_transactions and the transaction read API
  • 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 Payment model to Event (table, enum PaymentType -> EventType, SQL relationships, API endpoints and params)
  • Rename transaction payment_id to event_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:seed flow, db-dev task)
  • Rename TransactionStatusBadge component
  • 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

Choose a tag to compare

@tomy0000000 tomy0000000 released this 22 Jun 05:28
89096c1

🌟 Features

  • Transaction lifecycle
    • posted_at and reconciled_at timestamp fields
    • Derived transaction status field on API
    • Make payment_id and index optional on transactions
  • Create transaction API
  • Account balance and transactions
    • read_account_balance function
    • Read account transactions with running balances
    • Expanded read transactions API with more params
  • Mock data system
    • Init mock data scaffolding and db:seed task
    • Account, transaction, and category mock data fixtures
    • Dynamic mock data timestamps
  • 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.reconcile field (replaced by reconciled_at)
  • Remove transaction timezone field
  • Account timezone is 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_at default, 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-commit autoupdate
  • Refine frontend task scripts

0.11.0

Choose a tag to compare

@tomy0000000 tomy0000000 released this 10 Jun 08:08
cb1c39f

🌟 Features

  • Frontend rewrite to React + Vite + TypeScript (#166)
    • AuthProvider framework 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 timezone field
    • Serve frontend from backend (single deployment image)
    • Dynamic auth clients
    • Apply customized openapi.json on server
    • Add robots.txt
  • Migrate Python tooling from Poetry to uv
  • Backup and restore script

🧨 Breaking Changes

  • Drop payment service providers, remove PSP foreign key
  • Rename transaction timestamp to created_at

🪜 Other Notable Changes

  • Reorganize repo into backend/ and frontend/ subdirectories
  • Replace legacy backend startup handler with lifespan
  • Move openapi-ts to 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 Ruff to 0.14, mypy to 1.17, ipython to 9.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 mise config
  • Routine pre-commit autoupdates and dependabot bumps

0.10.0

Choose a tag to compare

@tomy0000000 tomy0000000 released this 05 Jun 05:38
089315c

🌟 Features

  • Payment entry
    • Add index for sorting
    • Add currency, which means one payment can have entries with different currencies
  • Payment
    • 🧨 Remove total
  • Transaction
    • Add index for sorting
    • 🧨 timezone and psp_reconcile are now non-nullable

⚙️ Internal

  • Bump uvicorn to 0.34
  • Bump httpcore to 1.0.9
  • Bump python-multipart to 0.0.20
  • Bump cryptography to 45.0.2

0.9.0

Choose a tag to compare

@tomy0000000 tomy0000000 released this 18 May 09:21
2391255

🧨 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
  • Move Transaction schema to a dedicated source file
  • Separate factories into individual files
  • Alembic formatter has changed from Black to Ruff
  • Transaction table now has a single column primary key

0.8.2

Choose a tag to compare

@tomy0000000 tomy0000000 released this 23 Feb 23:18
0dc1d93

🌟 Features

  • Allow all origins in CORS by default

⚙️ Internal

  • Setup Mypy
  • Rebuild GitHub Actions pipelines
  • Create OpenAPI schema conversion script

0.8.1

Choose a tag to compare

@tomy0000000 tomy0000000 released this 24 Jan 10:14
e369951

🧨 Breaking Changes

  • Docker compose config is updated
  • .env is 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

Choose a tag to compare

@tomy0000000 tomy0000000 released this 22 Jan 16:28
7cd943b

🌟 Features

  • Read payments now support filter on payment date and category
  • Read transactions API

🧨 Breaking Changes

  • All API paths (except tw-invoice) are now plural
    • accountaccounts
    • currencycurrencies
    • categorycategories
    • paymentpayments
    • psppsps

🪜 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