Navigation: jump to a date, with a calendar marking days that hold data
@mrcsin is already working on this.
Since Sep 10, 2026.
Assessment
This issue has not been assessed yet.
Description
Why
Reaching a day three months back means dragging the minimap and hoping. There is no calendar, no date picker and no jump-to-date anywhere in the repository; the only absolute navigation is the Jump to Now button.
Wanted
- A window that takes a date and time and moves the view there. It cancels sticky, and it shares the navigation API added by #71.
- A calendar in that window marking which days hold data, so the operator sees the gaps instead of landing in one. A day with no rows is drawn as empty.
The part that needs a decision
Day coverage has no API. IDataProvider has five members and none of them answers it (SemiPlot.Core/Data/IDataProvider.cs:7-27); the only coverage information in the whole system is the single first-and-last pair of ArchiveExtent.
Two sources, and they answer different questions:
Partition metadata. The archive is partitioned one per calendar day, tpYYYYmMMdDD, created automatically (docs/architecture/scada-archive.md:54-60). Reading pg_class is cheap and constant-cost. It says a partition exists, which is not the same as holding rows, and says nothing per pen.
Aggregating the rows. Accurate, and constrained by the index: the primary key is (id, l, t) with id leading (scada-archive.md:47-50), so a scan by time without a pen list degenerates, and ExplainPlanTests forbids a sequential scan on those partitions (docs/architecture/bench.md:235). Over a year that is 365 partitions to touch.
Partition metadata is the cheap default and honest if the calendar means "the archive was running that day" rather than "this pen has data". The plan should say which sentence the shading makes, because the operator will read it as one of them. #76 supplies the cost of the accurate version.
Related specification: docs/architecture/trend-feature-spec.md:38-40 (TM-6, SHOULD), the calendar half.
- 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