Task: Group Market Simulator feed tree by collection
This page documents a task in the Synthetic data collections: Basic and Realistic story. It captures the goal, current status, acceptance, and any notes or results.
Goal
Today the Market Data Feeds tree's top-level node is a feed-source
label ("Synthetic FX Spot: EUR/USD") with all configured pairs
flattened underneath regardless of collection. Since every entry can
be enabled simultaneously across collections, group the top level by
collection instead (Basic / Realistic), with pairs nested under
their owning collection — in
projects/ores.qt/synthetic/src/MarketSimulatorWindow.cpp.
Status
| Field | Value |
|---|---|
| State | DONE |
| Parent story | Synthetic data collections: Basic and Realistic |
| Now | Nothing. |
| Waiting on | Nothing. |
| Next | Nothing. |
| Last touched | 2026-07-03 |
Acceptance
- With both
BasicandRealisticcollections configured, the tree shows two top-level nodes (one per collection), each containing its own pairs. - A pair enabled in both collections is visually distinguishable (two separate tree entries, not merged/ambiguous).
Plan
MarketSimulatorWindow builds its tree directly from real ores.synthetic.folder
rows (fetched via get_folders_request) rather than any string-parsing:
Synthetic (root) > Collection > asset class > instrument type > Feed.
Collections without a backing folder row yet (manually created, before the
publish-from-dq path creates one) still surface at the top level so
they're never silently invisible.
Notes
PRs
| PR | Title |
|---|---|
Review
| Comment summary | File | Decision | Notes |
|---|---|---|---|
Result
Verified via the QA Validation Runner (scenario_market_simulator_tree_grouping.org):
tree shows two top-level nodes, Basic (11 feeds) and Realistic (13
feeds), each with its own distinct pairs, no cross-contamination. PASS on
all steps.