Skip to content

feat(chart): draw every same-exchange Auto Overview core's trades - #696

Merged
kirillDevPro merged 3 commits into
mainfrom
feat/chart-all-cores
Sep 22, 2026
Merged

kirillDevPro merged 3 commits into
mainfrom
feat/chart-all-cores

Conversation

@kirillDevPro

Copy link
Copy Markdown
Collaborator

What & why

In Auto workspace mode, the Full summary shows the whole group at once, but the chart's
closed-trade history stayed pinned to the one core the coin was opened on. Trades the same
account made on other cores were absent from the picture, with nothing on screen to say so.

  • A toggle on the chart strip (and the detached chart header) widens the history to every
    Full summary core trading on the same exchange as the chart's own core. Another venue is
    excluded on purpose — its prices are a different market — and so is a core whose venue cannot
    be named. Default off, per chart tab; visible only in Auto + Full summary.
  • The toggle sits in its own section beside the coin field, not among the settings-popup icons —
    it changes what the chart shows, it is not a setting.
  • The corner caption reads <exchange> · all cores (<n>) while the pane draws more than its own
    core, decided by the same test the draw filter uses; the hover card names each trade's core.
  • One function resolves the admitted core set, and both the durable query and the per-pane draw
    filter consume that same vector, so the read and the drawing cannot disagree. An empty set
    sends NO_MATCH_CORE_UID, since an empty core list means "all cores" to the report filter.

How to verify

  • cargo test --workspace; cargo test -p moon-ui-gpui --test theme_contract.
  • In the app: Auto mode, Full summary, open a coin, press the new toggle — arrows from the other
    same-exchange cores appear, the caption switches to the exchange and count, and toggling off
    restores the single core's name at once.

Known gap: the same-exchange boundary is verified by review only; admitted_history_cores
takes a Backend, which has no test seam today.

In Auto workspace mode, the Full summary state shows the whole group at
once, but the chart's closed-trade history stayed pinned to the single
core the coin was opened on. A trade the same account made on another
core was simply absent from the picture, with nothing on screen to say
so.

A toggle on the chart strip and the detached header now widens the
history to every Overview core trading on the SAME exchange as the
chart's own core; the hover card names the core each trade came from.
Another venue is excluded deliberately - its prices are a different
market and its arrows would land beside the candles - and so is a core
whose venue cannot be named. Default off, per chart tab, so an untouched
chart behaves exactly as before.

One function resolves the admitted core set and both the durable query
and the per-pane draw filter consume that same vector, so the read and
the drawing cannot disagree. The order-lines layer keeps its own
single-core gate: a foreign record is forced "not lined" and keeps its
arrows rather than widening that layer.

The multi-core read sends NO_MATCH_CORE_UID for an empty admitted set,
since an empty core list means "all cores" to the report filter.
The toggle shipped inside the run of settings-popup icons, where it read
as a sixth popup rather than as what it is: a mode switch that changes
which trades the chart draws.

It now stands in its own section between the coin field and the icon
run, with the strip's own rule beside it - next to the other control
that answers "what am I looking at". Section and divider share one
Option, so a chart outside Auto Overview, where the toggle does not
exist, gains neither an empty group nor a second rule.

Both toolbars move together: the docked strip and the detached chart
header. The new section is deliberately left out of the pair of groups
that dismiss an open coin search on press - that contract stays at
exactly two listeners.
With the all-cores toggle on, the chart drew the closed trades of every
Full summary core on the exchange, while its corner caption still named
the one core the coin was opened on - so the picture read as that core's
trades alone.

The caption now reads "<exchange> · all cores (<n>)" whenever the pane
draws more than its own core, decided by the same owner-and-size test
the draw filter applies, so a compare pane that does not own the request
keeps its own name. It is substituted at the one place the caption's
inputs are assembled, beside the screenshot substitution, and wins over
it: that one hides account labels and this string carries none.

Installing or clearing the admitted set now forces the order sync that
rebuilds the caption, so the name moves with the arrows instead of
waiting for an unrelated order revision.
@kirillDevPro
kirillDevPro merged commit fe79481 into main Sep 22, 2026
8 checks passed
@kirillDevPro
kirillDevPro deleted the feat/chart-all-cores branch September 22, 2026 18:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant