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.

Emacs 29.1 (Org mode 9.6.6)