Skip to content

Polish investment overview and unify trade entry - #172

Merged
31b4 merged 21 commits into
epic/123-investment-reworkfrom
feature/171-investment-ui-ux-polish
Oct 20, 2026
Merged

31b4 merged 21 commits into
epic/123-investment-reworkfrom
feature/171-investment-ui-ux-polish

Conversation

@31b4

@31b4 31b4 commented Oct 19, 2026 •

Copy link
Copy Markdown
Member

Refs #171

Summary

Make investment figures easier to read and use one Buy/Sell editor for investment transactions. This shared UI/UX polish batch stays open for the user's next small changes and targets epic/123-investment-rework.

Changes

  • Show asset search/manual selection before category, pricing, trading currency and holding unit when creating investment accounts, so asset selection can populate those fields first. Account-management suite: 45 tests passed; client build/typecheck and lint passed.

  • Move cross-currency settlement acknowledgement to a highlighted final confirmation card below totals and metrics review, with a clear required-before-saving message. Allow the nonmutating preview before acknowledgement; actual saves still require the confirmed draft and matching preview, and settlement changes reset acknowledgement.

  • Open holding details from the full row, including price/value/return cells. Preserve keyboard-accessible name/arrow buttons and prevent duplicate opens when their clicks bubble. Overview suite: 17 tests passed; client build/typecheck and lint passed.

  • Keep the chart return/date caption in a shared, consistently spaced grid slot so hovering does not move the plot, including when the range caption wraps. Focused chart suites: 15 tests passed; client build/typecheck and lint passed.

  • Show a clearly labeled Gain on net invested ratio when the known gain and positive net invested support it. Preserve currency/privacy and separate chart/Today daily-linked returns.

  • Use a compact responsive summary strip, full-width portfolio chart and compact allocation grid, with matching skeletons. Remove requested explanatory copy and the duplicate privacy button.

  • Emphasize selected-day total gain/percentage in portfolio tooltips, with a readable date and secondary value. Preserve unknown amounts and hide unsupported ratios.

  • Implement the supplied HTML's holding popup 2a: centered 600px single-column panel, instrument avatar/name/metadata, compact position-value/gain summary, chart-first layout, six-cell position grid and readable source footer. Remove gain bars and duplicate cards. Stock/ETF display quantities have full-precision titles; crypto/tiny quantities keep their precision. Category/name/exchange come from saved/source data, not prototype guesses.

  • Preserve split-adjusted prices and all dated trade markers, average-cost reference, keyboard day selection and review history. Match the chart endpoint to a compatible timed current quote for display only; reject stale/other-currency sources and preserve original observations. Use light buy/red sell markers and compact range buttons.

  • Expose versioned linked legacy trade review through the canonical editor. Its guarded read supplies verified linked cash for draft prefill without changing stored investment facts or guessing missing execution/fee facts.

  • New investment buys/sells start on Investments. Dashboard income, expense and transfer creation only offer cash accounts, and saved investment defaults are ignored. Remove the automatic transfer-to-trade creation handoff. Existing linked investment trades still load the canonical pair/version for editing; ordinary cash transfers, splits and MCP review transfers retain their own flows.

  • Plot retained split-only-adjusted provider closes in holding charts, scaling pre-split execution markers to the same basis. Leave raw accounting/cache contracts and original trade facts unchanged; dividend-adjusted adjclose is not used. Show normal chart prices to cents and retain sub-unit precision.

Verification

  • Settlement-confirmation follow-up: trade-editor regression covers preview before acknowledgement, blocked saves, confirmation order and reset after settlement edits. All investment component tests, client production build/typecheck and zero-warning lint passed.

  • Latest cash-only Dashboard follow-up: all 38 transaction-list tests passed, including cash-only selectors, both saved investment default directions, canonical linked edits and failed pair reads. Client production build/typecheck and zero-warning lint passed.

  • Design 2a final head: all 538 client tests passed across 56 files, plus production build/typecheck and zero-warning lint. Coverage includes actual chart geometry, quote endpoint selection/currency/staleness, immutable history, privacy, trade history and shared modal behavior. Earlier checkpoint counts below are historical. The supplied design prototype was read as a reference; no prototype data or generated price curves were imported.

  • Latest gain-breakdown follow-up: 120 investment tests, build/typecheck and zero-warning lint passed. Regression coverage checks shared-scale gain/loss direction, separate remaining cost, missing data, known zero and privacy without color/width leaks.

  • Latest full client suite: 537 passed. Real SVG chart regressions cover both successive splits, reverse splits, invalid factors, dividend exclusion, marker alignment, retained original executions and price precision. Build/typecheck and lint passed. Read-only ten-year NVDA probe: 2,517 points; July 2021 raw ratio 0.2478 becomes display ratio 0.9911, June 2024 raw ratio 0.1007 becomes 1.0075. No financial records mutated. NVIDIA split FAQ, Yahoo adjusted-close distinction. Older counts below describe preceding checkpoints.

  • Latest holding-summary follow-up: 115 investment component tests, client production build/typecheck and zero-warning lint passed. Checks cover gain percentage eligibility and privacy masking, manual assets, missing prices and existing history/review actions. Full client count below describes the preceding shared-editor checkpoint.

  • Latest full client suite: 533 tests passed across 56 files. Handoff coverage includes purchases, sales, manual assets, saved defaults, preservation of explicit cash drafts, existing linked edits, failed pair reads, shared refresh and ordinary cash editing. Canonical editor suites retain precision, manual disposal, preview, failed-save/replay and privacy checks; obsolete duplicate transfer-entry tests were replaced by handoff tests.

  • Client production build/typecheck and lint with zero warnings passed. Existing bundle-size advisory remains.

  • Earlier linked-cash/read follow-up: 36 real Worker/D1 trade tests passed, including nonmutating read/preview, same-purchase confirmation preserving cash/units/IDs and stale-version rejection. All workspace/integration types passed. The subsequent handoff changes are client-only and reuse that writer.

  • Local preview serves the updated shared editor with the existing database. No schema migration, financial data reset or automatic confirmation of user facts. Browser visual automation remains unavailable under the existing local-URL policy; desktop/mobile visual review remains with the user.

No merge is requested. Final epic-to-main PR #147 remains separate.

@31b4 31b4 mentioned this pull request Oct 19, 2026
14 of 17 tasks
@31b4 31b4 changed the title Polish investment summary and review UX Polish investment overview and holding details Oct 19, 2026
@31b4 31b4 changed the title Polish investment overview and holding details Polish investment overview and unify trade entry Oct 19, 2026
@31b4
31b4 merged commit 59f93bb into epic/123-investment-rework Oct 20, 2026
11 checks passed
@31b4
31b4 deleted the feature/171-investment-ui-ux-polish branch October 20, 2026 10:37
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