Repository navigation
Release HyperDX - #3272
Open
github-actions[bot] wants to merge 2 commits into
Open
Release HyperDX#3272github-actions[bot] wants to merge 2 commits into
github-actions[bot] wants to merge 2 commits into
Conversation
Contributor
|
PR author is in the excluded authors list. |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
github-actions
Bot
force-pushed
the
changeset-release/main
branch
27 times, most recently
from
October 6, 2026 20:16
2a6469d to
c85844f
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
6 times, most recently
from
October 7, 2026 16:31
61b2dea to
5d28647
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
9 times, most recently
from
October 7, 2026 19:32
cd28f5b to
50ebf41
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
8 times, most recently
from
October 9, 2026 19:24
5243d95 to
c3e0b70
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
October 9, 2026 19:51
12105ec to
fdec03f
Compare
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@hyperdx/cli@0.7.0
Minor Changes
@hyperdx/api@2.41.0
Minor Changes
76d33d7: The API no longer falls back to the public session secret
hyperdx is cool 👋.If
EXPRESS_SESSION_SECRETis unset, the API generates a random secret andreports it once at startup when authentication is enabled. Authenticated
deployments that explicitly set the old public value also get a random secret
and the same warning; the public value remains available only in the no-auth
local demo. Set it to a random string (
openssl rand -hex 32) in any deploymentwith authentication enabled — without it, restarting the API signs every user
out, and replicas do not share sessions.
d8b1cdf: feat: Attribute PromQL queries to the dashboard, tile or search that issued them, through both the
prometheusQuery/prometheusQueryRangetable functions and ClickHouse's Prometheus HTTP APIab70324: feat: attribute ClickHouse queries to the dashboard, tile, search or alert that
issued them
A row in
system.query_logpreviously couldn't be attributed to the part ofHyperDX that produced it. Now every query HyperDX runs has a small JSON
log_comment, plus aquery_idstarting withhdx-.Attribute load after the fact:
Or spot a query while it is still running, in
system.processes, where thequery_idnames the surface with no JSON parsing needed.The payload records which part of the product asked (a dashboard, a search, an
alert, an MCP tool, the chart explorer, session replay, field lookups, and so
on), the dashboard and tile or saved search id, the source id, and on the server
the trace id of the request. Field lookups and autocomplete are labelled too, so
they can be told apart from a user's chart queries.
The exception is queries that skip settings processing: the
system.settings,server version and Cloud-detection probes, and the onboarding connection check.
They get a
query_idbut an emptylog_comment.68082b6: feat: add stacked line (stacked area) time-series display type
Patch Changes
14003f0: feat: upgrade the AI SDK to v7 and trace AI calls with GenAI semantic conventions
AI assistant calls now emit OpenTelemetry spans that follow the GenAI semantic conventions (
invoke_agent/chat/execute_toolspans withgen_ai.*attributes) instead of the legacyai.*span shape. Team and user attribution moves fromai.telemetry.metadata.*tohyperdx.team.idanduser.id(plusgen_ai.conversation.idwhen a session is known). Saved searches, alerts or dashboards keyed on the oldai.*span names or attributes need updating.07c9365: fix: cast FixedString columns before implicit hasToken search
A bare search term against a FixedString column such as OTel TraceId compiled to
hasToken(lower(TraceId), ...), which ClickHouse rejects. Those haystacks are now
CAST to String first.
6873416: feat: Add a series mode to builder heatmaps
0b85553: fix: fall back to the Map key scan when the text index read fails
getMapKeysreturned an empty list whenever itsmergeTreeTextIndexqueryfailed, so the rollup and bounded
mapKeysscan paths never ran. ClickHouserefuses
mergeTreeTextIndexwithACCESS_DENIEDon any table with a rowpolicy, which left search autocomplete with no Map keys on those tables. A
failed text index read now falls through to the next strategy. After a row
policy denial it skips the key rollup table, which the policy doesn't cover,
and reads keys only from the policy-filtered source table.
c2e21cf: fix(mcp): return partial
clickstack_describe_sourceresults on timeoutThe describe deadline is raised from 10s to 30s to match the other MCP query
tools. When it is hit, the tool now returns the schema and samples gathered so
far, flagged
partialwithskippedStages, instead of failing outright. Itonly returns a timeout error if the column schema never loaded.
cf5b831: perf(mcp): speed up
clickstack_list_metricsand give the metric discoverytools a 30s budget
clickstack_list_metricsnow scans metric names only (about 9x fewer bytes readper kind), fetches unit and description just for the returned page, and scans
kinds in parallel. When the time budget runs out it returns the kinds that
finished, reports the rest in
partialFailure, and returns anextCursorthatresumes at the timed-out kind instead of failing the whole call. It also no
longer drops later kinds when one kind exactly fills a page.
clickstack_list_metricsandclickstack_describe_metricnow allow 30s insteadof 10s, matching the other MCP query tools.
7aeb621: refactor(mcp): share wall-clock timeout handling across MCP tools via
runWithTimeout, and source the 30s ClickHouse query cap from one constant.6ea5f52: feat: only provision a default PromQL source when PromQL is enabled
DEFAULT_SOURCESentries of kindpromqlare now skipped unlessENABLE_PROMQL=true, so a single sources list can include a PromQL sourcewithout creating it on deployments that have PromQL turned off.
ff5befa: Support "Minimum auto granularity" on PromQL sources. It floors the step of charts on auto granularity, as it does for metric sources, and
$__rate_intervalnow uses it as the source's scrape interval (still 15s when unset) instead of always assuming 15s. A granularity picked on a tile is never changed.1be9de8: feat: Add a promql variable format that escapes based on single/multi-select
837c683: feat: Support series mode heatmap in API and MCP
0d2425d: feat: Allow configuring dashboard filters as single-select
1ce8b88: fix: rank Map keys by frequency when a text index serves key discovery
The two
mergeTreeTextIndexpaths ingetMapKeysgrouped keys and appliedLIMIT maxKeyswith noORDER BY, so on a column with more keys than thelimit the filter sidebar showed an arbitrary subset. They now order by
sum(cardinality) DESC, key, which keeps the most frequent keys, as the keyrollup path already does with
sum(count) DESC.e88cf3d: fix(mcp): time-limit the
clickstack_trace_top_time_consuming_operationstool.Its queries now use the MCP request timeout and
max_execution_timeceiling,which a source's
querySettingscan no longer override. A timeout returnsguidance to shorten the window or narrow
parentFilterinstead of an "invalidSQL" hint, and the client-side
Timeout error.now gets the timeout hint inevery MCP tool. Sources with a multi-column
timestampValueExpression(including a leading Date column such as
EventDate, EventTime) now returncorrect breakdowns.
Updated dependencies [07c9365]
Updated dependencies [6873416]
Updated dependencies [0b85553]
Updated dependencies [0846f3b]
Updated dependencies [e61461b]
Updated dependencies [ff5befa]
Updated dependencies [d8b1cdf]
Updated dependencies [1be9de8]
Updated dependencies [ab70324]
Updated dependencies [0d2425d]
Updated dependencies [68082b6]
Updated dependencies [1ce8b88]
@hyperdx/app@2.41.0
Minor Changes
6873416: feat: Add a series mode to builder heatmaps
eeabaeb: feat: Support PromQL heatmaps (series-mode)
ff5befa: Support "Minimum auto granularity" on PromQL sources. It floors the step of charts on auto granularity, as it does for metric sources, and
$__rate_intervalnow uses it as the source's scrape interval (still 15s when unset) instead of always assuming 15s. A granularity picked on a tile is never changed.d8b1cdf: feat: Attribute PromQL queries to the dashboard, tile or search that issued them, through both the
prometheusQuery/prometheusQueryRangetable functions and ClickHouse's Prometheus HTTP APIab70324: feat: attribute ClickHouse queries to the dashboard, tile, search or alert that
issued them
A row in
system.query_logpreviously couldn't be attributed to the part ofHyperDX that produced it. Now every query HyperDX runs has a small JSON
log_comment, plus aquery_idstarting withhdx-.Attribute load after the fact:
Or spot a query while it is still running, in
system.processes, where thequery_idnames the surface with no JSON parsing needed.The payload records which part of the product asked (a dashboard, a search, an
alert, an MCP tool, the chart explorer, session replay, field lookups, and so
on), the dashboard and tile or saved search id, the source id, and on the server
the trace id of the request. Field lookups and autocomplete are labelled too, so
they can be told apart from a user's chart queries.
The exception is queries that skip settings processing: the
system.settings,server version and Cloud-detection probes, and the onboarding connection check.
They get a
query_idbut an emptylog_comment.68082b6: feat: add stacked line (stacked area) time-series display type
Patch Changes
766a3b0: feat: add
@clickhouse/click-uias a dependency and mountClickUIProvidernext to
MantineProvider. The provider follows the HyperDX color mode and doesnot persist its own theme. The "open an issue on GitHub" link in error messages
is the first component to use click-ui (
Link).a986a03: feat: use the click-ui
Badgefor alert state badges. A fired alert shows asolid red badge, and an evaluation error shows a light red badge.
46ff1fc: feat: let users permanently dismiss the metric drill-down warning
Drilling down from a metric chart whose source has no correlated log source
shows a warning. Clicking its close button now hides the warning for good in
that browser, and repeated clicks no longer stack copies of it.
07c9365: fix: cast FixedString columns before implicit hasToken search
A bare search term against a FixedString column such as OTel TraceId compiled to
hasToken(lower(TraceId), ...), which ClickHouse rejects. Those haystacks are now
CAST to String first.
3e34efa: feat: Respect explicit and minimum granularity on heatmaps
3615f12: fix: Match heatmap hover to the cell under the cursor
bd0da16: feat: Edit heatmap value and count inline in the chart editor
51e47b1: feat: rename dashboards and saved searches by clicking the title instead of a
pencil button
The name is now edited in place: Enter or clicking away saves, Escape reverts.
0c1dd86: feat: add optional
NEXT_PUBLIC_INSTANCE_LABELsuffix to the tab title and sidebarOperators running multiple HyperDX instances (e.g. one per region) can now set
NEXT_PUBLIC_INSTANCE_LABELto append a short label to the browser tab title and sidebar, e.g. "HyperDX UK". Empty by default, no behavior change if unset. The sidebar label only shows when the sidebar is expanded, and replaces the UTC badge there when both are set.01ea7f3: feat: choose how property keys are ordered in the row side panel
The JSON viewer sorts keys alphabetically, which is the right default for wide
ClickHouse
Map(...)columns likeProfileEventsbut hides the stored columnorder. The properties view options menu now offers "Sort keys A–Z", "Sort keys
Z–A", and "Original order"; the choice persists with the viewer's other options.
Array elements keep their index order in every mode. In "Original order",
integer-like keys (e.g. HTTP status codes) still list first in ascending order,
since parsed JavaScript objects order keys that way.
0b85553: fix: fall back to the Map key scan when the text index read fails
getMapKeysreturned an empty list whenever itsmergeTreeTextIndexqueryfailed, so the rollup and bounded
mapKeysscan paths never ran. ClickHouserefuses
mergeTreeTextIndexwithACCESS_DENIEDon any table with a rowpolicy, which left search autocomplete with no Map keys on those tables. A
failed text index read now falls through to the next strategy. After a row
policy denial it skips the key rollup table, which the policy doesn't cover,
and reads keys only from the policy-filtered source table.
0ddfe7d: fix: use plural source kind labels and "OTel" spelling on the Sources page
The source form's data type options and the sources list now read Logs, Traces, OTel metrics, Sessions, and PromQL.
e61461b: feat: auto-detect a PromQL source during onboarding
When PromQL is enabled (
NEXT_PUBLIC_ENABLE_PROMQL=true), onboarding source auto-detection now also creates a PromQL source for a ClickHouse TimeSeries engine table. It prefersprometheus.metrics(the table the ClickHouse Prometheus docs suggest), then a table namedmetrics_ts, and otherwise picks the only TimeSeries table on the connection. A service with only a TimeSeries table is no longer sent to manual source setup.76e5cf7: feat: support a series limit on PromQL line, stacked bar, pie and bar charts
The Display Settings drawer now offers Series Limit for PromQL charts. On line and stacked bar charts it keeps the top N series by peak value (leave empty for the default of 250, or set 0 for unlimited). On pie and bar charts it keeps the N largest slices or bars (leave empty to show all).
1be9de8: feat: Add a promql variable format that escapes based on single/multi-select
c372a71: fix: pulse the list-bar and histogram charts while they refresh
The Services dashboard's list-bar and latency histogram charts kept their
previous data during a refresh but gave no sign that new data was loading,
and the histogram could briefly swap its chart for "Loading Chart Data...".
Both now keep their previous data on screen and pulse while the refetch runs,
like the other charts.
0d2425d: feat: Allow configuring dashboard filters as single-select
1ce8b88: fix: rank Map keys by frequency when a text index serves key discovery
The two
mergeTreeTextIndexpaths ingetMapKeysgrouped keys and appliedLIMIT maxKeyswith noORDER BY, so on a column with more keys than thelimit the filter sidebar showed an arbitrary subset. They now order by
sum(cardinality) DESC, key, which keeps the most frequent keys, as the keyrollup path already does with
sum(count) DESC.4477f30: feat: show a trace's total wall-clock duration in the waterfall controls bar
01fdc5d: ui: Extract FilterPill, add filter editor components
Updated dependencies [14003f0]
Updated dependencies [76d33d7]
Updated dependencies [07c9365]
Updated dependencies [6873416]
Updated dependencies [0b85553]
Updated dependencies [c2e21cf]
Updated dependencies [cf5b831]
Updated dependencies [7aeb621]
Updated dependencies [0846f3b]
Updated dependencies [e61461b]
Updated dependencies [6ea5f52]
Updated dependencies [ff5befa]
Updated dependencies [d8b1cdf]
Updated dependencies [1be9de8]
Updated dependencies [837c683]
Updated dependencies [ab70324]
Updated dependencies [0d2425d]
Updated dependencies [68082b6]
Updated dependencies [1ce8b88]
Updated dependencies [e88cf3d]
@hyperdx/common-utils@0.31.0
Minor Changes
6873416: feat: Add a series mode to builder heatmaps
ff5befa: Support "Minimum auto granularity" on PromQL sources. It floors the step of charts on auto granularity, as it does for metric sources, and
$__rate_intervalnow uses it as the source's scrape interval (still 15s when unset) instead of always assuming 15s. A granularity picked on a tile is never changed.d8b1cdf: feat: Attribute PromQL queries to the dashboard, tile or search that issued them, through both the
prometheusQuery/prometheusQueryRangetable functions and ClickHouse's Prometheus HTTP APIab70324: feat: attribute ClickHouse queries to the dashboard, tile, search or alert that
issued them
A row in
system.query_logpreviously couldn't be attributed to the part ofHyperDX that produced it. Now every query HyperDX runs has a small JSON
log_comment, plus aquery_idstarting withhdx-.Attribute load after the fact:
Or spot a query while it is still running, in
system.processes, where thequery_idnames the surface with no JSON parsing needed.The payload records which part of the product asked (a dashboard, a search, an
alert, an MCP tool, the chart explorer, session replay, field lookups, and so
on), the dashboard and tile or saved search id, the source id, and on the server
the trace id of the request. Field lookups and autocomplete are labelled too, so
they can be told apart from a user's chart queries.
The exception is queries that skip settings processing: the
system.settings,server version and Cloud-detection probes, and the onboarding connection check.
They get a
query_idbut an emptylog_comment.68082b6: feat: add stacked line (stacked area) time-series display type
Patch Changes
07c9365: fix: cast FixedString columns before implicit hasToken search
A bare search term against a FixedString column such as OTel TraceId compiled to
hasToken(lower(TraceId), ...), which ClickHouse rejects. Those haystacks are now
CAST to String first.
0b85553: fix: fall back to the Map key scan when the text index read fails
getMapKeysreturned an empty list whenever itsmergeTreeTextIndexqueryfailed, so the rollup and bounded
mapKeysscan paths never ran. ClickHouserefuses
mergeTreeTextIndexwithACCESS_DENIEDon any table with a rowpolicy, which left search autocomplete with no Map keys on those tables. A
failed text index read now falls through to the next strategy. After a row
policy denial it skips the key rollup table, which the policy doesn't cover,
and reads keys only from the policy-filtered source table.
0846f3b: Include the requested Map-key limit in metadata cache keys so MCP discovery and AI field discovery cannot reuse each other's differently limited results.
e61461b: feat: auto-detect a PromQL source during onboarding
When PromQL is enabled (
NEXT_PUBLIC_ENABLE_PROMQL=true), onboarding source auto-detection now also creates a PromQL source for a ClickHouse TimeSeries engine table. It prefersprometheus.metrics(the table the ClickHouse Prometheus docs suggest), then a table namedmetrics_ts, and otherwise picks the only TimeSeries table on the connection. A service with only a TimeSeries table is no longer sent to manual source setup.1be9de8: feat: Add a promql variable format that escapes based on single/multi-select
0d2425d: feat: Allow configuring dashboard filters as single-select
1ce8b88: fix: rank Map keys by frequency when a text index serves key discovery
The two
mergeTreeTextIndexpaths ingetMapKeysgrouped keys and appliedLIMIT maxKeyswith noORDER BY, so on a column with more keys than thelimit the filter sidebar showed an arbitrary subset. They now order by
sum(cardinality) DESC, key, which keeps the most frequent keys, as the keyrollup path already does with
sum(count) DESC.@hyperdx/otel-collector@2.41.0