Release Notes
Codename: Ailanthus, second beta.
Added
- Transactions and period statements download as CSV, XLSX or PDF; a transaction
download carries the same filters as the listing, and a statement carries the
same figures as the analytics screen - The assistant reaches budgets, refunds, reminders, groups and transfers: it can
say how a budget is doing and record money coming back as a refund rather than
fresh income - The assistant proposes a change across many transactions at once, confirmed as
one sweep instead of a card per row - Reminder columns that existed only in the conformance spec now have a migration
behind them
Changed
- The assistant answers in the user's own currency, converting at the same rates
the rest of the app uses, and asks when the currency cannot be known - Confirmation cards name the record being changed rather than its internal id
- A transaction takes a single category; one saved earlier keeps its first
category and drops the rest when saved again - Feature gating moved to the shared entitlements package; behaviour is unchanged,
with every feature allowed and nothing metered - An export larger than a format can render is refused up front, naming the limit
that applied and what the other formats allow
Fixed
- A database that falls behind its migrations answers with a clear error naming
what is missing, instead of accepting writes it cannot complete - Every table the assistant can read is scoped to the person asking, and transfer
rows no longer inflate the income and spending it reports - Boolean flags sent as text by form and multipart requests are accepted, so
recurring transactions can be created from the mobile app - Transfers keep their decimal precision, so cents no longer vanish and small
conversion rates no longer produce zero amounts - A second device can no longer overwrite the client id created by the first
- Imported rows without a usable amount fail with a reason instead of importing as
zero, and transfer rows import as transfers again - Deleted records report as changed, so clients apply the deletion
- A holding created with automatic pricing is priced at creation instead of
reporting zero until the next repricing run
Deployment
Download the attached archive and extract to your web server:
# Extract archive
unzip trakli-webservice-v2.0.0-beta.2.zip -d /var/www/your-app
cd /var/www/your-app
# Configure environment
cp .env.example .env
# Edit .env with your database credentials, app key, etc.
# Generate application key
php artisan key:generate
# Set permissions
chown -R www-data:www-data storage bootstrap/cache
chmod -R 775 storage bootstrap/cache
# Run database migrations
php artisan migrate --force
# Clear and cache config/routes (optional, for production)
php artisan config:cache
php artisan route:cache
php artisan view:cacheDocumentation
See the README for usage instructions.
Full Changelog
View the complete version history in CHANGELOG.md.