# Release Notes

# Release Notes

> **Project:** Bilko
> **Version:** 0.1
> **Date:** 2026-02-23
> **Author:** Ops Architect
> **Status:** Draft (Template — fill in per release)
> **Reviewers:** Tech Lead, Alem Bašić

## Document History
| Version | Date | Author | Changes |
|---------|------|--------|---------|
| 0.1     | 2026-02-23 | Ops Architect | Initial draft |

---

## INSTRUCTIONS

Create release notes for every production deploy. Audience: internal team and, for major releases, Bilko users.

File: `RELEASE-NOTES-vX.X.X.md` in `docs/releases/`
Versioning: Semantic versioning — `MAJOR.MINOR.PATCH`
- MAJOR: breaking API changes or database schema changes requiring migration downtime
- MINOR: new features, non-breaking
- PATCH: bug fixes, performance improvements, security patches

---

# Release Notes — Bilko v1.0.0 (MVP Launch)

**Release Date:** TBD (backend MVP complete)
**Environment:** Production
**Deploy window:** TBD

---

## Summary

This is the first production release of Bilko — cloud accounting for Balkan SMBs. It includes the core accounting engine (invoicing, expenses, VAT reporting) with multi-country support for Serbia, Bosnia & Herzegovina, and Croatia.

---

## New Features

### Core Accounting Engine

**Invoice Management**
- Create invoices via 6-step wizard
- Support for RSD, EUR, BAM currencies
- Multi-country VAT: Serbia (20%), BiH (17%), Croatia (25%), zero-rate exports
- NUMERIC(19,4) precision throughout — no float arithmetic
- Invoice statuses: Draft → Sent → Paid → Void
- Auto-generated invoice numbers (INV-XXXX format)
- PDF generation and download
- Email invoice to customer via SendGrid

**Expense Tracking**
- Create expenses with receipt photo upload (JPG/PNG → Cloudflare R2)
- Expense statuses: Pending → Approved → Paid / Rejected
- RBAC: Admin/Owner approval required for expenses
- Vendor management (contact book)

**Financial Reports**
- VAT Report (RS/BA/HR compliant) — monthly export
- Profit & Loss statement (by date range)
- Revenue and expense summaries

**Chart of Accounts**
- Standard Balkan chart of accounts pre-loaded
- Double-entry bookkeeping enforced (debit = credit, always)
- Exchange rate locking at transaction date

### Authentication & Multi-Tenancy

- Organization-scoped data (strict multi-tenancy)
- RBAC: owner, admin, accountant, viewer roles
- JWT access tokens (15 min expiry) + refresh tokens (7 days)
- bcrypt password hashing (12 rounds)
- Audit trail: LoggedAction table (append-only, GDPR compliant)

### Infrastructure

- Frontend: Next.js 15 on Vercel (bilko.io)
- Backend: Express API on Railway EU West (api.bilko.io, GDPR EU data residency)
- Database: PostgreSQL 15 on Railway (15 models, Prisma ORM)
- Storage: Cloudflare R2 (zero egress fees, GDPR compliant)
- Email: SendGrid (`noreply@bilko.io`)

---

## Bug Fixes

N/A — initial release

---

## Security Updates

N/A — initial release

---

## Breaking Changes

N/A — initial release

---

## Database Migrations

| Migration | Description |
|-----------|-------------|
| `0001_initial_schema` | Create all 15 models: Organization, User, Account, Invoice, Expense, Contact, Transaction, etc. |
| `0002_indexes` | Performance indexes on organizationId foreign keys |

**Migration time:** < 10 seconds on empty database

---

## Known Issues

| Issue | Severity | Workaround | Fix in |
|-------|----------|-----------|--------|
| Bank import not yet available | Medium | Manual transaction entry | v1.1.0 |
| 2FA not yet implemented | Medium | Strong password required | v1.1.0 |
| PDF export not yet available | Low | Print from browser | v1.1.0 |

---

## Configuration Changes

No new environment variables for existing deployments. For new deployments, see `docs/templates/INFRASTRUCTURE/environment-configuration.md`.

---

## Rollback Instructions

See [rollback-plan.md](./rollback-plan.md) — initial release, no previous version to roll back to.

---

## Dependencies Updated

| Package | From | To | Breaking |
|---------|------|-----|---------|
| Next.js | — | 15.0.0 | N/A |
| React | — | 19.0.0 | N/A |
| Prisma | — | Latest | N/A |
| Vitest | — | Latest | N/A |
| Playwright | — | Latest | N/A |

---

---

# Release Notes Template — v[MAJOR.MINOR.PATCH]

**Release Date:** YYYY-MM-DD
**Environment:** Production

## Summary

[2-3 sentences: what this release contains, why it matters]

## New Features

### [Feature Area]

- **[Feature name]:** [Description. How it helps Bilko users.]

## Bug Fixes

| # | Description | Severity | Reported by |
|---|-------------|----------|------------|
| [GitHub #XXX] | [Bug description — user-facing language] | P0/P1/P2 | [User/Internal] |

## Security Updates

| CVE / Issue | Severity | Component | Description |
|------------|---------|-----------|-------------|
| [CVE-XXXX-XXXX] | Critical / High / Medium | [Component] | [Description] |

## Breaking Changes

| Change | Migration Required | How to Migrate |
|--------|-------------------|----------------|
| [Breaking change description] | Yes / No | [Migration steps] |

## Database Migrations

| Migration file | Description | Time (staging) |
|---------------|-------------|----------------|
| `XXXXXXXX_name` | [What it does] | X seconds |

## Configuration Changes

| Variable | Change | Required | Notes |
|----------|--------|----------|-------|
| `NEW_ENV_VAR` | Added | Yes | [Description] |
| `OLD_ENV_VAR` | Removed | N/A | Replaced by NEW_ENV_VAR |

## Rollback Instructions

[Specific rollback steps for this release, if different from standard procedure]

---

## Approval
| Role | Name | Date | Signature |
|------|------|------|-----------|
| Author | | | |
| Reviewer | Alem Bašić | | |