Story: Source-agnostic market data control panel

Table of Contents

This page documents a story in Sprint 21. It captures the goal, current status, acceptance criteria, and the tasks that compose it.

The control plane of the Market Data Architecture.

1. Goal

A generic Qt control panel to manage market data feeds — list, start/stop, monitor — driven by the feed-config registry and a source-agnostic control contract, with no knowledge of what produces each feed.

2. Status

Field Value
State DONE
Parent sprint Sprint 21
Now Nothing.
Waiting on Nothing.
Next Nothing.
Last touched 2026-06-28

3. Acceptance

  • A Market Data menu entry opens a control panel listing feeds with state (running/stopped/health), read from the feed-config registry. (C1)
  • Start/Stop actions drive a feed via a source-agnostic control contract (toggle feed-config enabled=/=auto and/or emit a control message the owning producer handles).
  • For the PoC slice it controls the synthetic FX spot feed; data appears/stops in the chart accordingly.
  • No synthetic-specific assumptions in the panel; a new producer needs no panel change.

4. Tasks

Task State Start End Description
Qt UI to map system feeds to raw producers DONE   2026-07-02 A Qt screen to view system market-data feeds and choose which raw synthetic producer each is bound to.
Qt FX spot grid for live system feeds DONE   2026-07-02 A one-row-per-system-feed grid showing live mid, change and status, flashing green/red on each tick.

5. Decisions

6. Out of scope

7. Result

MarketSimulatorWindow provides start/stop control over synthetic feeds bound to system feed slots. FxSpotGridWindow provides a live one-row-per-feed grid with mid price, direction colouring, and staleness badge. Both delivered in PR #1386.

Emacs 29.3 (Org mode 9.6.15)