Story: Trade detail dialog unification
Table of Contents
This page documents a story in Sprint 16. It captures the goal, current status, acceptance criteria, and the tasks that compose it.
Goal
Data-driven trade type metadata; merge all six instrument families (FX, swap/rates, bond/credit, equity/commodity, composite, scripted) into TradeDetailDialog; IInstrumentForm registry; form map + trade-type flags + create-mode instrument.
Status
| Field | Value |
|---|---|
| State | DONE |
| Parent sprint | Sprint 16 |
| Now | Completed 2026-04-07. |
| Waiting on | None. |
| Next | None. |
| Last touched | 2026-04-07 |
Acceptance
- All tasks complete; PR-by-PR breakdown in
git log.
Tasks
| Task | State | Start | End | Description |
|---|---|---|---|---|
| Data-driven trade type metadata | DONE | 2026-05-20 | 2026-04-07 | Phase 1-3: schema updates to the trade types table; NATS protocol for trade types; product_type codified as a C++ enum; replace silent defaults with unknown sentinel. |
| Form map + trade type flags + create-mode instrument | DONE | 2026-05-20 | 2026-04-07 | Phase 5 + 6: trade type cache; activateForm helper; instrument form visibility during trade creation; thread-safety + magic numbers + error handling improvements. |
| IInstrumentForm registry + per-family form widgets | DONE | 2026-05-20 | 2026-04-07 | Phase 4: IInstrumentForm interface + InstrumentFormRegistry; family-specific UI tabs replaced with dynamic registry-based approach; one form per family (FX, Swap, Bond, Credit, Equity, Commodity, Composite, Scripted). |
| Merge bond + credit instruments into TradeDetailDialog | DONE | 2026-05-20 | 2026-04-07 | PR 3 of 6: standalone bond + credit controllers removed; functionality integrated into TradeDetailDialog; review highlighted regressions for new trade creation + CDO zero values. |
| Merge composite instrument family into TradeDetailDialog | DONE | 2026-05-20 | 2026-04-07 | PR 5 of 6: CompositeInstrumentController + associated windows removed; composite instrument viewing + editing of details + legs within the trade interface; trim trade type code; instrument-loaded guard. |
| Merge equity + commodity instruments into TradeDetailDialog | DONE | 2026-05-20 | 2026-04-07 | PR 4 of 6: equity + commodity standalone components removed; integrated into TradeDetailDialog; instrument_id linkage fix; tab visibility logic fix; reactive widget reads; sentinel value caveat. |
| Merge FX instrument into TradeDetailDialog | DONE | 2026-05-20 | 2026-04-07 | PR 1 of 6: instrument-trade model refactor establishing independent identities; FX instrument tabs integrated into TradeDetailDialog; standalone FX UI components removed; OreImportWizard redesigned to target books. |
| Merge scripted instrument family into TradeDetailDialog | DONE | 2026-05-20 | 2026-04-07 | PR 6 of 6: standalone scripted controllers + MDI windows removed; integrated into TradeDetailDialog with UI tabs for script definition + body; error visibility for load failures; QLineEdit for trade type code. |
| Merge swap/rates instrument into TradeDetailDialog | DONE | 2026-05-20 | 2026-04-07 | PR 2 of 6: standalone instrument management components removed; swap + rates instrument support integrated into TradeDetailDialog; new UI tabs for swap core + rates extensions; thread-safety fix in background lambdas. |
Decisions
- Final v0 sprint
- capture everything landed under v0 honestly; this is the closing chapter of v0.
Out of scope
- Anything explicitly carried forward to v1.
See also
None.