Skip to content

0.7.0: feat(docs): competitor-inspired feature backlog (NF22–NF32) (#457)

Choose a tag to compare

@mike840609 mike840609 released this 19 Jun 14:47
448be33

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 #86
  • perf: implement Vercel performance suggestions V2, V4, V5, V6 by @mike840609 in #87
  • docs: mark V8 blocked — edge runtime incompatible with Cache Components by @mike840609 in #88
  • docs: add V16–V26 performance enhancement roadmap (2026-04-18) by @mike840609 in #89
  • style(dark-mode): switch palette to Midnight Teal by @mike840609 in #90
  • fix(dashboard): reserve chart card height to eliminate CLS (V23) by @mike840609 in #91
  • perf: implement V25 (INP) and V26 (TTFB) from Vercel analysis by @mike840609 in #92
  • Migrate service-layer reads to Next.js 16 "use cache" directive by @mike840609 in #93
  • Implement V30 + V31: startTransition for mutators and avatar image optimization by @mike840609 in #94
  • fix(dashboard): serialize accounts before "use cache" boundary to fix Decimal error by @mike840609 in #95
  • feat: trim Speed Insights telemetry (V32) by @mike840609 in #96
  • Revert "feat: trim Speed Insights telemetry (V32)" by @mike840609 in #97
  • Revert "Revert "feat: trim Speed Insights telemetry (V32)"" by @mike840609 in #98
  • fix(dashboard): revert chart card height changes from c8d7a76 by @mike840609 in #99
  • feat: improve chart tooltip readability in dark mode by @mike840609 in #100
  • feat: add @next/bundle-analyzer and documentation by @mike840609 in #102
  • Enhance chart UI in privacy/hide mode by @mike840609 in #104
  • Lazy-load dashboard pie charts (B2) — dynamic import AllocationChart & CurrencyExposureChart by @mike840609 in #106
  • Add consolidated docs: Asset Tracker review suggestions backlog by @mike840609 in #107
  • Disable chart interactions while privacy (hide) mode is enabled by @mike840609 in #108
  • Add server-only guards and Neon WebSocket server setup to keep server libs out of client bundles by @mike840609 in #105
  • perf(accounts): lazy-load holding dialogs (–17% /accounts/[id] chunk) by @mike840609 in #110
  • Revert "perf(accounts): lazy-load holding dialogs (–17% /accounts/[id] chunk)" by @mike840609 in #111
  • Revert "Add server-only guards and Neon WebSocket server setup to keep server libs out of client bundles" by @mike840609 in #112
  • Revert "Lazy-load dashboard pie charts (B2) — dynamic import AllocationChart & CurrencyExposureChart" by @mike840609 in #113
  • fix(charts): disable Recharts animations on mobile for instant interactivity by @mike840609 in #115
  • Revalidate Next cache tags after account/holding mutations and secure holdings endpoints by @mike840609 in #116
  • docs: Add rendering strategy analysis (SSG → PPR → ISR) by @mike840609 in #117
  • Remove "max" revalidation option from all revalidateTag calls by @mike840609 in #118
  • Mark login and privacy pages as static with force-static by @mike840609 in #119
  • Implement PR4 ISR caching recommendations (I1, I2, I3, I5) by @mike840609 in #120
  • Implement RP5: add 15-minute revalidate backstop for (main) PPR routes and update docs by @mike840609 in #121
  • Implement PR3: PPR verification (P1) + /accounts cached helpers (P2) by @mike840609 in #122
  • enable bar chart animation by @mike840609 in #123
  • Add Phase 2 analysis charts: cash flow, categories, and top movers by @mike840609 in #76
  • Fix: Align analysis chart layouts and Y-axis widths by @mike840609 in #124
  • UI: Make dashboard info more compact on mobile screens by @mike840609 in #125
  • Add validated runtime env module and replace direct env assertions by @mike840609 in #126
  • Redesign Dashboard Pie Charts by @mike840609 in #132
  • Set dark default theme and fix Settings language selector by @mike840609 in #133
  • Revert "Set dark default theme and fix Settings language selector" by @mike840609 in #134
  • Set default theme to dark and improve locale resolution in settings form by @mike840609 in #135
  • feat: apply dark mode styles to login page by @mike840609 in #137
  • Rename project to Assets Tracker by @mike840609 in #138
  • chore: Add Open Graph and Twitter Card metadata by @mike840609 in #139
  • Fix OpenGraph and Twitter image paths by @mike840609 in #140
  • fix: remove explicit OG image paths that conflicted with file-based metadata by @mike840609 in #141
  • fix: exclude OG and Twitter image routes from auth middleware by @mike840609 in #142
  • docs: add pre-market-launch readiness audit + refresh CLAUDE.md by @mike840609 in #143
  • security: add baseline headers (R1) and API rate limiting (R3) by @mike840609 in #144
  • add feature implementation skill by @mike840609 in #145
  • feat: add CI workflow for lint, type-check, and build (R20) by @mike840609 in #148
  • R14: add timeout + retry guards on Yahoo Finance / CoinGecko calls by @mike840609 in #150
  • fix(auth): skip auth-gate redirect for /api/auth/* in middleware by @mike840609 in #154
  • fix(ci): sync package-lock.json with package.json by @mike840609 in #155
  • fix(ci): regenerate package-lock.json with npm 10 by @mike840609 in #157
  • chore(ci): bump checkout/setup-node to v5 by @mike840609 in #158
  • chore: update Claude local settings by @mike840609 in #156
  • feat(e2e): add Playwright smoke test suite (R21) by @mike840609 in #149
  • feat: add Terms of Service page (R6) by @mike840609 in #161
  • feature: Verify Google OAuth consent screen (R9) by @mike840609 in #160
  • feat(R11): Add error.tsx, global-error.tsx, and not-found.tsx by @mike840609 in #159
  • Revert "feat(R11): Add error.tsx, global-error.tsx, and not-found.tsx" by @mike840609 in #164
  • fix(settings): swap export/import icons and align export button style by @mike840609 in #167
  • fix: fix the settings page css by @mike840609 in #169
  • fix(dashboard): show daily change badge for all base currencies by @mike840609 in #168
  • fix(e2e): isolate tests to dedicated user, add global teardown by @mike840609 in #170
  • docs: refresh CLAUDE.md and README.md to match current state by @mike840609 in #172
  • Run Prisma migrations during Vercel builds by @mike840609 in #174
  • ui: add favicon-style app icon and polish accounts dark mode by @mike840609 in #175
  • Add support for options trading with OCC symbol parsing by @mike840609 in #171
  • Fix options account display by @mike840609 in #177
  • ui: mobile navbar auto-hide and pull-to-refresh by @mike840609 in #178
  • docs: add UI/UX suggestions for iOS-native mobile feel by @mike840609 in #180
  • Fix pull-to-refresh indicator positioning and z-index by @mike840609 in #179
  • fix(db): use DIRECT_URL for prisma migrations to avoid pooler timeouts by @mike840609 in #181
  • fix: enable Safari homescreen standalone mode (PWA) by @mike840609 in #183
  • feat: replace tables with iOS-style inset grouped lists by @mike840609 in #185
  • feat: replace transaction history table with date-grouped inset list by @mike840609 in #186
  • docs: mark done/partial/pending status on UI_UX_SUGGESTIONS by @mike840609 in #188
  • docs: add Codex UI/UX enhancement recommendations by @mike840609 in #191
  • feat: iOS 11+ large-title navigation bar pattern by @mike840609 in #190
  • Implement bottom-sheet style for account & holding dialogs (mobile) by @mike840609 in #193
  • Improve dashboard skeleton shimmer and net-worth hero mesh by @mike840609 in #194
  • fix(e2e): skip smoke tests on Production deployments; improve timeout and error messaging by @mike840609 in #196
  • fix(mobile): constrain add-account dialog height to prevent overflow by @mike840609 in #197
  • feat: add haptics and spring motion (UI/UX item 5) by @mike840609 in #198
  • feat: add swipe actions on holding rows (UI/UX item 9) by @mike840609 in #199
  • style: iOS-style rounded pill buttons for swipe actions by @mike840609 in #200
  • Add iOS-style slide transitions for account navigation (UI/UX item 10) by @mike840609 in #201
  • Add opt-out flag for preview password login gate by @mike840609 in #202
  • Add desktop command palette + keyboard shortcuts, price-refresh hook, and sticky history headers by @mike840609 in #203
  • Add persisted icons-only collapsible desktop sidebar and update docs by @mike840609 in #204
  • Add Comfortable/Compact density toggle (UI/UX desktop item) by @mike840609 in #206
  • Polish command palette: i18n, platform shortcuts, sign out by @mike840609 in #205
  • feat: add sidebar collapse shortcut (Ctrl/⌘+B) and command-palette action by @mike840609 in #207
  • feat: implement inline validation and numeric keyboards (Item 11) by @mike840609 in #208
  • fix: restore dialog position on mobile for swipe-to-edit sheet by @mike840609 in #209
  • fix: change privacy mode shortcut from Ctrl+Shift+P to Ctrl+Shift+Y by @mike840609 in #210
  • docs: add critical documentation gaps audit (CRITICAL_GAPS.md) by @mike840609 in #211
  • docs: mark done items and update LOG.md through 2026-05-05 by @mike840609 in #212
  • feat: simplify shortcuts, fix browser conflicts, add I for quick-add holding by @mike840609 in #213
  • feat: undo-first destructive actions (UI/UX #12) by @mike840609 in #214
  • ci: skip CI and Vercel deployments for doc-only changes by @mike840609 in #173
  • Add .worktreeinclude by @mike840609 in #215
  • Revert "ci: skip CI and Vercel deployments for doc-only changes" by @mike840609 in #217
  • feat: iOS typography — SF Pro font stack + tighter net-worth letter-spacing (UI/UX #8) by @mike840609 in #218
  • docs: performance enhancement plan (PE1–PE19) by @mike840609 in #221
  • docs: add CODE_QUALITY_SUGGESTIONS.md (Q1–Q20) by @mike840609 in #220
  • docs: consolidate docs/ 12→6 themed files + 2026-05-08 status audit by @mike840609 in #222
  • perf: add server-only guards (B1, B8) and dynamic imports (B6, B11, PE6) by @mike840609 in #224
  • perf: close PE4/PE5/PE8/PE9/PE10/PE11/PE12/PE14 + S#91 by @mike840609 in #225
  • fix: implement PE1-PE3, PE7, PE13/B10, PE15 performance items by @mike840609 in #226
  • Add pre-commit hooks and code quality checks by @mike840609 in #227
  • docs: add UI/UX Enhancement Addendum with targeted recommendations to UI_UX.md by @mike840609 in #228
  • Improve accessibility baseline for keyboard and screen readers by @mike840609 in #229
  • docs: update UI/UX enhancement suggestions based on codebase review by @mike840609 in #230
  • feat: implement iOS theme color and splash screens by @mike840609 in #231
  • Improve mobile bottom nav, add dashboard freshness badges, and update UI/UX doc by @mike840609 in #232
  • Refactor: Extract duplicated swipe-row logic into shared component by @mike840609 in #233
  • Fix/feature skill docs by @mike840609 in #234
  • feat: unified motion token system and hydration fix by @mike840609 in #235
  • Reduce account detail RSC bursts by @mike840609 in #236
  • docs: add crucial codebase review suggestions by @mike840609 in #237
  • feat: implement mobile chart interaction model by @mike840609 in #239
  • fix: reduce mobile tab-switch lag by @mike840609 in #241
  • docs: add 2026-05-11 codebase review (items 144-151) by @mike840609 in #242
  • fix(dashboard): hide refresh button on mobile, rely on pull-to-refresh by @mike840609 in #243
  • fix(dashboard): eliminate Recharts width(-1)/height(-1) console warnings by @mike840609 in #244
  • fix(db): tenant isolation, cache invalidation, and query over-fetch by @mike840609 in #245
  • fix(dashboard): keep price-updated and snapshot tags on one row on mobile by @mike840609 in #246
  • fix(dashboard): fix stale now reference causing wrong time after pull-to-refresh by @mike840609 in #247
  • Fix price refresh timestamp display across manual and pull-to-refresh by @mike840609 in #248
  • feat(perf): resolve all remaining bundle optimization items (B3–B5, B9, B12, B14) by @mike840609 in #249
  • feat(mobile): tighten mobile spacing and upgrade trend chart crosshair by @mike840609 in #250
  • feat(infra): harden Vercel config — maxDuration, skewProtection, poweredByHeader, image TTL (V34–V36) by @mike840609 in #251
  • feat(ux): pro broker desktop layout for accounts/holdings by @mike840609 in #252
  • feat(ux): desktop accounts list data table at lg+ (D4) by @mike840609 in #253
  • Align net worth trend chart x-axis label slope with other charts by @mike840609 in #255
  • ci: enforce format+lint+typecheck in pre-push hook and document pre-PR checklist by @mike840609 in #257
  • docs: add mobile screen size UI/UX improvement section (M1–M9) by @mike840609 in #256
  • fix(mobile): M4 holdings action always visible on touch, M5 login card responsive padding by @mike840609 in #259
  • feat(dashboard): equal-height chart cards with trend chart filling card by @mike840609 in #260
  • feat(mobile): accounts visual refresh + dashboard enhancements by @mike840609 in #261
  • docs: add suggestions_20260515.md (consolidated enhancement digest) by @mike840609 in #262
  • docs(vercel): add MCP findings F1-F8 + pin engines.node to 24.x by @mike840609 in #263
  • fix: stack time selector below title on mobile to prevent overflow by @mike840609 in #264
  • Add customizable color schemas with 6 theme options by @mike840609 in #266
  • Refine Anthropic color schema with sandy neutrals and coral by @mike840609 in #268
  • fix: anchor pull-to-refresh indicator below iOS safe-area-inset-top by @mike840609 in #269
  • feat(accounts): extend desktop table with Currency, Native, Allocation % columns by @mike840609 in #270
  • docs: add future feature ideas backlog (F1-F25) by @mike840609 in #271
  • feat(projections): add FIRE/retirement projection page (F2) by @mike840609 in #275
  • refactor: extract shared chart tick formatter, fix hydration and dead code in F2 projections by @mike840609 in #276
  • docs: update CLAUDE.md, README, and docs to reflect shipped features by @mike840609 in #277
  • feat(analysis): F11 — performance attribution chart by @mike840609 in #274
  • feat(goals): F1 — net-worth goals & milestones by @mike840609 in #272
  • feat: extend command palette shortcuts to include Goals and Projections tabs by @mike840609 in #279
  • fix(analysis): keep range selector buttons on-screen on mobile by @mike840609 in #282
  • enhance export/import: add goals, option fields, and tighter validation by @mike840609 in #280
  • perf(ci): parallelize CI, cache Playwright, skip no-op prisma migrate by @mike840609 in #284
  • feat(ui): animation upgrades — theme toggle, chart range, list layout by @mike840609 in #283
  • fix(api): enforce ownership on transaction PATCH/DELETE and holding mutations by @mike840609 in #281
  • feat(ui): add comma formatting to all numeric inputs by @mike840609 in #285
  • feat(ui): touch targets, chart clarity, polish sweep (18 items) by @mike840609 in #287
  • refactor(accounts): replace checkbox/select-all with per-row ⋮ overflow menu by @mike840609 in #289
  • fix(ui): expand cash balance input to full width for better number visibility by @mike840609 in #291
  • perf(infra): drop bot probes upstream of middleware (P1+P2) by @mike840609 in #293
  • [codex] Mark server modules server-only by @mike840609 in #295
  • fix(ui): align route loading skeletons with real page layouts by @mike840609 in #297
  • feat(ui): make mobile nav tab items same size with content-hugged active pill by @mike840609 in #298
  • feat(trend-chart): add % return toggle, pin selector to card corner by @mike840609 in #273
  • Add Vercel Fluid CPU optimization plan doc by @mike840609 in #290
  • fix(dashboard): pin all-accounts sort selector to card corner, unify pill style by @mike840609 in #299
  • perf: lazy-load analysis & projection charts, fix settings waterfalls by @mike840609 in #300
  • fix(mobile): prevent navbar truncation and dashboard chip overlap by @mike840609 in #301
  • docs(review): mark P1 items (F7, F8) as evaluated and declined by @mike840609 in #302
  • docs(review): mark P2 items (F9, F10) as evaluated and declined by @mike840609 in #303
  • feat(mobile-nav): floating pill tab bar, no backdrop-blur for perf by @mike840609 in #305
  • fix(mobile-nav): fully hide floating bar on scroll-down by @mike840609 in #306
  • Scope manual price refresh to user, add cached analysis payload, and exclude API from proxy to reduce CPU by @mike840609 in #307
  • perf(fx): remove render-time exchange-rate fetching by @mike840609 in #308
  • perf(analysis): restore F3 settings-waterfall fix by @mike840609 in #309
  • docs: aggregate docs/ from 14 files to 7 by topic by @mike840609 in #310
  • Top Movers: add mobile card layout to avoid horizontal scrolling by @mike840609 in #311
  • Revert "Improve top movers mobile layout (#311)" by @mike840609 in #312
  • fix(mobile): lift toasts above bottom nav bar by @mike840609 in #314
  • Add git worktree setup script for parallel development by @mike840609 in #313
  • feat(ui): extend freshness 'Updated N ago' badges to /analysis and /history by @mike840609 in #316
  • Feature 5: Account Reordering + Archive/Pin by @mike840609 in #315
  • [codex] document design system by @mike840609 in #320
  • [codex] polish privacy page by @mike840609 in #322
  • fix(settings): a11y and UX polish pass on the settings tab by @mike840609 in #323
  • dashboard: distill chrome, align tokens, cut hero animations by @mike840609 in #324
  • fix(analysis): a11y and theming polish pass on the analysis tab by @mike840609 in #325
  • fix(history): a11y and theming polish pass on the history tab by @mike840609 in #326
  • fix(accounts): a11y and i18n harden pass on the accounts tab by @mike840609 in #327
  • feat(goals): Goals & milestones tab by @mike840609 in #328
  • fix(settings): a11y, theming, and responsive polish pass by @mike840609 in #330
  • feat(history+dashboard): full-year activity heatmap with dashboard integration by @mike840609 in #329
  • [codex] Fix duplicate loading sketches by @mike840609 in #331
  • Tighten CI/E2E workflow triggers, add [skip ci] gating, and remove master branch by @mike840609 in #332
  • [codex] Share history and projection mobile surfaces by @mike840609 in #333
  • feat(settings): add stock up/down color preference (Western vs East Asian) by @mike840609 in #335
  • fix(accounts): include cash balance in brokerage total value by @mike840609 in #338
  • docs: add comprehensive bug-fix checklist (BUGS.md) by @mike840609 in #339
  • [codex] fix transaction signs and cache invalidation by @mike840609 in #341
  • UI polish: a11y, theming, and responsive fixes from /impeccable audit by @mike840609 in #342
  • [codex] fix snapshot freshness timestamps by @mike840609 in #343
  • feat(ui): migrate to shadcn primitives across accounts, analysis, and loading states by @mike840609 in #344
  • feat(settings): migrate stock color scheme to localStorage by @mike840609 in #345
  • feat(analysis): migrate bar charts to shadcn ChartContainer by @mike840609 in #346
  • feat(ui): error boundaries + standardized destructive confirms by @mike840609 in #347
  • fix: apply privacy blur to heatmap grid by @mike840609 in #350
  • fix(search): restore holding symbol search broken by Yahoo schema validation by @mike840609 in #351
  • feat(accounts): accessible, native-feeling Add Account / Add Holding flows by @mike840609 in #353
  • Adjust Analysis density behavior on mobile by @mike840609 in #352
  • fix(loading): align skeletons with final layout + add shimmer by @mike840609 in #354
  • fix(mobile): a11y and responsive polish for mobile surfaces by @mike840609 in #355
  • fix: match dark theme-color to page background to remove iOS safe-area green tint by @mike840609 in #356
  • [codex] Add portfolio account heatmap by @mike840609 in #358
  • feat(dashboard): redesign dashboard into desktop bento grid by @mike840609 in #359
  • feat(dashboard): color-schema-aware donuts + state-conveying motion by @mike840609 in #360
  • feat(history): desktop bento layout with summary rail by @mike840609 in #361
  • feat(projections): desktop FIRE cockpit with milestones and inflation lens by @mike840609 in #362
  • feat: add local postgres database for development via docker by @mike840609 in #363
  • feat(accounts): craft accounts tab & detail page with i-impeccable polish by @mike840609 in #364
  • feat(theme): unify color schema controls and schema-aware branding by @mike840609 in #365
  • Refine desktop dashboard: hero hierarchy, title system, currency view by @mike840609 in #366
  • feat(accounts): move portfolio heatmap to accounts tab, with a11y + allocation color link by @mike840609 in #367
  • fix(dashboard): align desktop loading skeleton with net-worth layout by @mike840609 in #368
  • feat(analysis): desktop layout, KPI clarity, unified empty & first-run states by @mike840609 in #369
  • feat(history): empty state, focused summary rail, heatmap legend by @mike840609 in #370
  • Harden settings import and stale-session auth by @mike840609 in #371
  • refactor(accounts): drop dead category-card view, restore memoization by @mike840609 in #373
  • fix(theme): keep gain/loss distinct across all color schemas by @mike840609 in #372
  • feat(theme): add a --warning semantic color role by @mike840609 in #374
  • History/dashboard motion, perf & color passes + sidebar flash fix by @mike840609 in #375
  • [codex] fix heatmap month labels by @mike840609 in #376
  • [codex] fix mobile heatmap tooltip dismissal by @mike840609 in #378
  • Mobile UX critique fixes (Design Health 28 → 33) by @mike840609 in #377
  • [codex] Harden portfolio heatmap composition by @mike840609 in #379
  • Print the active database connection on dev startup by @mike840609 in #380
  • [codex] Warm top-level nav prefetch by @mike840609 in #381
  • [codex] Refine analysis tab layout by @mike840609 in #382
  • feat: blur Portfolio Heatmap in privacy mode by @mike840609 in #383
  • Add stock watchlist and mobile plan hub by @mike840609 in #385
  • feat: redesign and integrate high-fidelity tab onboarding overlay pages by @mike840609 in #386
  • Craft quiet dashboard onboarding for first-run users by @mike840609 in #387
  • Add watchlist preview to the dashboard by @mike840609 in #388
  • feat(ui): redesign watchlist card layout to prioritize change percent by @mike840609 in #389
  • Refine dashboard: net-worth hero, charts, and layout density by @mike840609 in #390
  • feat(stocks): colorize watchlist with directional schema awareness by @mike840609 in #391
  • feat(stocks): redesign watchlist row layout, harden, and colorize by @mike840609 in #392
  • fix(stocks): harden watchlist caching, validation, and API routes by @mike840609 in #393
  • perf(refresh): skip price and FX refetch when cached data is fresh by @mike840609 in #396
  • fix(rates): derive USD cross rates before falling back to rate=1 by @mike840609 in #397
  • fix(api): make balance and holding mutations atomic by @mike840609 in #398
  • feat: throttle manual market-data refreshes against external APIs by @mike840609 in #395
  • refactor: remove dead code, unused deps, and stale exports by @mike840609 in #402
  • perf: service query fixes, chart memoization, and middleware fast path (PE20–PE24, P4) by @mike840609 in #403
  • feat: enable PWA install button via service worker by @mike840609 in #404
  • feat(search): rank TW and US stocks higher in autocomplete by @mike840609 in #405
  • fix(pwa): serve manifest.webmanifest anonymously so app install works on production by @mike840609 in #406
  • perf(cron): refresh exchange rates and prices in parallel by @mike840609 in #409
  • perf(accounts): collapse account-detail page waterfall to dependency depth by @mike840609 in #408
  • perf(dashboard): parallelize orchestrator reads and stream trend chart by @mike840609 in #410
  • perf(accounts): start cached-price fetch in parallel with account batch by @mike840609 in #407
  • fix(e2e): update stale selectors and block service workers in Playwright by @mike840609 in #411
  • feat(ui): sliding selection indicator, trend-chart chip unification, archived disclosure motion (A4–A6) by @mike840609 in #412
  • ci(e2e): restore deployment_status trigger so the suite targets live preview URLs by @mike840609 in #413
  • fix(cache): unify revalidateTag semantics, add snapshots Cache-Control, lengthen goals TTL by @mike840609 in #415
  • fix(prices): revalidate per-user accounts tag on manual price refresh by @mike840609 in #414
  • perf(net-worth): migrate getCachedNetWorthSummary to "use cache" with hours TTL by @mike840609 in #416
  • perf(refresh): collapse dashboard refresh into one user-scoped /api/refresh (P5) by @mike840609 in #417
  • perf: bundle-size CI gate, public asset cache headers, cash-flow date floor (S18, V20, PE29) by @mike840609 in #419
  • docs: add comprehensive enhancement plan (E1–E39) by @mike840609 in #420
  • fix(integrity): Tier-0 correctness sweep (E1, E2, E3, E7, E9) by @mike840609 in #421
  • fix(validation): Tier-0 validator tightening (E5, E6, E8) by @mike840609 in #422
  • fix(fx): Tier-0 FX inverse persistence + stale-rates signal (E4) by @mike840609 in #423
  • Update the enhancement plan with completed fixes and revised priorities by @mike840609 in #424
  • Document Next.js upgrade checks and build cache audit by @mike840609 in #426
  • Harden refresh and import handling by @mike840609 in #427
  • feat(observability): /api/health endpoint + format:check CI gate (E17, E24) by @mike840609 in #428
  • feat(observability): CronRun audit table + 36h freshness alarm + FK indexes (E18, E16 partial) by @mike840609 in #429
  • feat(observability): Sentry error reporting via logger (E19) by @mike840609 in #430
  • [codex] add Sentry monitoring plan by @mike840609 in #431
  • feat(watchlist, goals): drag-to-reorder with custom ordering by @mike840609 in #432
  • feat(observability): complete Sentry dashboard to all 19 planned widgets by @mike840609 in #433
  • refactor(auth): remove unreachable preview-auth guard, dedupe gate logic by @mike840609 in #434
  • fix(stocks): prevent add-stock dialog overflow with long names by @mike840609 in #435
  • test(services): add Vitest unit suite for service layer (E22) by @mike840609 in #436
  • [codex] fix history heatmap date alignment by @mike840609 in #437
  • refactor(accounts): dedupe input mask + enum lists; declare @sentry/core by @mike840609 in #439
  • docs(platform): add 2026-06 Fluid Active-CPU reduction plan (C1–C7) by @mike840609 in #438
  • Fix silent balance-save failure and dedupe numeric input formatting by @mike840609 in #442
  • [codex] reduce fluid active cpu usage by @mike840609 in #441
  • sketch-loading-animation-fix by @mike840609 in #443
  • Migrate from npm to pnpm with content-addressable store by @mike840609 in #445
  • chore: move dev-only packages to devDependencies by @mike840609 in #446
  • feat(accounts): recurring cash + DCA investments, Node guard, Select i18n sweep by @mike840609 in #444
  • fix(fx): stop reporting recovered Frankfurter misses as Sentry errors by @mike840609 in #447
  • fix(search): treat Yahoo 4xx as non-errors, keep them out of Sentry by @mike840609 in #448
  • feat(mobile): sliding tab-bar pill + list entrance stagger by @mike840609 in #449
  • fix(settings): 44px mobile touch targets + accessible chip contrast by @mike840609 in #450
  • feat(changelog): version history page + in-app version, single source of truth by @mike840609 in #451
  • fix(accounts): mobile polish for recurring + transaction forms (v0.6.1) by @mike840609 in #452
  • init by @mike840609 in #453
  • [codex] add new feature list by @mike840609 in #454
  • Fix ledger atomicity and cron cache invalidation by @mike840609 in #455
  • [codex] Add labeled snapshot annotations by @mike840609 in #456
  • feat(docs): competitor-inspired feature backlog (NF22–NF32) by @mike840609 in #457

Full Changelog: https://github.com/mike840609/asset_tracker/commits/Release