Task: Group Market Simulator feed tree by collection

Table of Contents

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 Basic and Realistic collections 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.

Emacs 29.3 (Org mode 9.6.15)