IrCurveGenerationConfigDetailDialog's index_family combo doesn't list the new RFR/IBOR families
Table of Contents
This page is a capture in the inbox bucket of the product backlog — a pre-sprint idea, not yet pulled into a sprint as a story.
What
IrCurveGenerationConfigDetailDialog.cpp's setupIndexFamilyCombo()-
style block populates ui_->indexFamilyCombo with a hand-written list
of addItem calls – confirmed via codegen entity generate
ir_curve_generation_config --diff: a full regen from the current
.org model would delete this population entirely (along with a
sibling updateTenorComboForIndexFamily() method and a service-layer
validate_index_family composite validator), meaning none of these
are driven by any documented paste-block seam – they're direct hand-
patches on generated files. Task C80D94BB widened index_family's
allowed values from 6 to 22 (via the .org model's static_combo
field list and SQL Checks table, generated narrowly via
--address ores.sql.schema specifically to avoid clobbering these
hand-patches), but could not safely propagate that to the Qt combo
without either running the destructive full regen or hand-editing the
generated file again (both out of bounds).
Why
The interactive "create a new IR curve config" flow in the Qt Market
Simulator still only offers the original 6 families
(libor=/=euribor=/=sofr=/=estr=/=sonia=/=tona) in its dropdown, even
though the schema, SQL publish pipeline, and DQ seed data now support
22 (see task C80D94BB, story C29FE5A3). A user manually creating an IR
curve config for e.g. AUD/AONIA via the Qt dialog cannot select it.
Proper fix: add a real paste-block seam for Qt static-combo population
(and, separately, for service-layer composite validators) to the
codegen templates – mirroring the mdi_window=/=controller
header+impl seam pattern already established for toolbar
actions/signals – then convert these three hand-patches onto it.
References
projects/ores.qt/synthetic/src/IrCurveGenerationConfigDetailDialog.cpp(the hand-patched combo population)projects/ores.synthetic/core/src/service/ir_curve_generation_config_service.cpp(validate_index_family, same problem)projects/ores.synthetic/modeling/ores.synthetic.ir_curve_generation_config.org(the entity model;index_familyis now 22 values)projects/ores.codegen/docs/paste_blocks_in_codegen.org(existing paste-block catalogue to extend)- Task: Fix realistic_2026 IR curve seed data / index_family enum mismatch