You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Wealth Watcher v0.6.0
Highlights
Adds a Dashboard FIRE status summary that keeps the selected FIRE assets separate from Holistic Net Worth, shows FIRE assets, target, remaining amount, and progress, includes holistic milestone context, and provides a context-aware next action.
Adds an optional projected FIRE date using the existing forecast endpoint and current FIRE/forecast assumptions. The dashboard renders its FIRE figures independently and treats loading, disabled, incomplete, stale, and unavailable projections safely.
Rebuilds Budget as a page-owned planner for income, bills, savings, and spending. The new flow view converts recurring amounts to monthly equivalents, supports category drill-down, and provides an edit-one-line-at-a-time experience with optional savings links to Forecast assets.
Keeps the browser-only demo aligned with the budget request and validation contract, including the same cadence, asset-link, persistence, and error-handling behaviour used by the application.
Fixes
Centralizes FIRE target, included-asset, state-pension, windfall, and invalid-withdrawal-rate handling so FIRE Tracker and Forecast no longer calculate contradictory targets from the same settings.
Budget settings persistence now preserves existing line identifiers and savings-to-asset mappings, assigns identifiers to new lines, removes omitted rows, and rejects duplicate or unknown identifiers, invalid values, and invalid asset links without partially applying the request.
Refreshes dashboard FIRE status after saved FIRE, Forecast, and feature-toggle changes and protects optional forecast snapshots from stale responses replacing a newer request.
Updates the pinned .NET SDK to 10.0.400, refreshes SnapTrade and API test packages, and updates the pinned GitHub Actions and Docker metadata/build tooling. The release also expands API, UI, demo-contract, routing, and responsive-layout regression coverage.
Upgrade notes
No new database migration, production environment variable, or Compose-file change was introduced in the diff for this release (requiresMigration: false; requiresConfigurationChange: false). Existing budget rows and mappings remain in the existing schema. Because this is a 0.x minor release, review the new Budget page after updating; the old #settings?panel=monthly-budget deep link redirects to #budget.
Back up PostgreSQL and the configured CONFIG_PATH Data Protection key directory before updating. After restart, verify /api/health, open Dashboard, Budget, and FIRE, and run a representative manual or provider sync. The key backup is required to recover encrypted integration credentials.
For source development, use the repository-pinned .NET SDK 10.0.400 and the Node.js version in .nvmrc; run npm ci --prefix WealthWatcher.UI after pulling the release branch. The production Docker path still requires Docker and Docker Compose, with private .env and configuration data kept outside the repository.
For a published-image deployment, set API_IMAGE and WEB_IMAGE to v0.6.0 or an immutable sha-<full-commit-sha> tag, then pull and restart the application services. To roll back, restore the previous v0.5.0 or immutable image tags and repeat the same commands. No new schema migration needs to be undone, but retain the verified backup and confirm compatibility before rolling back.
The successful tagged workflow also moves the stable latest alias for both images.
Image digests are not available until the tagged build completes. Record the published digests from that workflow when immutable release evidence or deployment pinning is required; sha-<full-commit-sha> remains available for commit-based rollback.
Known issues
FIRE projections remain illustrative estimates based on the configured assumptions and available history. The projected date can be unavailable or unreachable when Forecast is disabled, data is incomplete, or the assumptions cannot produce a target date; review the Forecast page before making decisions.
The browser-only public demo uses fictional, resettable data and does not connect to the API, database, accounts, or provider integrations.
The application has no built-in authentication, authorization, or tenant isolation. Keep the API and dashboard on the local machine or a trusted network and do not expose them directly to the public Internet.