Pinescore PULSE

Roadmap and updates

A public log of what changed and what we are building next.

Roadmap

What we’re building next. As items ship, they move into the daily updates below.

  • Windows .NET agent: MSI + bootstrapper that injects the install key and then scrubs it.
  • Linux agent: systemd service, packaged for common distros, same API contract as Windows.
  • Edge key management UI: mint, rotate, expire, and audit install keys per tenant.

Updates

2026-02-08

  • Ops: added an ops:scheduler-status command to surface scheduler heartbeat for SSL scan evaluation and polling.
  • Reliability: enabling SSL monitoring now queues an immediate eligibility evaluation so new nodes start scanning without waiting for the next background evaluation window.
  • Nodes UX: the /nodes legend is now 3 columns, with SSL/TLS grouped into its own column for easier scanning.
  • Analytics: app pages now use consistent titles like Pulse · Nodes · All Nodes so views are identifiable in analytics tables.

2026-02-09

  • Nodes UX: when you hit your plan’s node limit, “Add node” now explains the limit and offers clear next steps (upgrade or disable nodes), instead of letting you start a workflow that can’t complete.

2026-02-05

  • Edge agents are easier to roll out: you can now download the Windows Edge Agent installer directly from the app (top-right user menu → “Download Edge Agent”) and install it with no prompts or manual config.
  • Secure one-click onboarding: each download is tenant-bound with a short‑lived, single‑use install key and site name (and the filename includes your tenant name), so the agent registers automatically on first start.
  • Reliability hardening: agent ingest is more resilient and diagnostic logging is minimal by default.

2026-02-06

  • NOC dashboard reliability: the “Updates interrupted” overlay no longer triggers just because an Edge Agent record exists; it only appears when you have monitored agent-origin nodes and the associated agent hasn’t checked in recently.

2026-01-28

  • Continuous SSL/TLS posture monitoring is now available for eligible nodes (public FQDNs) using an external assessment API, with privacy enforced and no third-party links shown in the UI.
  • Scans run only when eligible: results are treated as fresh for a configurable window and eligibility is evaluated on a fixed cadence so new nodes are picked up automatically.
  • Nodes UI now surfaces SSL posture: the nodes list shows an SSL grade shield inline with status plus a tooltip summary (certificate validity, days remaining, issues); node detail pages show SSL grade, TLS version and certificate expiry as compact chips next to status, with issues in a tooltip.
  • Node detail SSL chips now match existing chip styling, use the same shield-grade icon as the nodes list, and are ordered after the existing status and packet-loss chips.
  • Nodes page summary cards now use clearer icons for tenant score, offline count, and transitions.
  • The nodes legend now includes the SSL shield grading key (including grade T for certificate trust issues) so the colour and letter in the shield are easier to interpret.
  • SSL posture now generates real events (expiry thresholds, grade degradation and newly detected vulnerabilities) and impacts Pinescore via a capped SSL penalty that persists until superseded by a new scan.
  • SSL monitoring is opt-in: nodes must explicitly enable it before automated scans (or manual refresh) will run.
  • Enabling SSL monitoring now self-starts scanning: turning it on triggers an immediate eligibility check so you don’t have to wait for the next background cycle.
  • Edit Nodes is safer for bulk changes: the table now saves all row edits in one action (Save all at the top and bottom) to avoid accidental partial saves during mass editing.

2026-01-26

  • Overview is now snapshot-backed: tenant latency and route-change analytics are precomputed by scheduled tasks and stored in snapshot tables, so the /overview page stays fast and reliable even for very large tenants.
  • Active degradation is now paginated (5 items per page) so the overview stays scannable when many nodes are degraded.
  • Pinescore baseline is capped at 100 so nodes scoring 100 don’t show as “below baseline”.
  • Overview is more reliable for high-volume tenants: the Events timeline fetch is now bounded so large event payloads don’t trigger PHP memory errors.
  • Overview is more reliable for long-running tenants: group score summaries now load only the latest score per group (instead of the full historical table), preventing PHP memory errors.
  • Nodes load faster on very large tenants: the /nodes “recent checks” lookup is now bounded so it doesn’t scan a tenant’s full probe history.
  • Agent-probed nodes now score flaps correctly: agent ICMP sample flips are recorded as flaps, so flapping nodes won’t stay pinned at 100.
  • Agent-probed nodes now also reflect short-lived quality degradation (intermittent loss/jitter and near-miss instability) in their score even if the node stays online; platform-probed scoring is unchanged.
  • Node detail charts: the high‑resolution latency chart can now expand full-screen, with quick range presets and a custom from/to picker.
  • Analysis Heatmap helps you spot patterns quickly: see connection quality in 5‑minute blocks over a chosen window, with clear tooltips that explain what happened and show the numbers.
  • Analysis Comparison helps you prove correlation: pick a set of nodes and see a shared heatmap plus aligned latency charts on one page, with export to PDF for evidence packs.

2026-01-25

  • Fixed a platform probing stall where ICMP probes could run once and then stop scheduling, leaving new tenants stuck in “no data”.
  • Improved queue resilience: ICMP workers now tolerate longer ICMP batches without timing out under normal load.
  • Ops hardening: added a simple Horizon watchdog, restored dedicated ICMP batching dispatch and cleaned up log/journal disk growth that can cascade into Redis queue outages.
  • Improved node score Trends charts so they stay hour-based when stable while also plotting exact timestamps when the score changes, without dropping most of the 24h window due to history query limits.

2026-01-24

  • Manual nodes (public IPs/FQDNs) can now be probed from inside your network: when at least one Edge Agent is active, “Add Node” and “Edit Nodes” expose a Probe From selector (Platform or a specific Agent) so ping/traceroute/DNS can run on-prem.
  • Probing is exclusive per node: Platform-probed nodes are never sent to agents and Agent-probed nodes are never dispatched on the platform.
  • Node detail pages keep route signature hashes readable: long signatures now wrap instead of overflowing the UI.
  • Nodes list badges now indicate polling origin (Platform vs Agent) using distinct icons.
  • Node detail reachability now uses current NodeState (Online/Offline) instead of showing “Unknown” when the timeline has no state events yet.
  • Node detail headers now show polling origin (Platform/Agent) and the page title uses the node name without the “Node ·” prefix.
  • Node detail reachability chip is now colour-coded (Online/Offline/Unknown) for faster scanning.
  • Node detail pages now include a high-resolution 1h latency chart to surface short-lived spikes that can be lost in 24h bucketing.
  • High-resolution 1h latency charts now highlight packet-loss windows with stronger red bands and a legend entry.
  • Packet loss events are now de-noised: one event per packet-loss window, updated in place with the growing loss count instead of emitting one event per dropped packet.
  • Node detail pages show a packet-loss chip (daily total) next to reachability when the node isn’t down, so intermittent loss is obvious at a glance.
  • Packet loss chips are now interactive: click to open a correlation modal that clusters loss windows for correlation and shows a per-node timeline of loss duration with exact start times; the window dropdown is scoped to the current node.

2026-01-19

  • Public (server-run) node profiling is more reliable under load: ICMP and traceroute probe jobs are routed onto dedicated queues so new nodes get their first samples promptly instead of waiting behind unrelated work.
  • Probe throughput scales better at high volume: ICMP dispatch supports queue backpressure (to prevent runaway enqueue) and new database indexes improve due-probe selection and recent-run lookups.
  • Nodes now show staged LTAs (1h to 1d to 7d to 30d) so you get a useful baseline quickly that converges to a 30‑day baseline over time.
  • Drift badges no longer wrap awkwardly for large values; the label shortens automatically to keep the chip readable.
  • Positive latency drift now emits node events (latency.drift) after consecutive detections, so significant drift spikes are visible in the timeline even if the node stays online.

2026-01-18

  • Marketing site live stats show data immediately and then reconnect as live values arrive, so the counter never stalls during a cold start.
  • The SaaS app now injects Google Analytics when a measurement ID is provided, keeping analytics configuration outside the codebase.

2026-01-16

  • Pulse Edge ingest is more resilient: probe-runs are validated and normalised more consistently (ICMP latency mapping, traceroute route_signature generation), with new route.signature_changed and packet.loss events.
  • Scoring stability improved: baseline and flap logic aligns with legacy behaviour, with ICMP gating to keep scoring consistent.
  • Docs and marketing site were refreshed: navigation was simplified, the /roadmap/ page is linked from the header, roadmap cards use the standard padding, dropdown styling matches the header and GA4 tracking was added site-wide via a single SSI include injected into every page’s <head>.