Changelog

New features, improvements, and fixes.

v10.7.0

Log Downloads and Node Cleanup

Take any log with you as a file, and keep a hub's node list honest. This release also clears out the crashes and stale state that came from nodes joining and leaving while their connections were still settling.

Download any log

The app log, the network log and the node log now each have a download button in the UI.

Nodes that leave are removed from the hub server

A node that leaves a hub is now removed from the hub server's node list instead of lingering there. If the hub cannot be reached, the node asks whether to leave anyway and keeps retrying the removal in the background for up to 7 days.

Read more here

Hub servers also prune nodes that have been offline for longer than hubServer.pruneOfflineNodesAfter, which defaults to 30 days. Set it to 0 to never prune.

Read more here

Improvements

  • Bundle size / Swapped the code editor for a smaller one, cutting the size of the UI bundle.

Fixes

  • Dashboard / Fixed the dashboard reporting a successful disconnect from a hub when the disconnect had in fact failed.
  • Hub / Fixed a node misreporting its hub connection state. A node signed in to a hub it had not connected to yet now reports Disconnected rather than Unauthenticated, so a slow or broken link is no longer indistinguishable from a node that never joined a hub.
  • Logs / Fixed an error when clearing log entries in the network log panel.
  • Networks / Fixed a network monitor crash when a new interface reused the name of an old one.
  • Pipelines / Fixed the pipelines table resetting to the first page when a pipeline's running state changed while you were on a later page.
  • Pipelines / Pipeline runs without coordinates now get auto layout.
  • Pipelines / Fixed a stability issue where metrics and KPIs would fail to load.
  • UI / Fixed a crash when changing the type of a raft stream.
v10.6.0

Mutual TLS and Load Balancing

Control who is allowed to join your hub, and spread a stream across several outputs instead of one. This release also makes sure every node ends up running the network you configured, whether or not it was online when you made the change.

Mutual TLS between nodes and hub servers

A node can now prove who it is with a certificate you issued, and a hub can be set to accept only nodes that carry one. Anything without a valid certificate is turned away, so joining a hub is no longer just a matter of knowing the address.

Read more here

Distribute packets across outputs

The new load balancer component splits a stream across several outputs, and you decide how much each one carries. Send most of a feed down your primary path and keep a smaller share on a backup, or spread it evenly across three links. Pipelines can also start dropping packets once their buffer grows past a limit you set, so a congested pipeline sheds load instead of piling up delay.

Improvements

  • KPIs / A KPI value that cannot be worked out now shows a dash with the reason in a tooltip, instead of an error.
  • Telemetry / You can now choose how often telemetry is collected.

Fixes

  • Networks / Nodes follow their network more closely. Deleting a network, or removing a node from the hub, no longer leaves pipelines running behind, even when the node was offline at the time, and a node that has no instance yet gets one when the network updates.
  • Pipelines / Pipelines deployed as part of a network now report their real state in the UI and the CLI, stop when deleted, toggle the right way, and no longer get stuck waiting to restart.
  • Blueprints / A blueprint that fails to compile no longer takes the network's other running pipelines down with it, and a blueprint a network is built from can no longer be deleted out from under it.
  • Streams / Event streams no longer miss changes made right after a stream is opened, and clients can wait for a subscription to be live before acting on it.
  • Hub / Several crashes during startup and shutdown are fixed, and a request made right after a node connects no longer fails for no reason.
v10.5.0

Reliability and Observability

Find and fix problems across your networks and pipelines faster. This release surfaces failures where you are already looking, collapses noisy logs into something readable, and makes pipeline runtime behavior more predictable under load.

See network and pipeline errors at a glance

Networks and their managed pipelines now make errors visible without digging. The network list shows how many pipelines have failed and how many nodes are missing carriers, and on the network page the relevant tab titles flag failed pipelines and log errors. Go straight to what needs attention instead of opening each pipeline to check.

Deduplicated pipeline logs

Pipeline logs now aggregate duplicate entries into a single line with a count. Bursts of identical messages no longer bury the events that matter, making it far easier to read what a pipeline is actually doing.

Read the API reference here.

Download logs over gRPC

New gRPC endpoints let you download the full log for the application, a pipeline run, a network, or a network instance. Pull logs into your own tooling for archival, support, or offline analysis.

Improvements

  • MTU / Improved automatic component MTU discovery so components settle on the correct MTU more reliably.
  • Pipelines / Improved memory management of pipeline components for more deterministic behavior when many components are running.
  • Pipelines / A pipeline now shuts down mid-run if a UDP component is bound to a network interface that is not available on the OS, instead of continuing in a broken state.
  • Pipelines / A pipeline's startup policy can now be set over gRPC.
  • Server / The app can now be started with an HTTP server on port 3001.

Fixes

  • Networks / Fixed being unable to set a network node carrier's bandwidth priority over gRPC.
  • Pipelines / Fixed lifecycle handlers during pipeline shutdown incorrectly flagging the pipeline with an unexpected-failure status.
  • Pipelines / Fixed pipelines not printing their log messages on fatal shutdown.
  • UI / Fixed pipelines sometimes not loading in the UI.
v10.4.2

Improved Stability

NanoPing 10.4.2 is a pure stabilization release. The hub server and control plane are steadier under load, and the pipeline frontend behaves correctly when moving between tabs or resizing panels. A handful of underlying dependencies have also been refreshed for reliability.

v10.4.1

Faster Template Deployments and Clearer Pipeline Status

NanoPing 10.4.1 speeds up template-based deployments and makes the pipeline list easier to read at a glance. Template pipelines now start in parallel, the pipeline list surfaces loading and error states for status, and log lines without a message field are no longer silently dropped.

Template Deployments

Template pipelines can now be started in parallel instead of one at a time. Deployments that fan out to many instances finish substantially faster, so rolling a fresh template into production no longer waits on a serial startup chain.

Pipeline List Status

The pipeline list now shows explicit loading and error states while fetching pipeline status, instead of leaving rows ambiguous when a fetch is in flight or has failed. Scanning a long list of instances becomes easier because you can tell at a glance whether a status is still loading, failed to load, or up to date.

Logging

Pipeline log lines that arrived without a message field were previously discarded. The full log line is now used as a fallback for the message, so nothing gets silently dropped on its way through the logging pipeline.

v10.4.0

Cleaner Logs and a Goodbye to Deprecated Components

NanoPing 10.4.0 sharpens the tools you reach for when something goes wrong. Pipeline log timestamps render correctly again, structured JSON is back in the logging protobuf, networking handles interfaces with multiple local addresses, and a long list of deprecated components has been retired for good.

Pipeline Logs

Timestamps in the log viewer now match when events actually happened, so tracing a problem across components lines up with what you see in the pipeline. Valid JSON log lines are once again carried through the protobuf logging message data field, restoring the structured payloads that downstream tools rely on.

Pipeline Networking

Pipeline networking now supports interfaces that expose multiple local addresses, so hosts with multi-homed NICs or multiple IPs bound to the same interface work without extra configuration.

Removed Deprecated Components

A set of components marked deprecated in earlier releases has now been removed. Pipelines still using any of the following should migrate before upgrading:

  • Bandwidth Constrictor
  • Bandwidth Constrictor Sequencer
  • ChaCha20 Decrypt
  • ChaCha20 Encrypt
  • Delay Fixed
  • Delay Fixed Sequencer
  • Delay Jitter
  • Gilbert Elliot Loss
  • Kodok Decoder
  • Kodok Encoder
  • Periodic Burst Loss
  • Random Burst Loss
  • Throughput Tracker
  • Throughput Traffic Source
  • Timed Burst Loss
  • UDP
  • Uniform Loss
  • Uniform Loss Sequencer
v10.3.0

Pipeline Auto-Layout

NanoPing 10.3.0 brings automatic layout to pipeline diagrams. Pipelines without saved coordinates now arrange themselves into a clean, readable structure, and a new button lets you re-layout any diagram on demand.

Pipeline auto-layout

Pipeline Auto-Layout

Open a pipeline that has no saved coordinates and the diagram now lays itself out automatically, so you see a clean structure instead of stacked nodes at the origin. For diagrams that have drifted into a tangle over time, the new "Auto-layout" button in the pipeline diagram rearranges everything in one click.

Fixes

  • gRPC optionals — The gRPC bridge for network instance handling in 10.2.1 used protobuf optional fields instead of oneof. This has been reverted. If you already integrated against 10.2.1, you will need to update your code.
  • gRPC Metrics — Fixed streamed pipeline metrics missing their timestamp.
v10.2.1

Pipeline Controls and Remote Management

NanoPing 10.2.1 focuses on making pipeline management simpler. Pipelines can now be controlled and configured from a single dashboard, including remote pipelines across multiple nodes. Uploaded configs are automatically migrated to match your NanoPing version. This release also adds a jitter buffer to the Raft component for smoother video delivery and makes log UUIDs clickable for easier navigation.

Manage all your pipelines from a single dashboard

Start and stop any pipeline, including network pipelines, directly from the pipeline list or pipeline view. Toggle a pipeline on or off right where you see it, no more navigating through multiple screens to control pipeline state. The auto-start toggle lets you configure whether a pipeline should launch automatically when its node comes online.

Pipeline dashboard

Create, view, edit, and delete remote pipelines from a single dashboard. Teams managing distributed deployments across multiple nodes can now handle their full pipeline configuration from one interface, removing the need to switch between nodes to manage pipelines.

Raft Jitter Buffer

Raft jitter buffer

The Raft component now includes a jitter buffer that stabilizes the output data stream. Components downstream, such as video decoders, can function more reliably with consistent packet timing.

UUID Links in Log Viewer

UUID links in log viewer

UUIDs in log output are now clickable links. Click any entity UUID to jump directly to that pipeline, pipeline run, node, or network. Run IDs are now also reflected in the URL, making it easy to share a link to a specific run.

Hub Status Indicator

Hub status indicator

A new status indicator in the dashboard footer shows your hub connection state at a glance. No need to navigate away from your current view to check connectivity.

Pipeline Migration on Upload

Upload a pipeline config and the system automatically migrates it to match your current version of NanoPing. No manual version adjustments needed.

Fixes

  • KPIs — Fixed issue where adding new KPIs during a run would not display values until the pipeline was restarted
  • KPIs — Added support for missing KpiEvaluatedMetric value types
  • Nodes — Fixed nodes not updating on hub server when editing node settings such as name and metadata
  • Nodes — Node name now automatically updates in the nodes list and node selector when changed
  • Splitter component — Fixed issue with packets being duplicated with wrong annotations such as the wrong destination address