feat: ship Mac Pulse internet monitoring and v1.3.0 hardening - #14
Conversation
Add opt-in low-frequency networkQuality sampling, cached measurements with exact timestamps, additive D1 storage, history/CSV support, a bilingual dashboard panel, and operator documentation.
|
You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool. What Enabling Code Scanning Means:
For more information about GitHub Code Scanning, check out the documentation. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ba92e93682
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| const items = rows.map(mapSample).sort((left: ReturnType<typeof mapSample>, right: ReturnType<typeof mapSample>) => | ||
| Date.parse(left.reportedAt) - Date.parse(right.reportedAt) || left.id - right.id); |
There was a problem hiding this comment.
Paginate in the same order used to render history
When an outage queues more than MAX_REPLAY_PER_RUN samples, each recovery run inserts a batch of old observations followed by the current sample, so IDs no longer follow reportedAt. Sorting only the returned page by reportedAt while the SQL still paginates by ORDER BY id DESC means the initial page can include old replayed samples while omitting newer observations with lower IDs; the chart and transition detector can therefore show false gaps until enough additional pages are loaded. Order and cursor the query by reported_at plus id, rather than reordering each ID-based page afterward.
Useful? React with 👍 / 👎.
Summary
networkQualitysampling with cached download, upload, latency, responsiveness, and measurement timestampsSafety and compatibility
Validation
npm ci --ignore-scriptsbuild reports zero known npm vulnerabilitiesStory coverage
Implements #15, #16, #17, #18, #19, #20, and #21. Stories remain open until their merge/release-specific acceptance criteria are verified.