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.

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.

Status

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

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.

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.

Decisions

Out of scope

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)