Skip to content

fix: production polish — 12 UI, calculation, and schema fixes#7

Merged
NimbleEngineer21 merged 2 commits intomainfrom
fix/production-polish
Mar 5, 2026
Merged

fix: production polish — 12 UI, calculation, and schema fixes#7
NimbleEngineer21 merged 2 commits intomainfrom
fix/production-polish

Conversation

@NimbleEngineer21
Copy link
Owner

Summary

  • UI fixes: Ko-fi button alignment, import column spacing, sticky dashboard table header, swap sell/purchase date order, remove clock and move status dot to refresh button (with 30-min stale indicator)
  • Calculation fix: Clamp past expenses/paychecks to today to prevent double-counting (fixes "4 months" overcounting bug)
  • Schema v3→v6: Empty default platform fees with auto-populate on import, spouse paycheck support, per-asset/retirement liquidation percentage
  • New features: Liq % column and capital sales rows on Dashboard, spouse paycheck UI in wizard/projections/dashboard, investments step in setup wizard with ticker auto-detection, staggered timeline marker labels

Test plan

  • All 419 tests pass
  • ESLint clean
  • Production build succeeds
  • Manual: complete wizard flow with spouse income + investments
  • Manual: verify dashboard Liq % inputs update totals correctly
  • Manual: verify capital sales appear in dashboard table
  • Manual: verify stale refresh dot turns amber after 30 min
  • Manual: verify import auto-populates platform fees
  • Manual: verify timeline labels don't overlap on Readiness page

- Fix ko-fi button alignment, import column spacing, sticky table header
- Remove clock from header; move status dot to refresh button with 30-min
  stale indicator (green → amber)
- Swap sell/purchase date order for chronological flow
- Clamp past expenses/paychecks to today (fixes "4 months" overcounting)
- Schema v3→v6: empty default platform fees with auto-populate on import,
  spouse paycheck support, per-asset/retirement liquidation percentage
- Add Liq % column and capital sales rows to Dashboard table
- Add spouse paycheck UI to wizard, projections, and dashboard cards
- Add investments step to setup wizard with ticker auto-detection
- Stagger timeline marker labels above/below to prevent overlap
…verage

- Fix ReadinessTimeline stagger logic: replace .map() with for loop to
  avoid referencing the array being constructed (TypeError on close markers)
- Fix frozen staleness indicator: replace module-level Date.now() with
  useSyncExternalStore backed by a 60s interval so it stays live in SPA
- Fix v4→v5 migration: create cashFlow from {} when missing so spouse
  fields are always added
- Fix v5→v6 migration: initialize assets to [] when not an array so
  liquidationPercent migration always runs
- Update Roth comment to reflect partial liquidation semantics
- Add 22 new tests: calcCashFlow, retirement/asset liquidationPercent,
  spouse income in calcMonthlySavings, schema migrations v3→v4/v4→v5/v5→v6,
  and full v1→v6 end-to-end migration
@NimbleEngineer21 NimbleEngineer21 merged commit 6091bae into main Mar 5, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant