Highlights
- Cost basis preservation on security transfers — Internal transfers between accounts now carry over tax
lots, preserving your original cost basis instead of resetting it. - Stale snapshot cleanup — Deleting the last activity for an account now correctly removes orphaned
snapshots. - Improved mobile experience — Numerous UI refinements across sheets, search inputs, ticker selection,
quote history, and asset lots for a more polished mobile app.
Changelog
Bug Fixes
- Cost basis / transfers: Preserve cost basis on internal securities transfers via lot-level carry-over
(holdings_calculator, positions_model, snapshot_service) - Snapshots: Clean up stale snapshots when the last activity in an account is deleted
- Activity form: Fix error handling in form submission and correct asset ID logic
- Custom asset dialog: Fix manual asset creation from the activity data grid
- Alternative assets: Include name and notes in alternative asset metadata update (fixes #675)
- Wealthfolio Connect: Disable auto-refresh token and streamline session restoration logic from the
backend - Wealthfolio Connect: Add default environment variables for Connect provider
Features
- Interest activities: Allow optional symbol on interest activities (e.g., for tracking interest on
specific securities)
Mobile / UI
- Ticker search: Redesign selected state and make activity sheet full-width
- Search input: Unify search input style across holdings and securities pages
- Sheet component: Improve safe area handling, padding, and close button positioning
- Quote history: Enhanced mobile layout with pagination and inline editing
- Asset lots: Add mobile-responsive card layout for lots list
Internal
- Added extensive tests for lot-level transfer carry-over (holdings calculator, snapshot service, e2e)