Chart: time markers stored in the archive
@mrcsin is already working on this.
Since Sep 10, 2026.
Assessment
This issue has not been assessed yet.
Description
Why
An operator needs to mark a moment: the start of a process, an event worth returning to. Nothing in the viewer does that today.
Wanted
- A vertical line placed at a timestamp, scrolling with the chart and leaving the view when the window moves past it.
- Stored in the archive database (Semiteq/SemiBase#10), so it survives a restart and is visible from another station. Writing goes through the
semiplot_writerrole (Semiteq/SemiBase#8). - Draggable to another time, deletable from a context menu.
- Every pen shows its value where the marker crosses it.
What exists to build on
The delta tool is the structural precedent and covers three of the four parts:
- Two
VerticalLineplottables, created once, pinned to the shared bottom axis, hidden by default (Chart/TrendChartView.axaml.cs:330-339). They are the only vertical lines in the repository. - Placement routed through
ChartPressRouter(Chart/ChartPressRouter.cs:21-23) into a pure Core model (Core/Trends/DeltaCursorModel.cs:15-26). - Re-projection on every window change (
TrendChartView.axaml.cs:347-363). - Value at a crossing already exists as a pure function:
CursorReadoutModel.ReadAtinterpolates each pen's centre and returns null in a gap or outside the range (Core/Trends/CursorReadoutModel.cs:5-30).
Genuinely new: dragging a plottable, which has no precedent since the only drag is a whole-canvas pan; a context menu, of which the repository has none; and persistence.
To settle
- How many markers, and what happens when the window holds a hundred of them.
- Whether a marker carries a label, and where it is drawn.
- Whether a marker is the bookmark of
docs/architecture/trend-feature-spec.md:144-146(CU-4, SHOULD, placed by double-click in cursor mode), or the annotation thattrend-interaction.md:84,282declares out of scope. Persistence pushes it towards the second, so the docs need a decision recorded either way. - Whether markers reload when another station adds one, or only at startup.
- Dominant language
- C#
- Stars
- 0
- Forks
- 0
- Avg merge
- 18m
- Merged PRs (30d)
- 42
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Semiteq/SemiPlot
-
Difficulty 5/5 Over a week Newbie friendliness 25/100
-
question
-
enhancement
-
enhancement
-
enhancement
All issues in Semiteq/SemiPlot
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
-
:watch: Not Triaged 11.0 fundamentals/subsvc
Difficulty 2/5 1-3 hours Newbie friendliness 92/100
dotnet/AspNetCore.Docs#37699 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
SubtitleEdit/subtitleedit#15108 · 1 comment ·
-
area/docs-content Bug pulumi/docs
Difficulty 1/5 1-3 hours Newbie friendliness 94/100
-
agentic-workflows untriaged
Difficulty 2/5 1-3 hours Newbie friendliness 76/100