2026-11-03 11:26:40 +01:00
|
|
|
# Tasks
|
|
|
|
|
|
|
|
|
|
## 1. Backend
|
|
|
|
|
|
|
|
|
|
- [x] 1.1 Replace the index discovery of `InfoService.storageEntry()` with the time field map of design D6 (the
|
|
|
|
|
`global` scope for `analytics_daily`, `firstSeenAt` for `nodes`, no entry for `tracks`,
|
|
|
|
|
`track_subscriptions` and `track_stats`). Verify with the info unit tests and an integration test of "Oldest per collection" that
|
|
|
|
|
runs `explain()` on every query: one document examined, `COLLSCAN` only on `nodes`.
|
|
|
|
|
|
|
|
|
|
## 2. UI library
|
|
|
|
|
|
|
|
|
|
- [x] 2.1 Set the x-axis `minInterval` from the label unit, the y-axis `minInterval: 1` for all-integer data and the
|
|
|
|
|
closing point of step series in `timeSeriesOption()`. Verify with chart-options unit tests of the three scenarios
|
|
|
|
|
of "Time-series chart fixed to the range".
|
|
|
|
|
- [x] 2.2 Make `ovd-skeleton` invisible for its first 300 ms while keeping its height, and drop the fade under
|
|
|
|
|
`prefers-reduced-motion`. Verify with a component test of the delay and an e2e check that a fast mocked response
|
|
|
|
|
paints no skeleton bar.
|
|
|
|
|
- [x] 2.3 Round `formatDuration()` to the smallest unit shown, add the `floor` mode and use it in `ovd-duration` while
|
|
|
|
|
running. Verify with formatter unit tests of "Rounded durations" and a duration component test of "Running and
|
|
|
|
|
then ended".
|
|
|
|
|
- [x] 2.4 Add `BROWSER_LABELS` and `clientOsLabel()` to `format/labels.ts`, export them, and label the browser donut
|
|
|
|
|
and its table with them. Verify with label unit tests of "Browser keys" and "Reported OS" and an Analytics
|
|
|
|
|
component test of "Sessions without a browser".
|
|
|
|
|
- [x] 2.5 Render the footer version as plain text. Verify with the sidenav footer test.
|
|
|
|
|
- [x] 2.6 Hint "No room ended in this range" on both room averages when `roomsEnded` is 0. Verify with Analytics
|
|
|
|
|
component tests of "No room ended yet" and "Missing average".
|
|
|
|
|
- [x] 2.7 Rename the Egress page tile "Total duration" with `INFO_TEXTS.egressTotalDuration`. Verify with the Egress
|
|
|
|
|
page test of the tiles and the info tip.
|
|
|
|
|
- [x] 2.8 Add the Total row and the "—" tooltip to the About storage table. Verify with About tab tests of "Storage
|
|
|
|
|
total" and "Collection without an oldest date".
|
|
|
|
|
- [x] 2.9 Add the locked `tracks/:trackSid` route, and map `track` in `exactIdTarget()` to it. Verify with a global
|
|
|
|
|
search test of "Exact track ID" and an e2e test of "Track route in CE".
|
|
|
|
|
|
|
|
|
|
## 3. End-to-end and docs
|
|
|
|
|
|
|
|
|
|
- [x] 3.1 Update the e2e fixtures and screenshots whose durations or labels change, and run `./dashboard.sh e2e`.
|
|
|
|
|
Verify that it passes.
|
|
|
|
|
- [x] 3.2 Update the library README and `AGENTS.md` notes that list the exported labels or the routes, if any. Verify by
|
|
|
|
|
reading them against the change.
|
|
|
|
|
|
|
|
|
|
## 4. Integration check
|
|
|
|
|
|
|
|
|
|
- [x] 4.1 Run `./dashboard.sh check` and `./dashboard.sh test-integration`. Verify that both pass.
|
2026-11-03 11:40:21 +01:00
|
|
|
- [x] 4.2 On a local deployment with `./dashboard.sh dev`, check an Analytics chart of a 15-minute custom range, the
|
2026-11-03 11:26:40 +01:00
|
|
|
About table and a fast page load against the scenarios. Verify by screenshots.
|