Releases: mike840609/assets_tracker
Releases · mike840609/assets_tracker
Release list
Assets Tracker 1.2.0
Assets Tracker 1.2.0
Try the app without an account, plus a sturdier cron and price pipeline.
Added
- Public demo: the login page now offers a one-click demo that needs no account. It creates an isolated workspace with sample data that expires after 24 hours, with a banner showing the remaining time and controls to reset the data or leave at any point.
Improved
- The nightly cron and price refresh now scale with the number of users: users are paged through under a snapshot budget, snapshot inputs are bulk-loaded, price reads are scoped to accounts instead of scanning the whole cache, and Yahoo/CoinGecko requests are chunked so one bad batch can't fan out.
Fixed
- Identity is no longer derived from request headers, so a crafted request can't act as another user.
- Analysis ranges are computed in your own timezone rather than UTC, liabilities move cash flow in the right direction, the first day of a recurring rule starts from the correct baseline, expired options are swept on a business day, and holdings are valued in the currency their quote was cached in.
- Data you move in and out keeps its shape: mixed-currency history normalizes without losing precision, imports preserve each snapshot's breakdown currencies, backup export and import round-trip, and editing a recurring rule can no longer race its own materialization.
- Failures now surface instead of passing silently: snapshots are taken from a fresh net-worth read rather than a stale cached one, and partially failed snapshot runs and total price-refresh failures are both reported.
Self-hosting
This is the first release whose container images carry version tags. The publish workflow only matched v* tags while every release here is tagged bare (1.1.0), so earlier tags never triggered it and the registry only ever received latest and sha. 1.2.0 and 1.2 are now published alongside latest.
ghcr.io/mike840609/assets_tracker:1.2.0
ghcr.io/mike840609/assets_tracker-migrate:1.2.0
Validation
- 750 unit tests across 84 files
- Type check, lint, Playwright smoke suite, PostgreSQL integration tests
Full Changelog: 1.1.0...1.2.0
Assets Tracker 1.1.0
Assets Tracker 1.1.0
A financial calendar, linked history charts, and leaner self-host images.
Added
- Calendar: a new page for earnings, economic releases, dividends, filings, and reminders, with a month grid and a day agenda. It has its own desktop tab and lives in the mobile Plan hub, and entries are included in backup export and restore.
- Activity heatmap and net-worth trend are now linked on both History and the Dashboard: hovering or selecting a day in the heatmap marks that same day on the trend chart.
Improved
- Self-hosting: container images are slimmer and hardened, built natively per architecture, and published to GitHub Container Registry.
- Clearer disclosures for figures that can't be recomputed: unresolved exchange rates now raise an app-wide banner, history rows converted from another base currency are labeled, and backdated transactions state that they don't rewrite past snapshots.
Fixed
- The dashboard net-worth trend chart now matches the History tab, unrealized gain is computed only over holdings with a cost basis, and cost basis values its market leg in the price-cache currency like net worth does.
- Recurring rules now materialize due occurrences when created or edited and roll over on the Taiwan business day, editing a start date re-anchors the schedule without replaying history, renaming a holding fetches a price for the new symbol, and imported symbols get their prices warmed right away.
Validation
- 421 unit tests
- Production build
Full Changelog: 1.0.1...1.1.0
Assets Tracker 1.0.1
Assets Tracker 1.0.1
Security and correctness hardening for the first public release.
Fixed
- Self-hosted production no longer enables preview credentials by default; Vercel production remains Google-only.
- Remediated high-severity runtime dependency findings.
- Account currency is immutable after creation.
- Recurring investments persist execution price and safely reject currency mismatches.
- Daily refresh includes watch-only stocks.
- Recurring forms use local dates.
- History heatmaps treat flat and baseline days neutrally.
- Pull-to-refresh remains active until navigation finishes.
Validation
- 287 unit tests
- Production build
- Fresh self-host Docker smoke test
- Local and deployed-preview Playwright smoke tests
- 0 high-severity production audit findings
Full Changelog: 1.0.0...1.0.1
0.9.0
What's Changed
- fix(mobile): consolidate Plan hub nav, fix analysis charts, sharpen labels by @mike840609 in #470
- UX polish: desktop layout, analysis clarity, quiet status bar (v0.8.1–0.8.3) by @mike840609 in #472
- Fix Google profile avatar loading in sidebar by @mike840609 in #475
- fix(settings): align section titles on desktop, unify field controls by @mike840609 in #477
- fix(mobile): light-mode gain/loss AA contrast (v0.8.5) by @mike840609 in #476
- fix(observability): Sentry first-party tunnel + PWA service worker fixes (v0.8.6) by @mike840609 in #479
- feat(price-cache): atomic refresh deduplication via refreshingAt claim by @mike840609 in #480
- feat(analysis): tidy mobile Analysis tab (v0.8.7) by @mike840609 in #482
- fix(accounts): return 404 (not 500) when deleting a missing account by @mike840609 in #485
- fix(price-cache): release claims for symbols missing from a partial fetch by @mike840609 in #483
- fix(ledger): guard cash-transaction DELETE with optimistic lock by @mike840609 in #484
- fix(stocks): map duplicate add (P2002) to 409 instead of 500 by @mike840609 in #488
- fix(fx): defer first-use exchange-rate warm with Next 16 after() by @mike840609 in #487
- fix(holdings): optimistic-lock guard on holding PATCH quantity write by @mike840609 in #486
- chore: add repomix-output.xml by @mike840609 in #491
- docs: sync README + CLAUDE with current codebase by @mike840609 in #492
- fix(cache): tag rate-dependent cached reads with exchange-rates by @mike840609 in #490
- [codex] remove repomix local artifacts by @mike840609 in #494
- [codex] validate imported locale by @mike840609 in #493
- fix(skeletons): align loading skeletons with final layouts by @mike840609 in #496
- perf(cache): move remaining hot-path reads behind "use cache" (v0.8.7) by @mike840609 in #497
- feat(analysis): clearer, leaner charts + cumulative growth (v0.9.0) by @mike840609 in #481
Full Changelog: 0.8.0...0.9.0
0.8.0
What's Changed
- [codex] Use exchange-rate composite key by @mike840609 in #464
- Codex/audit tooling cleanup by @mike840609 in #468
- [codex] Improve mobile heatmap snapshot details by @mike840609 in #467
- feat(mobile): improve mobile header UX and theme toggle by @mike840609 in #469
Full Changelog: 0.7.0...0.8.0
0.7.0: feat(docs): competitor-inspired feature backlog (NF22–NF32) (#457)
leverage ponytail to remove the redundant code
What's Changed
- feat: build Percento-like net worth tracker by @mike840609 in #1
- docs: initialize CLAUDE.md by @mike840609 in #2
- Feat: Percento-style Share-Based Investment Tracking by @mike840609 in #3
- Support 7-decimal crypto qty, fix crypto price fetching, and add edit holding UI by @mike840609 in #4
- allow-adding-item-multiple-time by @mike840609 in #5
- Allow users to modify and delete transaction history by @mike840609 in #6
- Fix: allow dev server network access by @mike840609 in #7
- Enhance UI and Fix Mobile Scroll by @mike840609 in #8
- Categorize accounts and show base currency totals by @mike840609 in #9
- Dashboard and Account UI Enhancements by @mike840609 in #10
- feat: Bank balance updates and 0-qty holdings filter by @mike840609 in #11
- Bank Balance Updates, Holdings Filter, and Metadata Fixes by @mike840609 in #12
- Dashboard Enhancements & Theme Toggle by @mike840609 in #13
- Automated Snapshots & Documentation Update by @mike840609 in #14
- Support mobile theme toggle and automated snapshots by @mike840609 in #15
- Dark mode refinement, performance, mobile nav auto-hide, and chart fixes by @mike840609 in #16
- feat: Google OAuth Integration by @mike840609 in #17
- Feat: Google Auth Integration and Prisma 7 Deployment by @mike840609 in #18
- Fix: Handle Orphaned JWT Sessions Gracefully by @mike840609 in #19
- feat: performance enhancements and SSL security fix by @mike840609 in #20
- feat: install and configure @vercel/speed-insights by @mike840609 in #21
- perf: optimize dashboard loading for better FCP/LCP by @mike840609 in #22
- Performance Optimizations: Tab Switching & Exchange Rates by @mike840609 in #23
- Performance: Account Detail Optimizations by @mike840609 in #24
- Revert "Performance: Account Detail Optimizations" by @mike840609 in #25
- perf: optimize API response times and page render speed by @mike840609 in #26
- feat: i18n support for zh-TW and en-US by @mike840609 in #28
- Login i18n & Region-based Defaults by @mike840609 in #29
- Implement Inline Account Name Editing by @mike840609 in #30
- feat: redesign favicon and login page icon with emerald gradient coin by @mike840609 in #31
- UI: Rounded Square Icons and Hover Animations by @mike840609 in #32
- perf: split i18n messages per route to reduce HTML payload by @mike840609 in #33
- feat: split All Accounts into separate Assets and Liabilities tables by @mike840609 in #34
- fix: improve mobile layout of accounts summary table by @mike840609 in #35
- feat: add Net Worth History page by @mike840609 in #36
- feat: lossless net worth history normalization by @mike840609 in #37
- Fix: Cron Trigger Schedule and Middleware Bypass by @mike840609 in #38
- perf: optimize dashboard loading and API refreshes by @mike840609 in #39
- feat: robust data import/export with validation by @mike840609 in #40
- feat: implement currency exposure chart by @mike840609 in #41
- feat: implement transaction pagination and infinite scroll by @mike840609 in #42
- Optimize Snapshot Cronjob by @mike840609 in #43
- Revert "Optimize Snapshot Cronjob" by @mike840609 in #44
- Add 17 new tasks to SUGGESTIONS.md with detailed implementation guidance by @mike840609 in #45
- feat: fix transaction pagination and add i18n to transaction history by @mike840609 in #46
- feat: add column-based sorting to holdings table by @mike840609 in #47
- Fix O(n²) symbol lookup and reduce client bundle size by @mike840609 in #48
- Update cron schedule to trigger at 05:30 Taiwan time (21:30 UTC) by @mike840609 in #49
- Update SUGGESTIONS.md with 2026-04-10 targeted items (security, reliability, testing) by @mike840609 in #51
- Enable trustHost in NextAuth configuration by @mike840609 in #55
- Update auth.config.ts by @mike840609 in #57
- docs: add composite index performance recommendation by @mike840609 in #56
- feat: add preview-only credentials login for Vercel preview deployments by @mike840609 in #59
- feat: add performance & UX audit findings (items 59–70) by @mike840609 in #60
- Simplify history normalization and fix account list collapse animation by @mike840609 in #61
- docs: mark #61/#62 done and add loading-speed suggestions #71-75 by @mike840609 in #62
- feat: eliminate Phase 1→2 waterfall in DashboardContent (#72) by @mike840609 in #63
- Add caching layer and optimize exchange rate resolution by @mike840609 in #64
- docs: add code-quality refactor suggestions #76-87 by @mike840609 in #65
- fix: extract calculateBalanceDelta() for cash-tx create/edit/delete (#86) by @mike840609 in #66
- refactor: code quality improvements #78, #81, #83, #84, #85, #87 by @mike840609 in #67
- refactor: code quality improvements #76, #79, #80 by @mike840609 in #68
- Add formatQuantity() helper and centralize quantity formatting by @mike840609 in #69
- Reorganize SUGGESTIONS.md and add performance deep-dive items by @mike840609 in #70
- Optimize price cache updates with batched transactions by @mike840609 in #71
- feat: add Safari Add to Home Screen tutorial and apple touch icon by @mike840609 in #72
- perf: fix caching bugs and parallelise history page fetch by @mike840609 in #73
- feat: add Analysis tab with monthly net-worth breakdown by @mike840609 in #74
- Fill gaps in monthly analysis charts with synthesized data by @mike840609 in #75
- Improve chart responsiveness and spacing on mobile devices by @mike840609 in #77
- Add privacy mode and privacy policy page by @mike840609 in #78
- Add performance suggestions #93-#99 by @mike840609 in #79
- Settings Page Redesign & UX Improvements by @mike840609 in #80
- perf: deduplicate recentSnapshots query via React cache() (#93) by @mike840609 in #81
- perf: lazy-load AccountForm and QuickAddHolding in AccountsList by @mike840609 in #83
- docs: update SUGGESTIONS.md with items #100–108 (multi-tenant, cron, pagination, caching, perf) by @mike840609 in #84
- Optimize dashboard charts with useMemo to prevent unnecessary recalculations by @mike840609 in #82
- docs: Add 27 new suggestions (security, a11y, perf, DX) by @mike840609 in #85
- docs: add Vercel deploy analysis with V1-V15 enhancement suggestions by @mike840609 in https://git...