Skip to content

What's New

Notable, user-facing changes to Pulse — new features, improvements, and fixes you'll actually notice. Newest first. Follow the links for full details in the feature documentation.

September 8, 2026

New

  • Filter monitors by data source — The monitor list now has a Data source filter so you can show every monitor reading a specific device at once, making it easy to select all and mute or act in bulk during a maintenance window. See Monitors.
  • Scope incident reports to specific data sources — Report configurations now accept a data-source filter; generated reports then cover only incidents raised by monitors that read those devices. See Reports.

Fixed

  • Muted heartbeat monitors now reflect their true health state — A muted heartbeat monitor previously stopped being checked and stayed frozen in its last-known state even when the heartbeat stopped arriving; it is now evaluated continuously and will turn unhealthy when overdue, so the status indicator stays accurate without the monitor raising an incident.
  • Condition monitors used the wrong sampling interval for freshness checks — Monitor freshness was calculated from a field on the data point record instead of the data source, which could cause the monitor to treat on-time samples as stale. The correct data-source interval is now used.
  • AI Canvas and MCP monitor listing silently ignored type filters — A mismatched argument order caused type filters to be dropped and other arguments to shift position, returning incorrect monitor lists; the tool now applies all filters correctly.

Removed

  • Legacy heartbeat monitor edit page — The /monitors/heartbeat/:id URL now redirects to the monitor list; heartbeat monitor settings are managed from the data source they belong to.

September 6, 2026

Fixed

  • Tag filter rows stay in place while selecting — In the monitor list's tag filter, rows used to reshuffle as you ticked boxes because the list re-sorted against live match counts; they now hold their position for the entire time the picker is open and only re-rank when you close and reopen it. See Monitors.
  • Occurrence history on upgraded monitors restores automatically — After upgrading an appliance where node, endpoint or heartbeat monitors were converted to condition monitors, Pulse now migrates the remaining resolved incident history in the background at a steady pace, so the full occurrence list gradually becomes visible without any extra action.

September 5, 2026

New

  • AI Canvas and MCP can inspect condition graphs and incident timelines — Two new MCP tools let your AI assistant go deeper into investigations: get_condition reads the full condition graph a monitor alerts on and shows what every node currently evaluates to and when that value began — answering which input triggered an alert; list_incident_events retrieves an incident's complete timeline: monitor failure and recovery decisions, every notification delivery and to whom, acknowledgements, escalations, and resolutions. See AI Canvas and Organization Settings.

Fixed

  • On the appliance, crash-looping services are now detected as unhealthy after an update — If a service was broken by an update but configured to restart automatically, a single snapshot of failed units would miss it — the service would cycle endlessly through "activating" and the update report would say "Update successful" despite the broken daemon. The appliance now samples systemd's state repeatedly over a short window and counts a service as failing if it is caught in a crash loop during that time, ensuring the post-update health report reflects services that are actually broken.

September 4, 2026

New

  • MCP clients now connect via OAuth — Instead of manually creating access tokens, AI assistants and tools connect to Pulse's MCP endpoint via browser-based OAuth: add the endpoint URL (shown in Organization Settings → MCP Clients) to your client such as Claude Code, then approve access in the consent screen that opens in your browser. Organization admins can see every authorized client, who authorized it, and when it was last used, and can revoke access at any time.
  • AI Canvas and MCP can list data sources — The AI assistant can now list your organization's data sources and their data points, making it possible to ask which sources are configured and which data points have no monitors watching them. See AI Canvas.

Fixed

  • Upgrading an appliance with a long incident history now completes — On appliances carrying months of incidents, the upgrade that converts node, endpoint and heartbeat monitors into condition monitors could run for over an hour and be rolled back before it finished, leaving the appliance on its old version. The upgrade now rewrites only the incidents that still need their new key — open ones, and resolved ones still inside their monitor's reopen window — instead of the entire history, and the appliance allows up to an hour for the database upgrade before intervening. Plan a maintenance window of up to an hour for this upgrade if your appliance has a long incident history.
  • MCP data graphs no longer invent readings between samples — In MCP responses, ASCII sparkline charts previously stretched sparse series to fill the full plot width by interpolating between actual samples; they now render at the series' true resolution so a sparse dataset is shown narrower rather than filled with fabricated values.

September 2, 2026

New

  • Name and describe your data points — You can now give any data point a human-readable name and description; the name appears throughout the app wherever the data point is shown, making it easy to identify readings at a glance.

Improved

  • Monitor count on data-point rows — On a data source's detail page, the monitor column now shows a single "X monitors" button that opens a searchable picker instead of individual links per monitor, keeping the page tidy for data points with many monitors.
  • Inline hints in the condition editor — "Valid for" and window duration fields in the condition editor now have ⓘ icons that explain the field's purpose and accepted format, visible without leaving the editor. See Monitors.
  • AND/OR gate hints — AND (All) and OR (Any) gate nodes in the condition editor now display an ⓘ that describes their logic, making the difference between the two types immediately clear. See Monitors.
  • Sparse data notice in condition preview — The condition preview now flags when a signal has samples for only part of the selected range, so a limited backtest result is clearly labelled rather than mistaken for a full one. See Monitors.
  • Tag badges show the full label on hover — When a tag label is truncated in a list row, hovering the badge now reveals the complete label in a tooltip.

Fixed

  • Interface labels follow the selected language — The "Close" button on dialogs and side panels, and the sidebar toggle button, now announce in the user's active language rather than always using English.
  • Filter chips hide counts on paginated lists — On the Data Sources page, filter chips no longer show misleading counts when the full result set spans more than one page; the chip shows only the label in those cases.

September 1, 2026

New

  • Monitors panel on data source pages — Data source detail pages now show a "Monitors" section listing every monitor that alerts on the source's data points, with a link to open each one directly.
  • Approximate history for new objectives — When you create an objective, Pulse now backfills an approximate compliance history over the window before creation and labels it accordingly, so you see a meaningful picture immediately instead of "not enough data" for most of the first window. See Objectives.
  • Activate-on-import toggle in monitor CSV import — The CSV import wizard now has a toggle to choose whether imported monitors are activated immediately after the import or left paused for review in the monitor list. See Monitor CSV Import.

Improved

  • Escalate an incident to an on-call schedule — The manual "Escalate…" dialog now offers on-call schedules alongside users and teams, the same recipients an escalation policy step takes. The schedule pages whoever is on call at that moment, and the timeline entry names the schedule you picked. See Incidents.
  • Duration column accepts human-readable values — In the monitor CSV import, the duration field now accepts values like "5m" or "30s" instead of requiring a raw number of seconds. See Monitor CSV Import.

Fixed

  • OPC UA browse retry after failure — When the "Add data point" browse dialog fails to load nodes from an OPC UA device, a retry button now appears so you can try again without closing the dialog.
  • OPC UA browse dialog shows the full node set — The OPC UA node browser previously omitted some nodes declared on the source; all declared nodes now appear correctly in the browse dialog.
  • Monitor CSV import validates threshold conditions — The importer now validates generated threshold conditions before writing them, preventing monitors with invalid parameters (such as a negative duration) from being created silently. See Monitor CSV Import.

August 31, 2026

New

  • Operating hours gate in escalation policies — Escalation policies now support an "Operating hours" step that holds the escalation at that point until the configured hours apply; while outside those hours the policy waits, and when the window opens again it continues automatically. The pause is logged in the incident timeline. See Escalation Policies.
  • Invert operating hours — Both your personal notification preferences and operating-hours gate steps now have an "Invert" toggle: when enabled, the window applies outside the configured hours instead of during them, useful for on-call coverage that spans nights and weekends. See Escalation Policies.
  • Filter by escalation policy — The monitor, incident, objective, and condition lists now include an escalation-policy filter to narrow results to policies you care about. See Monitors and Incidents.
  • Right-click context menu on incident rows — On desktop, right-clicking an incident row opens a context menu with the same actions as the row's menu button: acknowledge, resolve, escalate, and open.

Improved

  • Acknowledgement push to other responders — When someone acknowledges an incident, the other users still being paged receive a push notification so the whole response team knows the incident has been picked up. See Incidents.
  • Report entities link to their live pages — Monitor names and other entities in the report viewer are now clickable links that open the corresponding live page in the app. See Reports.
  • Data source rows are now fully clickable — Clicking anywhere on a data source row navigates to its detail page, consistent with monitor and incident rows.
  • App stays navigable when a page crashes — If a page throws an unexpected error, the sidebar and navigation remain accessible and a clear error message appears in place of the crashed page, instead of a blank screen that requires a full reload.

Fixed

  • Baseline monitors now match targets correctly — A bug causing nightly baselines to key on retired monitor subtypes rather than adopted data points is fixed; baseline monitors that previously showed "insufficient data" in error should now compute correctly. See Monitors.
  • Report snapshots with missing fields now open correctly — Reports generated before the objectives feature was added now render as expected instead of failing, and a report section that fails to load now shows an isolated error rather than taking the rest of the report with it. See Reports.

August 30, 2026

New

  • Heartbeat grace period — Heartbeat data sources now have a configurable "Grace period" that sets how late a ping may arrive before Pulse raises an incident, covering normal job-to-job variation in runtime; the data source detail page shows the expected interval and grace period together as the alerting deadline. See Heartbeat.
  • Open an objective by clicking its row — Clicking anywhere on an objective's card in the Objectives list now navigates to that objective's detail page, consistent with how monitor and incident rows work. See Objectives.
  • "Open condition" in the objective row menu — The actions menu on each objective row now includes an "Open condition" item that navigates directly to the condition in the editor. See Objectives.
  • Prometheus series as condition sensor nodes — Prometheus series can now be used directly as Sensor nodes in the condition editor, letting you alert on Prometheus metrics with the same graph-based conditions as any other data source. See Monitors and Prometheus.
  • Push notifications carry an icon for what happened — Each incident push now starts with an icon, so a glance at the lock screen says which of them it is: 🔴 a new incident, 👀 someone acknowledged, ✅ resolved, and 📣 a colleague escalated the incident to you personally. See Mobile notifications.

Improved

  • Condition editor adds a "Summary" tab — The textual expression of a condition is now behind a dedicated "Summary" tab in the preview panel (alongside "Preview" and "Live"), so the readable form of the graph no longer competes for space with the backtest or live values. See Monitors.
  • Condition save errors now identify the problem — When the server refuses to save a condition, the specific blocking issues are counted in the toolbar chip, highlighted on the affected nodes, and described beside the Save button, so you know exactly what to fix rather than seeing only "The condition can't be saved yet." See Monitors.
  • Objective delete dialog explains what happens to the condition — The confirmation when deleting an objective now says whether the condition it was about will be deleted with it (if this objective was its only consumer) or kept intact (if a monitor or another objective still uses it). See Objectives.
  • Report burndown charts start folded — Each objective's error budget burndown chart in the report viewer now starts collapsed with a "Show budget history" button, keeping the reliability section concise until you expand it. See Reports.

August 29, 2026

New

  • Manually escalate an incident to any user or team — An "Escalate…" action on open incidents lets you page specific people directly, choosing which channels to use (email, SMS, call, or push). The escalation is additive to the automatic escalation policy and works on both unacknowledged and acknowledged incidents; once resolved the action is no longer offered. Each manual escalation appears as its own entry in the incident timeline. See Incidents.

Improved

  • Reports collapse the incident list by default — The per-incident detail section in a report viewer now starts collapsed, showing only the incident count on the toggle, so the report summary is immediately readable without scrolling past potentially thousands of rows. Expand it when you need the full list. See Reports.

August 28, 2026

New

  • Dedicated create and edit page for condition monitors — Creating a condition monitor now has its own page at Monitors → New monitor → Condition monitor, where the escalation policy, tags, and condition are all collected up front. The condition is described inline using a sentence form for the common threshold case, or you can attach an existing condition instead. Previously, monitor creation was reached through the condition editor. Editing an existing monitor's details (policy and tags) also has its own page now. See Monitors.
  • New objective creation page — Creating a service level objective now has its own page at Objectives → New objective, which collects the name, target, window, and coverage floor alongside an inline indicator description. Previously this was done inside the condition editor. See Objectives.
  • The conditions list can create a monitor for a condition — A "Create monitor" row action on the conditions list takes an existing condition straight to the monitor create page with that condition already attached, so a second monitor on a shared condition no longer starts from the monitor list. See Monitors.

Improved

  • Trigger incident descriptions now render as Markdown — When a trigger monitor's Incident description rule extracts text from the webhook payload, that text is now shown on the incident detail page as rendered Markdown. A paging system's alert body often contains links to runbooks, lists of affected assets, and other formatted context; Markdown lets that formatting come through. When the description would repeat the cause subtitle, the cause is hidden. See Incidents.

August 27, 2026

New

  • Condition editor on mobile — Following a condition editor link on a phone now opens a read-only view of the condition: the graph lit by the appliance's live evaluation of each node, and a Details tab with the condition's description, current issues, objectives, and how many monitors use it. See Monitors.
  • Live values in the condition editor — The condition editor's preview panel now has a "Live" tab that shows the appliance's real-time evaluation of every node in the stored condition, so you can see exactly which values are causing an alert without running a backtest. The tab is available once the condition has been saved and has no unsaved edits. See Monitors.
  • Trigger monitor source timestamp — Trigger monitors can now be configured with a "Source timestamp" rule that extracts when the sender says the alert fired; the extracted time appears in the delivery log and is recorded in the incident's activity feed whenever it changes, so you can tell when an alert was raised at the source versus when Pulse received it. See Monitors.

Improved

  • Conditions list shows current state and usage details — Each row on the Conditions page now shows a status indicator (Violated, Holding, Unknown, etc.), how many monitors and objectives use the condition, and how many data points it reads; new filters let you narrow by state or to conditions not yet used by anything. See Monitors.
  • Report detail page loads older snapshots on demand — The list of previously generated reports on a schedule's detail page now shows a "Load more" button to page through older entries, rather than loading the full history at once. See Reports.

Fixed

  • Condition editor can repair an unreadable stored graph — If a condition's saved graph was written by a newer appliance build and this version cannot decode it, the editor now shows a clear notice and lets you draw a replacement graph and save to overwrite it, instead of being stuck. See Monitors.
  • Organization selector on mobile closes after picking — The organization selector bottom sheet on mobile now closes automatically when you select an organization and has a dedicated Close button, so you are never left in an open sheet with no obvious way out.

August 26, 2026

New

  • Bulk selection mode on the monitor list — Organization administrators on desktop can now click Select in the toolbar to enter selection mode. In this mode each row becomes a selectable target rather than a link, and a floating action bar at the bottom offers Mute, Unmute, and Delete for the whole selection at once. Press Escape to exit — first press clears the selection, second press leaves the mode. See Monitors.
  • Trigger monitors can now identify the sending system — Add a "Sending system" rule to a trigger monitor so that two services sharing one webhook URL produce separate incidents even when they send the same alert ID; the sending system is named on each incident it produces. See Monitors.
  • Trigger monitors can now auto-close incidents on a reset signal — Add a "Reset signal" rule and Pulse will immediately close all open incidents for a sender when a matching reset payload arrives. See Monitors.
  • Condition monitors now have their own sidebar entry — Condition monitors appear directly in the sidebar so you can open the full list in one click without navigating through another section. See Monitors.
  • Search the condition library and objectives list — Type to find a condition or objective by name instead of scrolling the full list. See Monitors.
  • Tags are now shown and filterable on the data source and CVE lists — Each row carries the relevant tags, and the tag filter sits in each list's toolbar, so you can narrow by tag without opening the full filter menu — as the monitor and incident lists already allow. See Vulnerabilities.

Improved

  • Incident list cards now show the triggering monitor's tags — Each incident card in the list displays the tags from the monitor that raised the incident alongside the status badge and monitor type, so you can filter and spot patterns without opening each incident. See Incidents.
  • Monitor type chips replace the CVE quick-filter button — A chip row below the search bar now shows every monitor type present in your list along with its count. Click any chip to filter by that type; click again to clear. See Monitors.
  • Tags filter promoted to the monitor toolbar — The Tags filter button now sits beside the search box and type chips rather than inside the filter menu, matching its importance as the primary way to slice a large monitor list. See Monitors.
  • Clearing filters no longer clears the search term — The Clear filters button in the monitor and incident list toolbars now resets only the menu-driven filters (Status, Type, Tags, Stale, Muted), leaving whatever you typed in the search box untouched. See Monitors.
  • The Filter button on every list now shows how many filters are active — A small count badge appears on the Filter button whenever filters are applied, so a narrowed list is always visible without opening the menu.
  • Filtered empty states now explain which filters are active — When a filter combination leaves a list with nothing to show, the empty state names the active filters and offers a one-click clear button.
  • Search terms are now kept in the URL on more lists — Typing into a list's search box updates the URL, so a filtered view can be bookmarked or shared.
  • Detail pages adapt better to narrow screens — On phones, the page title no longer gets squeezed by action buttons; it now stacks cleanly below the back button, and collapsed actions share the back row so neither needs its own row.
  • Destructive actions are now tucked into a overflow menu — Delete and other rarely-used actions on detail pages appear under a button rather than in the main button row, so they are one click away but not one click from the work. See Monitors and Incidents.
  • Prometheus data points now carry their full series label — When a Prometheus query returns multiple series, each data point is identified by its full label set rather than the bare metric name, so multi-series panels tell their lines apart. See Monitors.

Fixed

  • The monitor bulk action bar no longer overlaps the list rows — The action bar that appears when monitors are selected now floats clear of the rows beneath it.
  • Dialogs no longer clip long titles or footer buttons — Long dialog titles are kept clear of the close button; footer action buttons stay inside the dialog; and the "leave editor?" confirmation now sizes itself to fit its content.

August 25, 2026

Improved

  • Reports now include an error budget burndown chart for each objective — Each objective section in a scheduled report now shows a chart of how its error budget was consumed day by day, so you can see at a glance whether budget loss was concentrated in a short window or spread evenly across the period. See Reports and Objectives.

Fixed

  • On the appliance, software updates that include slow database migrations now complete successfully — Previously, an update involving a long-running migration — such as rebuilding an index on a large incident history — could fail in a restart loop: the system would time out and kill the app before the migration finished, rolling it back, then repeat until the update was aborted. The start window is now long enough for migrations to complete.

August 24, 2026

Fixed

  • Condition preview now shows data for 24 h and 7 d ranges — The preview chart in the condition editor was rendering no data when the 24 h or 7 d time range was selected. The preview grid is now aligned to the same bucket boundaries the server uses, so all returned samples match a grid point and the chart fills in correctly. See Monitors.
  • Condition and SLO monitors now show their Activity Feed — Their detail pages recorded every status change but showed none of them, so the history of a monitor was only reachable through its incidents. Both now show the same Activity Feed the other types do, along with their current status and the time of their last check. Nothing was lost: the entries you are seeing were being written all along. See Monitors.

August 23, 2026

Fixed

  • Navigating from list views to detail pages no longer loops back to the list — A race condition caused the CVE and incident list headers to rewrite the browser URL just after you navigated to a detail page, leaving you on the list instead; both headers now stop syncing the URL once you have left the list.

August 22, 2026

Changed

  • Heartbeats are now data sources, and their monitors are ordinary monitors — A heartbeat is a push data source: Pulse acquires one signal from it, "a ping arrived", and a condition monitor alerts when that signal goes quiet for longer than the interval you set. Your existing heartbeats were converted for you and keep their name, their tags, their escalation policy, their incident history and their link. The ping URL has not changed — nothing you have deployed needs reconfiguring. Creating one is still the same two fields, now under Data sources; the ping URL and the rotate button live on the heartbeat's page there. See Heartbeat Monitors.
  • A heartbeat can now be combined with anything else — Because the ping is an ordinary signal, "the nightly backup has not checked in and it is a weekday" is one condition rather than something you could not express. Open the monitor a heartbeat created and edit its condition like any other. See Monitors.
  • Heartbeats still cost nothing — A heartbeat's data source and its one data point are excluded from your licence's provisioned counts, exactly as heartbeat monitors have always been. Your numbers are unchanged.
  • The sidebar is now Data sources, Monitors, Objectives — Three sections for the three things Pulse does: data sources acquire, monitors alert, objectives promise. Data sources carries the per-protocol entries — OPC UA, S7 and Prometheus — so the entry you used every morning to find your PLCs is still one click away, just one section over, and now shows the connection and everything read through it rather than a list of thresholds. Monitors opens one flat list, with shortcuts kept only for CVE, Trigger and SLO. Old links to the OPC UA and S7 monitor lists take you to the matching data sources. See Monitors.
  • Tags filter the monitor list from a button of their own — With the per-type sidebar entries gone, tags are the main way to narrow the list, so the tag picker sits in the toolbar beside the search box instead of inside the filter menu. A condition monitor inherits the tags of the data it reads, so tagging a PLC once is still enough. See Monitors.
  • Conditions moved to the bottom of the sidebar — The conditions library is beside Tags and Severities now. You still open a condition by opening the monitor that alerts on it; the library is for the case where several monitors, or an objective, share one. See Monitors.
  • OPC UA and S7 connections are now added as data sources — A PLC or an OPC UA server is added under Data sources, with its address, credentials, certificate and security settings in one place — the same way a Prometheus endpoint already was. There is no separate "endpoint monitor" to create first. Existing connections were moved for you and are already listed there. See OPC UA and S7.
  • A new data source alerts you when it goes unreachable, unless you say otherwise — Adding a source creates a condition monitor called "<source> unreachable" alongside it. It is an ordinary monitor: rename it, mute it, change its escalation policy, edit its condition or delete it. Untick the box while adding the source if you do not want one. See OPC UA and S7.
  • Browsing a server's nodes and pinning its certificate moved with the connection — Both now live on the data source rather than on a monitor, which is where the connection they use has been since the sources were introduced.
  • CVE monitors discovered from a device now name that device's data source — The link is the same one; what it points at is the source rather than the monitor that used to stand for it.
  • OPC UA and S7 endpoint monitors are now condition monitors — Every existing endpoint monitor has been converted in place. It keeps its name, its tags, its escalation policy, its incident history and its link, and it now says what it always meant: "alert when this data source cannot be reached". It opens in a simple form, not on a diagram. Nothing about the upgrade asks you to do anything. See Monitors.
  • You can now combine a value with its source's reachability — A condition can read a source's reachability alongside its readings, so "alert when the boiler is above 80 °C and the PLC is answering" is one condition. An unplugged cable then raises the one incident that says the cable is unplugged, instead of one per value being read through it. See Monitors.
  • Converted endpoint monitors are checked every five seconds — An endpoint monitor had its own check interval; a condition does not, because conditions are evaluated on Pulse's five-second schedule. Detection is faster, and a connection that drops in and out will open and close incidents more often than it used to. If that is noisier than you want, open the condition and add a "sustained for" step so it only alerts once the source has been unreachable for a while. See Monitors.
  • A converted monitor stays quiet while Pulse itself cannot answer — An endpoint monitor used to raise an incident when Pulse's own OPC UA or S7 service failed, which read as the device being down when it was not. A converted monitor reports what it knows: it alerts when the device refuses or times out, and stays as it is when Pulse has no recent verdict at all.
  • A custom incident message on an endpoint monitor is now the condition's alert description — If your message was plain text, it has been carried across word for word. If it contained a placeholder — an address wrapped in doubled curly braces — it has not: an alert description is shown exactly as written, so the placeholder would have reached you unfilled. Incidents raised before the upgrade are unaffected. See Monitors.

Fixed

  • On-call handoff emails now show the correct message — Plain-text on-call handoff emails were sending both the shift-starting and shift-ending body to every recipient due to a template rendering bug; recipients now receive only the message that matches their actual handoff direction.
  • Report-ready emails no longer include mismatched access instructions — Plain-text report-ready emails were including both the password-protected and public access sections regardless of whether the report had a password; each email now contains only the section that applies.
  • Deleting monitors or objectives no longer leaves sensors permanently stuck — When a monitor or objective backed by a condition was deleted, the condition record was sometimes left behind; that orphaned condition would then block deleting any sensor it had read. Conditions whose last consumer is deleted are now cleaned up in the same operation.
  • In the mobile app, opening or refreshing the app no longer shows a server error — A conflict between device token registrations could cause a unique-constraint error on every app launch, surfacing as a persistent "server error" toast; the registration now clears any stale claim on the token before writing it.

Removed

  • Endpoint, node and tag monitors can no longer be created — All three were converted into condition monitors over the last two releases, and the forms and API endpoints that created them have been removed along with the tables behind them. Conditions do everything they did and combine freely; a value and its source's reachability in one rule is the case that was not expressible before. See Monitors.
  • Deleting a monitor no longer cascades, and policies and tags no longer apply "to children" — A monitor has no children any more, so the confirmation step that offered to delete them, and the prompts that offered to copy an escalation policy or a set of tags down to them, are gone. Tags on a data source still flow to everything read through it.
  • Importing monitors from CSV now covers CVE monitors only — The OPC UA and S7 rows created monitor types that no longer exist. Build those as data sources and conditions instead.

August 21, 2026

New

  • Bulk mute and delete monitors — The monitor list now lets you select multiple monitors at once and mute, unmute, or delete them all in a single action; a selection bar appears when monitors are chosen, with accelerators to select the full list. See Monitors.
  • Incidents reopen automatically within the escalation policy window — Escalation policies now have a reopen window setting; if a resolved incident's trigger fires again before the window expires, Pulse reopens the existing incident instead of creating a new one, and holds the resolved notification until the window passes. See Escalation Policies and Incidents.

Improved

  • Deleting an endpoint monitor now removes all its sub-monitors in one step — Previously, deleting an OPC UA or S7 endpoint monitor was blocked while node or tag monitors were attached to it; the delete dialog now shows the full count of monitors that will be removed and deletes everything together after you confirm by typing the monitor's name. See Monitors.

Changed

  • OPC UA node monitors and S7 tag monitors are now condition monitors — Every existing node and tag monitor has been converted in place. It keeps its name, its threshold, its tags, its escalation policy, its incident history and its link, and it opens in the same simple form as before — "alert when the average of this value over the last five minutes is above 80" — with the option, new to it, of adding a second reading or combining it with the source's reachability. Nothing about the upgrade asks you to do anything. Creating a new one starts in the condition editor instead of the old node/tag form. See Monitors.
  • Converted monitors are checked every five seconds — A node or tag monitor had its own check interval; a condition does not, because conditions are evaluated on Pulse's five-second schedule. A monitor that used to be checked every five minutes is now checked every five seconds. Detection is faster, and a value that crosses its threshold repeatedly will open and close incidents more often than it used to. If that is noisier than you want for a particular monitor, open its condition and add a "sustained for" step so it only alerts once the reading has held. See Monitors.
  • Reports filtered by monitor type now cover all of your condition monitors — A scheduled report scoped to "OPC UA node" or "S7 tag" was filtering on a monitor type that no longer exists, so its filter has been rewritten to "condition". Without that it would have kept sending on schedule and arrived empty. Converted monitors and conditions you drew yourself are the same type now, so that filter no longer tells them apart, and a report scoped this way will include condition monitors it did not cover before. To narrow it again, open the report and add a tag filter — your converted monitors kept their tags. See Reports.

Fixed

  • "Sum" and "count" aggregations now count your readings, not time slots — A condition using the sum or count aggregation was folding Pulse's internal evaluation grid rather than the readings themselves, so a reading was counted again for every slot it was still the most recent one. The practical effect: a sensor that stopped reporting still produced a full count, so a "count is below N" condition — the usual way to alert on a sensor going quiet — stayed silent exactly when it should have fired. Sum and count now add each reading once. Expect these two aggregations to report lower numbers than before; if you tuned a threshold against the old value, review it. Minimum, maximum and average are unaffected. Two steps are deliberately not affected by this: a "Fallback" still contributes every value it substitutes for missing data, and a "Has data" still reports one answer per time slot — so gap-filling and uptime conditions keep counting slots, which is what they are for. See Monitors.
  • Escalation policy deletion now correctly checks whether the policy is in use — A bug that allowed deletion of escalation policies still referenced by monitors or incidents — while blocking deletion of unused ones — has been fixed. See Escalation Policies.

August 19, 2026

Improved

  • Condition nodes show which value an incident will quote — Auto-generated conditions (such as band detectors created by the anomaly-detection action on sensor monitors) now label each relevant node — Observed, Upper limit, or Lower limit — on the node card and in the condition preview on the monitor page, so you can see at a glance which number an incident is about without opening the editor. Selecting a tagged node in the inspector shows the same label under "Quoted in incidents as". See Monitors.
  • Condition editor validates nested time-window chains — When aggregate nodes are wired in series (for example, an average feeding another average), the editor now checks whether the combined lookback exceeds Pulse's data retention period and highlights the first node where the total crosses the limit, so you know exactly which one to shorten. See Monitors.

Fixed

  • Anomaly detection baseline runs now always complete — A bug where the final data chunk of every baseline run failed to enqueue the finalization step has been fixed; baselines now finish reliably and produce their full result. See Anomaly Detection.

August 18, 2026

New

  • Service Level Objectives — The new Objectives section lets you define a promise over a condition — for example, "this must hold at least 99.5 % of the time over the past 30 days" — track its error budget, and see at a glance whether the objective is being met. Add burn alerts to get paged when the budget burns too fast. See Objectives.
  • Multiple named alerts in the condition editor — A single condition graph can now contain several Alert nodes, each with its own incident name and description, so one condition can raise distinctly-named incidents for different failure modes.

Improved

  • Sidebar shows only your teams — The Teams section in the sidebar now lists only the teams you belong to, and hides itself entirely when you are not a member of any team.

Fixed

  • The app no longer logs you out on unrelated 401 responses — Session expiry is now detected precisely: the app ends your session only when the authentication check confirms the token is dead, not when a resource-level request is refused with a 401.

August 17, 2026

New

  • Detect anomalies on sensor monitors — OPC UA and S7 sensor monitors now have a "Detect anomalies" action that creates condition monitors watching for the sensor dropping out, reading outside its learned normal range, holding flat, or varying unusually; each check starts in shadow mode (recording what it would have done without alerting) so you can review a week of results before activating. See Anomaly Detection.

Improved

  • AI Canvas board and chat are now independent panes — The board holds only the assistant's findings as persistent cards you can drag, resize, and arrange freely; the chat panel alongside it shows the complete conversation including tool calls; and an empty board now shows a note explaining what will appear there once the assistant finds something. See AI Canvas.
  • Filter monitors and incidents by Condition monitor type — The type filter on the monitor list and incident list now includes "Condition monitors" (and "Trigger monitors" on the incident list), so you can focus on those monitors directly. See Monitors and Incidents.
  • Incident escalation pauses while a monitor's verdict is unknown — When a monitor cannot be evaluated — for example because its sensor has stopped reporting data — escalation now holds rather than continuing to page on-call responders; it resumes automatically once the monitor delivers a definite verdict. See Incidents.

Fixed

  • Query page charts no longer flicker when moving the crosshair — Hovering the crosshair no longer triggers a full repaint of all chart series, eliminating a visible stutter when moving the pointer across data-dense charts. See Query.

August 15, 2026

Improved

  • Condition editor panels can be collapsed — The palette and inspector side panels in the condition editor now have collapse buttons that fold each to a narrow strip, so the graph gets more room when you need it. See Conditions.
  • Condition editor remembers your layout — The fold state of both side panels, the graphs toggle in the preview, and the preview panel height are now saved in your browser, so the editor opens exactly the way you left it. See Conditions.
  • Sensor charts show what your condition actually compares — When a sensor feeds an Aggregate node, its chart in the condition preview now draws the aggregate's output alongside the raw readings — the value your Compare node tests — computed with the same bucketing the condition evaluation uses. See Conditions.
  • Sensor charts hold their place while new data loads — The preview panel no longer collapses and reflows when you change the time range; each chart shows a placeholder while data is in flight.
  • Hovering a sensor chart highlights it on the canvas — Moving the pointer over a sensor chart in the condition preview now highlights the corresponding nodes on the canvas.
  • Query page crosshair spans all aggregation charts — The vertical reference line on the Query page now stays visible as the pointer moves between aggregation charts, including across the headings and gaps between them, making it easy to compare values from different aggregations at the same instant. See Query.

August 14, 2026

New

  • Conditions list page — A new Conditions page lists all your saved conditions in one place, shows how many monitors use each one, and lets you create new conditions or delete unused ones.
  • Condition monitors raise and resolve incidents — Pulse now evaluates condition monitors on a regular schedule; when a condition starts alerting it opens an incident through your escalation policy, and when it clears the incident is resolved automatically.

Improved

  • Condition Monitors in the sidebar — The monitor navigation now includes a Condition Monitors entry so you can jump straight to monitors backed by your conditions, alongside OPC UA, S7, and other monitor types. See Monitors.

Fixed

  • Deleting a monitor used by a condition now shows a clear error — Trying to delete a monitor that a condition depends on now explains the block and asks you to remove the monitor from its condition first, instead of failing silently.

August 13, 2026

New

  • "Latest" aggregation in PQL — The query builder now offers a "Latest" aggregation that returns the most recent sensor value in each time bucket, letting you see the last-recorded reading per interval rather than a statistical summary. See Query.

August 12, 2026

New

  • Heartbeat monitors — A new monitor type for watching periodic jobs: configure an expected ping interval, point your cron job or scheduled task at the generated URL, and Pulse opens an incident when the ping stops arriving on schedule. The monitor's detail page shows the last ping time, a copyable ping URL, and a one-click URL rotation to invalidate old credentials. See Heartbeat.
  • Condition editor — A new visual canvas for authoring monitor alert conditions: place and wire together typed nodes — sensors, monitor state, arithmetic, comparisons, and logic gates — then preview how the condition would have fired against historical data, with a text mirror strip rendering the full expression.

August 11, 2026

New

  • Earlier occurrences shown on the incident detail page — The incident detail page now lists up to 10 earlier incidents caused by the same monitoring condition, each showing when it happened and how long it lasted, so you can tell at a glance whether the problem is recurring. See Incidents.

Improved

  • Warning before resolving an incident while the monitor is still unhealthy — When you resolve an incident while its monitor is still failing, Pulse now shows a warning that a new incident will be raised within seconds; click "Resolve anyway" to proceed. See Incidents.
  • Monitor and CVE list filters on mobile use a full-screen drawer — The monitors and vulnerabilities list pages now use the shared filter drawer on mobile, consistent with the incident list: tap Filter to open all filter groups, stage your selections, then tap Apply. See Monitors and Vulnerabilities.
  • Query chart tooltips show the full date and time — Data point tooltips in the Query chart now display the day, month, and year alongside the time, so you can tell which date a point falls on when the query spans multiple days. See Query.
  • Report recurring-monitors list capped at ten — The "Top recurring monitors" section in a report snapshot now shows at most ten monitors and notes how many were omitted, keeping the panel a consistent size. See Reports.

Fixed

  • Cleared incident status filter no longer resets to the default — Removing all status filters from the incident list and navigating away no longer snaps the selection back to Unacknowledged + Acknowledged; the explicitly cleared state is now preserved in the URL. See Incidents.

August 10, 2026

Security

  • Report snapshots are now encrypted end-to-end — When Pulse sends a report link by email, the report content is sealed in an encrypted envelope before it reaches the gateway; only the intended recipient can unlock it with the password from their email, and no password hashes are stored or transmitted anywhere. See Reports.

August 9, 2026

New

  • Open-incident count badges in the sidebar — The Incidents and My Incidents navigation entries now show a live badge with the number of currently open incidents, so you can see at a glance how many incidents need attention without navigating to the incident list. See Incidents.

Improved

  • Filter PQL queries by tag — The query builder's data point selector now lets you pick tags alongside individual monitor endpoints; the query returns aggregated data for all sensors carrying those tags, making it easy to scope a chart to a machine group or site without selecting endpoints one by one. See Query.

August 8, 2026

Improved

  • PQL queries seamlessly span historical and live sensor data — Sensor data is now exported to a local analytics lakehouse every ~20 seconds, and PQL queries read from it in a single sweep that covers both the archived history and the live tail, eliminating any boundary between historical and recent results. See Query.
  • On the appliance, backups now include analytics lake data — The appliance backup command now captures the analytics lake directory alongside the database dump, and restores it on recovery, so historical sensor time-series data is preserved across backup cycles.

Fixed

  • Incident markers on the Query page appear with the first result — Incident overlay markers are now fetched before the query executes, so they appear in the same response as the results rather than blinking in after a second render. Re-running an unchanged query now always dispatches a fresh request. See Query.

August 6, 2026

Improved

  • On the appliance, re-applying the current bundle now skips the backup and import — When the update bundle already matches the running system closure, the appliance now detects this immediately after bundle verification and completes in seconds, skipping the database backup and the multi-gigabyte system image import that previously ran before reaching the same "Already up to date" result.

Fixed

  • On the appliance, System Status now shows the real uptime — The System Status screen now displays the actual uptime (for example, "2h 4m" or "1d 2h 4m") instead of always showing "unknown". The appliance's uptime binary does not support the flag that was previously used, so the screen now reads /proc/uptime directly.
  • On the appliance, System Status fallbacks are now localized — The fallback text shown when uptime or disk usage cannot be read now appears in the operator's language (for example, "unbekannt" in German) rather than always in English.
  • On the appliance, update failure messages are now fully in the operator's language — The update failure screen now shows error messages end-to-end in the operator's language. Previously some messages had a translated outer label wrapping an untranslated inner detail (for example, "Überprüfung fehlgeschlagen: checksum mismatch: …").
  • On the appliance, signature verification errors no longer repeat "signify:" — When bundle signature verification fails, the error message now shows the "signify:" label exactly once instead of doubling it (previously it read "signify: signify: …").
  • On the appliance, the staged-update screen no longer instructs to reboot twice — After staging an update that requires a reboot, the reboot instruction now appears exactly once (in the done screen footer) instead of repeating in the progress history.

August 5, 2026

Improved

  • Suggested queries open as a bottom drawer on mobile — On small screens, the suggested-queries panel on the Query page is now a bottom drawer that shows each query's name and description inline, making it easier to browse and run queries by touch. See Query.
  • CVE severity chart labels readable on mobile — The severity bar chart on the CVE dashboard now rotates its axis labels on small screens so they no longer overlap. See Vulnerabilities.
  • On the appliance, installer and update progress is now in German — Progress messages during installation and software updates now appear in German on the operator's screen, while the audit log and install log remain in English for support engineers.
  • On the appliance, re-applying the running version reports "Already up to date" — When an update bundle contains the closure already running on the appliance, the update flow now correctly reports that no change was made, instead of showing a misleading completion message.

Fixed

  • Incident list rows navigate reliably — The incident list rows have been rebuilt with a correct click-target structure so the full row navigates to the incident detail; the Actions dropdown and status badge no longer accidentally trigger row-level navigation. See Incidents.
  • Escalation step cards show the step number — Each step card in the escalation policy editor now displays its number ("Step 1", "Step 2", etc.) instead of the generic label "Step". See Escalation Policies.
  • Input fields with button addons no longer overhang at desktop widths — A layout bug where an addon button created an invisible hit-testable strip outside the field boundary on desktop screens has been fixed.
  • Email action links now reach Pulse directly — Action links in incident alert, digest, on-call handoff, and report emails now carry clicktracking="off" so email providers do not rewrite them through a tracking redirect — one-click actions such as Acknowledge continue to work regardless of which email service delivers the message.

August 4, 2026

New

  • Mobile incident actions — On small screens, the incident detail page now shows a large Acknowledge or Resolve button pinned to the bottom of the screen with a confirmation drawer to prevent accidental taps, so the primary action is thumb-reachable without opening the Actions dropdown. See Incidents.

Improved

  • Compact incidents toolbar on mobile — On small screens, the search field is now hidden behind a toggle icon that focuses the input when tapped, the Create Incident button moves to a floating button in the bottom corner, and the filter button shrinks to an icon, keeping the toolbar uncluttered. See Incidents.
  • Query builder suggestion lists work correctly on small screens — The suggestion dropdowns in the Query Builder no longer get clipped at the top of the screen when space is tight, and each option has a larger touch target on mobile. See Query.

Fixed

  • Scheduled reports include only incidents from the selected period — A bug where incidents outside the report's time window appeared in scheduled incident reports has been fixed. See Reports.

August 2, 2026

Improved

  • Incident status shown as a labeled badge — The colored dot on incident list cards is replaced by a text badge that names the status (for example, "Unacknowledged"), so the status is readable at a glance without relying on color alone. See Incidents.
  • App header stays fixed on mobile while scrolling — The top navigation bar is now sticky on mobile screens, keeping the menu trigger and controls accessible no matter how far you scroll.
  • Report actions consolidated into a dropdown — The "Generate now" and "Delete" actions on a report's detail page are now grouped under a single "Actions" button, reducing clutter in the header. See Reports.

Fixed

  • Redundant incident cause no longer shown — When a monitor's cause text matches the incident title exactly, it is no longer repeated on the incident list card or detail page. See Incidents.
  • Drawers no longer scroll-jump the page on iOS — In the mobile app, opening a drawer (such as the comment panel) no longer caused the page behind it to jump; buttons inside drawers also respond correctly again, and tapping the overlay beside a drawer reliably closes it.

August 1, 2026

New

  • Propagate tag changes to child monitors — When you save changed tags on an OPC UA endpoint or S7 endpoint monitor, a dialog now offers to apply the same additions and removals to all child monitors at once, so a parent's tags and its children's tags can be kept in sync without editing each one separately. See Monitors.

Improved

  • Trigger monitor shows a unified activity feed with delivery details — The trigger monitor detail page now merges webhook deliveries and status-change events into a single chronological feed; burst runs of deliveries collapse into a grouped entry you can expand, and clicking "Details" on any delivery opens a panel with the full payload (with a formatted JSON toggle and copy button), content type, linked incident, and prev/next navigation. See Monitors.
  • Reports can now be sent to teams — The report form's recipient section is renamed "Pulse users and teams" and now lets you add entire teams as recipients; team members are resolved each time the report is generated. See Reports.
  • Report deletion now requires confirmation — Deleting a report now shows a confirmation dialog explaining that no further reports will be generated and that already-sent reports remain accessible via their existing links, preventing accidental deletion. See Reports.
  • Large report incident tables scroll smoothly — The incident table in a report snapshot is now virtualized, so reports with hundreds or thousands of incidents render and scroll without slowdown. See Reports.

August 3, 2026

Improved

  • Incident filters on mobile use a full-screen drawer — On mobile, tapping the filter button opens a drawer with all filter groups (status, type, monitor type, tags, acknowledged by, resolved by) as collapsible sections; selections are staged and committed only when you tap Apply, and active filters appear as removable chips below the toolbar. See Incidents.
  • On-call calendar has a dedicated view switcher on mobile — A labeled dropdown now lets you pick Day, Week, Month, or Year view on small screens, and the calendar remembers your mobile and desktop view preferences separately. See On-call Schedules.
  • Buttons, inputs, and menus have larger touch targets on mobile — All interactive controls now meet the 44 px minimum tap-area requirement on touch screens, and text fields use at least 16 px font size to prevent iOS Safari from zooming when a field is focused.

Fixed

  • Back navigation works when pages are opened from external links — The back button on monitor, monitor-edit, and incident detail pages now navigates to the relevant list page when you arrived via a direct link (such as from a notification or bookmark), instead of leaving the app.

July 31, 2026

New

  • Propagate escalation policy to child monitors — After saving an endpoint monitor with a changed escalation policy, a dialog now offers to apply that same policy to all child monitors at once, so parent and children stay in sync without editing each one individually. See Monitors.

Improved

  • Tag list groups tags by category — The tags page now shows tags organized into collapsible category sections with filter chips at the top, so you can focus on one category at a time; searching still shows a flat list across all categories. See Tags.
  • Trigger monitor shows when the last webhook arrived — The ingest URL card on a trigger monitor's detail page now displays how long ago the most recent delivery was received, so you can confirm the integration is active without opening the full deliveries log. See Monitors.
  • Monitor event history shows 20 events per page — The event history on the monitor detail page now loads 20 events at once instead of 5, so you can see a fuller picture of recent activity without paginating. See Monitors.

Fixed

  • Push notification taps and tray actions now work reliably in the mobile app — Several fixes to how notifications are handled ensure that tapping a push notification opens the correct incident, tray actions (Acknowledge/Resolve) reliably reach the gateway, failed actions show an error alert rather than silently disappearing, and offline actions are automatically retried when connectivity returns.

July 30, 2026

New

  • Scheduled incident reports — Admins can now create recurring incident report schedules (daily, weekly, or monthly), filter included incidents by status, monitor type, or tag, add external email recipients and Pulse users, and configure how long shared links stay valid. Reports are emailed automatically on schedule; recipients open them via a password-protected public link. See Reports.
  • Acknowledge or resolve incidents from the iOS notification tray — In the mobile app, push notifications for open incidents now show Acknowledge and Resolve action buttons; tapping one forwards the command to Pulse even when the app is offline, so the incident is acted on without opening the appliance.

Improved

  • Push notifications can navigate to more pages — In the mobile app, tapping a digest or handoff notification now opens the correct destination (e.g. the incident list or the on-call calendar) instead of only navigating to the incident detail page.

Fixed

  • Pull-to-refresh no longer redirects to the dashboard — In the mobile app, pulling to refresh a page no longer dropped the user back to the dashboard; the app now stays on the current page by reinjecting the auth token without remounting.

July 29, 2026

New

  • Incident Reports — scheduled summaries delivered to your team — The new Reports page (/app/reports) lets admins create scheduled incident reports that run daily, weekly, or monthly. Each generated report is frozen at the moment it runs and covers headline counts, response times (MTTA/MTTR), volume trends, onset heatmap, monitor and tag breakdowns, responder load, and a filterable incident table. Pulse users receive an in-app notification and email linking to an authenticated in-app view; external recipients receive a personal shared link protected by a one-time password. See Reports.
  • Tag categories — group related tags into dimensions — Organization admins can now create tag categories (e.g. Customer, Project, Site) that group related tags together; each category can be configured as single-select (a monitor may carry only one tag from that category) or multi-select. Tags can be assigned to a category when created or edited, and the tag selector on a monitor now groups options by category and shows co-occurrence counts to help you pick related tags quickly. See Tags and Tag Categories.
  • Forgot-password / reset-password flow — The sign-in page now has a "Forgot password?" link that lets users request a password-reset email; following the link in the email opens a reset form where they can choose a new password. The reset link expires after one hour.
  • Filter incidents by who acknowledged or resolved them — The incident list filter menu now includes "Acknowledged by" and "Resolved by" dropdowns so you can scope the list to incidents a specific team member handled. A new "My Incidents" entry in the sidebar links directly to the incidents you acknowledged. See Incidents.

Improved

  • Incident list shows who acted on each row — Acknowledged and resolved incidents now display a small initials badge next to the row; hovering shows the person's name and when they acted, and clicking the badge re-scopes the list to that user's incidents. The incident detail page similarly shows an initials avatar for the acknowledger or resolver, linked to their filtered list. See Incidents.
  • Tag filter groups options by category — When filtering monitors, incidents, or CVE findings by tag, the tag submenu now groups options under their category heading and shows a co-occurrence count next to tags that match the current selection, so the most relevant choices sort to the top.
  • Tag badges show their category in the tooltip — Hovering a tag badge on a monitor or incident now shows which category the tag belongs to (e.g. "Category: Customer") alongside any description. See Tags.
  • AI Canvas can list tags — The AI assistant can now return a list of tags as a canvas card, with each row linking to the monitor list filtered by that tag. See AI Canvas.
  • CVE provider status distinguishes polling from downloading — The CVE status page now shows a "Last polled" timestamp alongside "Last attempt", so administrators can tell whether a provider's feed is being checked regularly (even when no advisories changed) versus genuinely unreachable. See Vulnerabilities.

July 28, 2026

Improved

  • Verification email has a refreshed design — The account verification email now uses the same visual style as other Pulse system emails, with a cleaner layout and consistent branding.

July 27, 2026

Improved

  • Updated Pulse branding across web and mobile apps — The web app now shows the Pulse wordmark in the sidebar and on sign-in pages alongside an updated favicon; in the mobile app, the app is now named "Pulse Dispatch" with updated icons including light, dark, and tinted variants on iOS.
  • AI Canvas step cards no longer show connector arrows — The curved arrows that previously linked step cards in execution order have been removed, leaving a cleaner canvas layout with only the numbered sequence badges. See AI Canvas.

Fixed

  • S7 monitor connections are more reliable — Connection attempts to S7 devices are now handled per endpoint with deduplication, preventing redundant simultaneous dials and eliminating potential stalls when multiple monitors target the same PLC. See S7.

July 25, 2026

New

  • Trigger monitors — raise incidents from inbound webhooks — A new Trigger monitor type generates a unique ingest URL that external systems (Grafana, Alertmanager, custom scripts) can POST to; Pulse parses the payload using configurable rules (regex, JSONPath, or text matching) to extract an alert ID, incident title, and description, and can automatically acknowledge or resolve the incident when a matching payload arrives. Optional request-header matchers let you put your own shared-secret authentication in front of the ingest URL. The monitor detail page shows the ingest URL with copy and rotate actions, plus a recent-deliveries log showing how each incoming webhook was handled. See Monitors.

July 21, 2026

New

  • Filter incidents and CVE findings by monitor tag — The Incidents and Vulnerabilities list filters now include a Tags option, so you can narrow results to the monitors carrying a specific label without having to know which monitors that covers. See Incidents and Vulnerabilities.

July 19, 2026

Improved

  • Vulnerabilities page reorganized into a single flat tab bar — The CVE page now has four top-level tabs — Overview, CVEs, Findings, and Activity — replacing the previous layout where the dashboard and a grouped/flat view toggle were nested inside a single Findings tab. See Vulnerabilities.

July 18, 2026

New

  • Canvas result cards link directly to monitor, incident, and CVE detail pages — Monitors, incidents, and CVE findings returned by the AI assistant are now clickable rows that open the relevant detail page, so the canvas ends where your next action starts. See AI Canvas.
  • Canvas run status shown as a colored badge in the list and switcher — A red dot marks a failed canvas and a pulsing amber dot marks one that is still running, replacing the plain gray text label that was easy to miss. See AI Canvas.

Improved

  • AI assistant presents times in the organization's timezone — When the AI reports times in prose, tables, or reports it now converts them to your organization's local timezone (including the correct daylight-saving offset for each date), so German operators see Central European Time instead of raw UTC. See AI Canvas.
  • Canvas titles are generated in the language of the conversation — The auto-generated canvas title now matches the language you used in the conversation; a canvas started in German receives a German title instead of an English one. See AI Canvas.
  • Canvas tool cards show human-friendly names and icons — The AI tool result cards on the canvas now display "Monitors", "Incidents", "Data query", or "CVE search" with a matching icon instead of the raw internal tool name. See AI Canvas.
  • Long result lists in canvas cards are now capped with a "Show more" toggle — Lists of monitors, incidents, or CVE findings preview the first five rows; a button reveals the rest without growing the card to an unreadable size. See AI Canvas.
  • Viewing another user's canvas now shows a read-only notice — When you open a canvas that belongs to a colleague, the chat pane explains it is read-only, names the owner, and offers a one-click link to start your own canvas. See AI Canvas.
  • Typed message is preserved when the assistant is still working — If you try to send a follow-up while a canvas run is in flight, your message stays in the input and a notification explains why it was not sent, so nothing is silently lost. See AI Canvas.
  • Expanded CVE advisory coverage — The CSAF aggregator now includes CERT@VDE and 39 additional vendor feeds, increasing the number of industrial CVEs surfaced in the Vulnerabilities page. See Vulnerabilities.

July 15, 2026

New

  • Vulnerabilities list now groups findings by CVE — The Findings tab defaults to a "CVEs" view that groups all findings of each vulnerability across your devices into a single expandable row, showing severity, affected device count, and a triage status breakdown; click a row to expand its individual findings inline. A toggle switches to the flat per-finding "Findings" view. See Vulnerabilities.
  • Bulk triage all findings of a CVE — Organization admins can now apply one triage decision to every finding of a given CVE across all devices at once using the "Triage all" action in the CVE row's menu; the dialog shows how many findings will be updated and warns when active filters make the visible count a subset of the full org-wide set. See Vulnerabilities.

July 14, 2026

Improved

  • CVE finding detail page now shows all affected devices — The vulnerability detail page now includes an "Affected devices" panel listing every monitor in your organization with a finding for the same CVE, each with its triage status, so you can assess the full blast radius from a single page. See Vulnerabilities.

July 13, 2026

New

  • Switch between canvases without leaving the editor — A new switcher panel in the AI Canvas editor (layers icon in the header) lists all your canvases so you can jump between them without returning to the canvas list page. See AI Canvas.
  • AI Canvas chat and canvas panes are now accessible on mobile — On small screens, a Canvas / Chat tab bar lets you switch between the spatial canvas and the conversation pane. See AI Canvas.

Improved

  • AI Canvas list shows loading placeholders and handles errors gracefully — The canvas list now renders placeholder rows while data loads instead of flashing an empty state, shows a retry option when loading fails, and reveals a filter input once your list grows long. See AI Canvas.
  • Canvases are named from the first prompt immediately — When you send your first message, the canvas title is seeded from that prompt so it is identifiable while the run is in flight or if it fails; a successful run still upgrades the name to a model-generated title. See AI Canvas.
  • CVE advisory data is more reliably fetched — The CSAF fetcher now tracks each advisory document individually, retrying transient download failures on every run so gaps from past network errors are backfilled rather than silently missed.

July 12, 2026

Improved

  • OPC UA monitor connection settings moved to a dedicated side panel — Endpoint URL, authentication type, security configuration, and certificate pinning are now configured together in a "Configure connection" side panel that opens from a compact read-only summary card on the edit form, preventing partially-committed connection settings when switching between configurations. See OPC UA.
  • Unpinning an OPC UA server certificate now requires confirmation — Removing a pinned certificate from the monitor edit form or the monitor detail page now shows a confirmation dialog that explains the security implications, preventing accidental removal. See OPC UA.
  • OPC UA connection failures now show specific, actionable incident descriptions — When an OPC UA monitor cannot connect, Pulse now raises an incident with a specific cause — server unreachable, security handshake failed, certificate rejected, authentication failed, or timeout — instead of a generic error. See OPC UA.
  • OPC UA certificate rotation panel labels the pending thumbprint — In Organization Settings, the pending replacement certificate's thumbprint is now labeled to distinguish it from the active one, and discarding a pending replacement requires a confirmation step. See OPC UA.

July 11, 2026

New

  • Pin an OPC UA server certificate by file upload or PEM paste — The certificate pinning section on OPC UA endpoint monitors now lets you upload a certificate file (PEM or DER) or paste a PEM directly, so you can pre-configure the pin even when the OPC UA server is not reachable at setup time. See OPC UA.

Improved

  • OPC UA monitor warns when credentials are exposed without a pinned certificate — When you use username/password authentication on a signed or encrypted channel without a pinned certificate, the monitor edit form now shows a warning that a man-in-the-middle attack could intercept the credentials. See OPC UA.
  • OPC UA monitor warns before removing a stale pin — When you change the endpoint URL on a monitor that already has a pinned certificate, the form now shows an alert explaining that the pin will be removed on save, so the change is never silent. See OPC UA.
  • Segmented controls have a new track-and-pill appearance — Joined toggle groups (used, for example, on OPC UA security mode and policy selection) now render as individually-rounded pills inside a muted track, making the selected option more visually distinct.

Fixed

  • OPC UA certificate error messages no longer appear twice — When a pin or upload operation fails with an error the app already handles centrally, the error notification now appears once instead of twice. See OPC UA.

July 10, 2026

New

  • OPC UA application instance certificate management — A new "OPC UA Certificate" tab in Organization Settings shows the certificate Pulse presents to OPC UA servers on secure channels, with its SHA-1 thumbprint for cross-checking, a PEM download, and actions to rotate the certificate (mint a replacement for pre-trust while the current one stays active), complete a rotation by cutting over, or revoke the active certificate in an emergency; OPC UA monitor detail pages also show a compact link to this tab when the monitor uses a secure channel. See OPC UA.
  • OPC UA certificate expiry alerts — Pulse now raises an incident and emails organization admins 60 days before the shared OPC UA application instance certificate is due to expire; a pending replacement is minted automatically so its thumbprint is available for pre-trust, and Pulse promotes it automatically as a backstop once the certificate actually expires. See OPC UA.

Improved

  • On the appliance, updates are more resilient — The post-update health check now waits up to five minutes (previously 60 seconds), reducing unnecessary rollbacks when database migrations take time to run; updates where only peripheral services fail but Pulse itself is healthy no longer trigger a rollback; and when a generation switch requires a reboot to take effect, the TUI now tells you to reboot rather than appearing to fail.
  • CVE report emails now have an HTML layout — The weekly vulnerability report email now includes a styled HTML version alongside plain text, with color-coded counts for open, in-progress, resolved, and risk-accepted findings.

July 9, 2026

New

  • OPC UA endpoint discovery — When creating or editing an OPC UA monitor, you can now click "Discover endpoints" to query the server and see the security configurations it actually supports; Pulse pre-selects the strongest option and shows the server certificate with subject, issuer, validity window, and thumbprint (with an expiry warning when it is near or past its expiry date). See OPC UA.
  • Server certificate pinning for OPC UA monitors — Pulse can now pin the discovered server certificate to an OPC UA monitor: on signed or encrypted connections, the certificate is stored and verified on every subsequent check. Organization admins can view the pinned certificate, re-discover to detect a rotation, update the pin to a new certificate, or remove it entirely from the monitor detail page. See OPC UA.

July 8, 2026

New

  • Ask AI from the Query Builder — The sparkle button in the Query Builder now opens the AI Canvas with a pre-filled prompt asking the assistant to help construct a query over your monitoring data, so you can go from exploring data to an AI-guided query in one click. See Query.

Improved

  • AI Canvas cards flow in a single horizontal row — Canvas cards are now laid out in a left-to-right filmstrip instead of stacked columns, making it easier to follow the conversation from one step to the next. See AI Canvas.
  • On the appliance, the TUI reloads automatically after an update or rollback — After a successful system update or generation switch, the interface automatically restarts with the new version instead of remaining on the old one.

July 7, 2026

Improved

  • AI Canvas shows step order with numbered badges and connectors — Canvas cards now display a sequence number in the corner and are connected by S-curve arrows in execution order; hovering a card highlights its connectors so you can trace the flow through a busy canvas. See AI Canvas.
  • AI Canvas run errors are now expandable — When a run fails, a compact error banner appears at the top of the canvas; click it to expand the full error detail so the error no longer obscures the canvas. See AI Canvas.

Fixed

  • AI Canvas cards no longer overlap as content streams in — The canvas layout now uses each card's real rendered height for masonry packing, so cards below a growing or flipping card shift down correctly instead of being overlapped. See AI Canvas.
  • On the appliance, the TUI header now shows the correct version after an update — The version number in the header refreshes immediately when you return from the update or rollback screen, without needing to restart the TUI.

July 6, 2026

New

  • Ask AI from a CVE finding — Each CVE finding detail page now has an "Ask AI" button that opens the AI Canvas with a prompt pre-filled to explain the vulnerability and analyze the practical risk for that specific device in your environment. See Vulnerabilities.

Improved

  • AI Canvas can query and display CVE findings — The AI Canvas assistant can now search your organization's CVE findings and render them as structured cards, making it possible to ask vulnerability-focused questions alongside monitor and incident queries. See AI Canvas.

July 4, 2026

New

  • Vulnerabilities page — A new Vulnerabilities section in the navigation lists all CVE findings across your devices, with a dashboard showing counts by severity and triage status, a detection-vs-resolved trend chart, the most-affected devices, and a searchable, filterable findings list with a detail page per finding. See Vulnerabilities.
  • Triage CVE findings — Organization admins can now record a triage decision on each vulnerability (Open, In Progress, Resolved, Won't Fix, Not Affected, or Risk Accepted), add a written reason, and set a risk-acceptance expiry date, all from the finding detail page. See Vulnerabilities.
  • "Ask AI" on list pages — The Monitors, Incidents, and Vulnerabilities list pages now each show an "Ask AI" button that opens the AI Canvas pre-filled with a status-report prompt for that section, ready for you to review and send.

Improved

  • Canvas prompt auto-grows and accepts pre-filled prompts — The prompt textarea on the Canvas page now expands as you type, and list pages can deep-link to the canvas with a suggested prompt that you can review or edit before sending.
  • Canvas list handles deleted owners gracefully — When a canvas creator has left the organization, their canvases now show "Deleted owner" in the list instead of a blank or broken name.

Fixed

  • CVE incident labels no longer show "undefined" — Restored missing translation keys so older CVE-related incidents display the correct triage status labels instead of raw key strings.

July 3, 2026

Fixed

  • OPC UA certificate authentication now works with more servers — Pulse's application instance certificate now includes the required extensions (ApplicationUri, key usages) mandated by the OPC UA specification, and correctly transmits both the certificate and its private key, resolving connection failures against mbedTLS-based servers such as open62541. See OPC UA.

June 30, 2026

New

  • AI Canvas — A new AI Canvas page lets you ask questions about your incidents, monitors, or system state; the assistant lays out its findings as step cards on a spatial, pannable canvas. You can create multiple canvases, rename them (the AI auto-titles each one after the first run), revisit previous sessions from the canvas list, and delete canvases you no longer need. AI Canvas is available to organizations whose license includes the feature.

Improved

  • Wide tables in canvas cards scroll instead of overflowing — Tables returned by the assistant now become horizontally scrollable when they are wider than a canvas card, so the card width stays predictable.

June 24, 2026

Fixed

  • On the appliance, backup restore and enrollment reset no longer prompt for a password — Both operations now complete unattended; a missing absolute path for systemctl had caused them to stall waiting for a sudo password.

June 23, 2026

New

  • Filter monitors by muted state — The monitor list now lets you show or hide muted monitors, so you can focus on the ones that are actively alerting. See Monitors.

Improved

  • Stale-data badge — Monitors now display a badge when their latest reading has gone stale, making it obvious at a glance when a source has stopped reporting fresh values. See Monitors.

Fixed

  • Reliable incident actions — Acknowledging or resolving an incident from a notification no longer submits twice when tapped in quick succession.

June 21, 2026

New

  • Vulnerability (CVE) monitoring — Pulse can now match your connected devices against a known-vulnerability catalog and open an incident when a relevant CVE is found. Includes a dedicated CVE detail view, an on-demand re-scan, and CSV import for CVE monitors. See Monitors.
  • Manage extra certificate names on the appliance — You can now add additional DNS names and IP addresses to the appliance's TLS certificate directly from the on-device menu, without rebuilding the appliance. See TLS Certificates.