From 6503e12b439ad88dc19a3a4f9f06a2473f20ec80 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 27 Jul 2026 13:29:02 +0000 Subject: [PATCH] chore(release): bump HyperDX app/package versions --- .changeset/bright-histograms-toggle.md | 5 -- .changeset/browser-rum-sessions-section.md | 19 ----- .changeset/calm-windows-hang.md | 15 ---- .changeset/changelog-help-menu.md | 5 -- .changeset/clear-virtualmultiselect-input.md | 5 -- .changeset/close-drawer-on-outside-click.md | 9 -- .changeset/codex-mcp-bearer-token-syntax.md | 5 -- .changeset/dashboard-tile-snap-grid.md | 7 -- .changeset/eval-independent-judge-model.md | 31 ------- .../eval-metric-saturation-hardening.md | 5 -- .changeset/fair-histograms-group.md | 5 -- .changeset/fuzzy-counts-flow.md | 5 -- .changeset/hungry-chefs-wink.md | 5 -- .changeset/hungry-readers-reflect.md | 5 -- .changeset/mcp-client-span-attributes.md | 5 -- .changeset/olive-mugs-try.md | 6 -- .changeset/semantic-component-variants.md | 5 -- .changeset/sharp-fishes-yell.md | 6 -- .changeset/span-links-trace-viewer.md | 12 --- .changeset/table-tile-alternate-rows.md | 8 -- .changeset/table-tile-column-color.md | 11 --- .../tidy-histogram-chart-aggregation.md | 5 -- .changeset/tidy-metrics-bloom.md | 5 -- .changeset/trace-ui-wrap-and-layout.md | 16 ---- .changeset/warm-text-warning-token.md | 5 -- .env | 4 +- packages/api/CHANGELOG.md | 35 ++++++++ packages/api/package.json | 4 +- packages/app/CHANGELOG.md | 82 +++++++++++++++++++ packages/app/package.json | 4 +- packages/cli/package.json | 2 +- packages/common-utils/CHANGELOG.md | 29 +++++++ packages/common-utils/package.json | 2 +- packages/hdx-eval/CHANGELOG.md | 38 +++++++++ packages/hdx-eval/package.json | 2 +- packages/otel-collector/CHANGELOG.md | 2 + packages/otel-collector/package.json | 2 +- yarn.lock | 8 +- 38 files changed, 200 insertions(+), 224 deletions(-) delete mode 100644 .changeset/bright-histograms-toggle.md delete mode 100644 .changeset/browser-rum-sessions-section.md delete mode 100644 .changeset/calm-windows-hang.md delete mode 100644 .changeset/changelog-help-menu.md delete mode 100644 .changeset/clear-virtualmultiselect-input.md delete mode 100644 .changeset/close-drawer-on-outside-click.md delete mode 100644 .changeset/codex-mcp-bearer-token-syntax.md delete mode 100644 .changeset/dashboard-tile-snap-grid.md delete mode 100644 .changeset/eval-independent-judge-model.md delete mode 100644 .changeset/eval-metric-saturation-hardening.md delete mode 100644 .changeset/fair-histograms-group.md delete mode 100644 .changeset/fuzzy-counts-flow.md delete mode 100644 .changeset/hungry-chefs-wink.md delete mode 100644 .changeset/hungry-readers-reflect.md delete mode 100644 .changeset/mcp-client-span-attributes.md delete mode 100644 .changeset/olive-mugs-try.md delete mode 100644 .changeset/semantic-component-variants.md delete mode 100644 .changeset/sharp-fishes-yell.md delete mode 100644 .changeset/span-links-trace-viewer.md delete mode 100644 .changeset/table-tile-alternate-rows.md delete mode 100644 .changeset/table-tile-column-color.md delete mode 100644 .changeset/tidy-histogram-chart-aggregation.md delete mode 100644 .changeset/tidy-metrics-bloom.md delete mode 100644 .changeset/trace-ui-wrap-and-layout.md delete mode 100644 .changeset/warm-text-warning-token.md diff --git a/.changeset/bright-histograms-toggle.md b/.changeset/bright-histograms-toggle.md deleted file mode 100644 index d91ed283a3..0000000000 --- a/.changeset/bright-histograms-toggle.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@hyperdx/app': patch ---- - -feat: Show exponential histogram metrics in the metric name drop-down, gated behind `NEXT_PUBLIC_ENABLE_EXPONENTIAL_HISTOGRAMS`. diff --git a/.changeset/browser-rum-sessions-section.md b/.changeset/browser-rum-sessions-section.md deleted file mode 100644 index 5424b74ff8..0000000000 --- a/.changeset/browser-rum-sessions-section.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -'@hyperdx/app': patch ---- - -feat(dashboards): expand the out-of-the-box Browser RUM dashboard with two new -sections. - -**Sessions**: a **Recent Sessions** table lists client-side sessions (page -views, errors, distinct traces, user, service, last-active time) ordered by -recency; clicking a row drills into the Traces search view filtered to that -session, surfacing its client-side spans (the client-side trace). - -**Memory**: per-page JS heap tiles (median and p90 used heap, plus a "Memory by -Page" table) sourced from `performance.memory.*` attributes on `documentLoad` -spans. These reflect Chromium visitors only (Firefox/Safari don't expose -per-page memory) and require a Browser SDK build that emits the heap attributes. - -Implemented entirely via existing tile mechanisms (table `onClick` -drill-through, Markdown tiles, byte number-format) — no renderer changes. diff --git a/.changeset/calm-windows-hang.md b/.changeset/calm-windows-hang.md deleted file mode 100644 index a9d8f0f40e..0000000000 --- a/.changeset/calm-windows-hang.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -"@hyperdx/api": patch ---- - -fix: Improve and standardize webhook URL validation - -### `WEBHOOK_HOSTNAME_ALLOWLIST` - -Use this optional setting to permit webhook delivery to a hostname or private/reserved IP address that the SSRF validator would otherwise block. Values are comma-separated. A hostname entry also permits its subdomains, while an IPv4 or IPv6 entry matches only that exact address. The allowlist does not bypass protocol validation, Slack hostname validation, or the exact host-and-port block for configured ClickHouse and MongoDB services. - -For example, this permits `localhost`, any `*.hooks.localhost` hostname, the exact IPv4 address `10.0.0.1`, and the exact IPv6 address `fd00::1`: - -```env -WEBHOOK_HOSTNAME_ALLOWLIST=localhost,hooks.localhost,10.0.0.1,fd00::1 -``` diff --git a/.changeset/changelog-help-menu.md b/.changeset/changelog-help-menu.md deleted file mode 100644 index fe7639a7e0..0000000000 --- a/.changeset/changelog-help-menu.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@hyperdx/app": minor ---- - -feat: add a "What's new" item to the Help menu that opens the app's changelog rendered as Markdown diff --git a/.changeset/clear-virtualmultiselect-input.md b/.changeset/clear-virtualmultiselect-input.md deleted file mode 100644 index add9922204..0000000000 --- a/.changeset/clear-virtualmultiselect-input.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@hyperdx/app": patch ---- - -fix: clear the VirtualMultiSelect search input after selecting a value diff --git a/.changeset/close-drawer-on-outside-click.md b/.changeset/close-drawer-on-outside-click.md deleted file mode 100644 index 020059f4e3..0000000000 --- a/.changeset/close-drawer-on-outside-click.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@hyperdx/app': patch ---- - -Detail drawers now close when you click outside of them. On Search and Sessions, -clicking outside the results table / session list dismisses the open drawer; -clicks inside the drawer, its nested popups/modals, or the results table keep it -open. This is on by default for row-table side panels (opt out with -`closeOnClickOutside={false}`). diff --git a/.changeset/codex-mcp-bearer-token-syntax.md b/.changeset/codex-mcp-bearer-token-syntax.md deleted file mode 100644 index 12aca69f65..0000000000 --- a/.changeset/codex-mcp-bearer-token-syntax.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@hyperdx/app': patch ---- - -fix(mcp): update the Codex CLI install snippet to the current `codex mcp add --url ... --bearer-token-env-var ...` syntax diff --git a/.changeset/dashboard-tile-snap-grid.md b/.changeset/dashboard-tile-snap-grid.md deleted file mode 100644 index 6b75f77e2d..0000000000 --- a/.changeset/dashboard-tile-snap-grid.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@hyperdx/app': patch ---- - -feat: Show a snap grid while dragging or resizing a dashboard tile - -While a dashboard tile is dragged or resized, the grid it snaps to is drawn behind the tiles and the cells where the tile will land are highlighted, so the drop target is clear. The highlight follows where the tile actually settles, including when the grid compacts it away from the cursor, rather than the raw cursor position. The overlay uses the same geometry as react-grid-layout, appears once the tile starts moving, and clears on release. diff --git a/.changeset/eval-independent-judge-model.md b/.changeset/eval-independent-judge-model.md deleted file mode 100644 index 3bbf14f757..0000000000 --- a/.changeset/eval-independent-judge-model.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -"@hyperdx/hdx-eval": minor ---- - -feat(evals): support an independent inference model/provider for LLM-as-judge -grading. The grader can now differ from the run model (e.g. run with Anthropic, -grade with OpenAI) to reduce same-model bias. `--judge-model` accepts a -`provider:model` spec (`anthropic`, `openai`; a bare model name defaults to -anthropic), configurable per repo via `eval.config.json` `grading.judgeModel`. -The judge now uses the Vercel AI SDK, so grader credentials come from -`AI_API_KEY`/`OPENAI_API_KEY`/`ANTHROPIC_API_KEY` (plus `AI_BASE_URL` / -`AI_REQUEST_HEADERS`), mirroring the API package. The provider-specific key -takes precedence over `AI_API_KEY` so a runner key and a differing grader key -don't collide. - -The judge prompt now defines explicit 0-5 scoring anchors so scores stay -calibrated across judge models, and the judge is more robust to intermittent -structured-output malformations (recovers nested/stringified `scores` payloads -and retries once on schema failure). Reasoning judge models (OpenAI gpt-5.x / -o-series) get a larger output-token budget so hidden reasoning tokens don't -truncate the JSON. - -fix(evals): re-grading a batch with a different judge model now actually -re-runs that judge instead of silently returning the previously cached judge's -scores. The `needsJudge` check and per-run reuse guard were keyed on the mere -presence of a cached judge, not its identity, so `grade --judge-model -openai:gpt-5.6-sol` over an Opus-graded batch would skip the LLM call and hand -back the stale Opus scores. Both now key on the judge spec: a cached grade from -a different judge model is treated as stale. `--rerun-judge` still forces a -refresh with the same judge. This is required for grader-bias comparisons -(grading one batch with two judges). diff --git a/.changeset/eval-metric-saturation-hardening.md b/.changeset/eval-metric-saturation-hardening.md deleted file mode 100644 index 39c75655f5..0000000000 --- a/.changeset/eval-metric-saturation-hardening.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@hyperdx/hdx-eval': patch ---- - -feat(evals): harden the metric-saturation scenario diff --git a/.changeset/fair-histograms-group.md b/.changeset/fair-histograms-group.md deleted file mode 100644 index 428dd23a95..0000000000 --- a/.changeset/fair-histograms-group.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@hyperdx/common-utils': patch ---- - -fix: Support grouping histogram quantile aggregations over non-Attribute columns diff --git a/.changeset/fuzzy-counts-flow.md b/.changeset/fuzzy-counts-flow.md deleted file mode 100644 index 331097ccaf..0000000000 --- a/.changeset/fuzzy-counts-flow.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@hyperdx/common-utils': patch ---- - -feat: Support count aggregations over exponential histogram metrics diff --git a/.changeset/hungry-chefs-wink.md b/.changeset/hungry-chefs-wink.md deleted file mode 100644 index 831b02e35b..0000000000 --- a/.changeset/hungry-chefs-wink.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@hyperdx/hdx-eval": patch ---- - -feat(evals): grade & report metric-tool adoption diff --git a/.changeset/hungry-readers-reflect.md b/.changeset/hungry-readers-reflect.md deleted file mode 100644 index d498ea1880..0000000000 --- a/.changeset/hungry-readers-reflect.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@hyperdx/hdx-eval": patch ---- - -feat(evals): add metrics-saturation scenario diff --git a/.changeset/mcp-client-span-attributes.md b/.changeset/mcp-client-span-attributes.md deleted file mode 100644 index 4d1ee08e6d..0000000000 --- a/.changeset/mcp-client-span-attributes.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@hyperdx/api': patch ---- - -Add MCP client name and version attributes to tool-invocation spans. diff --git a/.changeset/olive-mugs-try.md b/.changeset/olive-mugs-try.md deleted file mode 100644 index 1a27e6bd63..0000000000 --- a/.changeset/olive-mugs-try.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@hyperdx/common-utils": patch -"@hyperdx/api": patch ---- - -feat: Implement quantile for exponential histogram metrics diff --git a/.changeset/semantic-component-variants.md b/.changeset/semantic-component-variants.md deleted file mode 100644 index f18f2818d4..0000000000 --- a/.changeset/semantic-component-variants.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@hyperdx/app': patch ---- - -feat: Add semantic component variants wired to the design tokens. `Text` gains `warning`/`success` variants and `Alert` gains `info`/`success`/`warning`/`danger` variants (alongside the existing `danger` for `Button`/`ActionIcon`). Alerts and soft controls use new scheme-aware `--color-bg-*-subtle` (+ `-subtle-hover`) background tokens — lighter tints in light mode, deeper tints in dark mode — with the title, icon, and body text rendered in the semantic color token. Text colors are tuned to meet WCAG AA (4.5:1) on those tints in both schemes. Applies to both the HyperDX and ClickStack themes (ClickStack's `warning` is orange-based since it remaps `yellow` to the brand gold), with new Storybook stories (Components/Alert, Design Tokens/Semantic Variants). diff --git a/.changeset/sharp-fishes-yell.md b/.changeset/sharp-fishes-yell.md deleted file mode 100644 index b4a8eec282..0000000000 --- a/.changeset/sharp-fishes-yell.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@hyperdx/common-utils": minor -"@hyperdx/app": minor ---- - -feat: upgrade filters and autocomplete to intelligently route queries through the best rollup diff --git a/.changeset/span-links-trace-viewer.md b/.changeset/span-links-trace-viewer.md deleted file mode 100644 index 79292b96a0..0000000000 --- a/.changeset/span-links-trace-viewer.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -'@hyperdx/common-utils': patch -'@hyperdx/app': patch -'@hyperdx/api': patch ---- - -feat: surface OpenTelemetry span links in the trace view. Trace sources gain an -optional `spanLinksValueExpression` field (auto-detected from the OTel `Links` -column), and the span detail panel shows a new "Span Links" section. Each link -has an "Open trace" action that opens the linked trace in place in the same -panel, with a breadcrumb trail you can step back through, and shows the link's -trace state and attributes as chips. diff --git a/.changeset/table-tile-alternate-rows.md b/.changeset/table-tile-alternate-rows.md deleted file mode 100644 index e4e4c388f4..0000000000 --- a/.changeset/table-tile-alternate-rows.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -"@hyperdx/app": patch -"@hyperdx/common-utils": patch ---- - -feat(dashboard): table tile header separator and optional alternate row background - -Add an always-on separator between a table tile's sticky header and its rows so the boundary stays clear as rows scroll underneath. Add a new **Alternate Row Background** display setting (off by default) that zebra-stripes table tiles for easier scanning on wide tables. Both work in light and dark color modes. diff --git a/.changeset/table-tile-column-color.md b/.changeset/table-tile-column-color.md deleted file mode 100644 index 26301448db..0000000000 --- a/.changeset/table-tile-column-color.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"@hyperdx/common-utils": minor -"@hyperdx/app": minor ---- - -Add per-column color to dashboard table tiles. On builder table tiles you can -now set a static color on a column and layer ordered conditional rules (for -example `> 500` turns the cell red), the table-cell counterpart of the -number-tile color. Rules are authored from the column editor and applied per -cell at render, reusing the existing palette tokens so colors reflow across -light and dark themes. diff --git a/.changeset/tidy-histogram-chart-aggregation.md b/.changeset/tidy-histogram-chart-aggregation.md deleted file mode 100644 index 139b01a117..0000000000 --- a/.changeset/tidy-histogram-chart-aggregation.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@hyperdx/common-utils': patch ---- - -fix: Aggregate histogram metrics across selected range for non-timeseries charts diff --git a/.changeset/tidy-metrics-bloom.md b/.changeset/tidy-metrics-bloom.md deleted file mode 100644 index 1c5cae8f78..0000000000 --- a/.changeset/tidy-metrics-bloom.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@hyperdx/api': patch ---- - -feat: Add exponential histogram metrics support to MCP diff --git a/.changeset/trace-ui-wrap-and-layout.md b/.changeset/trace-ui-wrap-and-layout.md deleted file mode 100644 index 2c97a51c59..0000000000 --- a/.changeset/trace-ui-wrap-and-layout.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -"@hyperdx/app": patch ---- - -fix: Improve the trace/span detail UI (HDX-4853) - -- Long span attribute values with no break points (e.g. `url.path`) now wrap - fully when wrap mode is on instead of being clipped. -- Long attribute keys (e.g. `longtask.attribution.entry_type`) now wrap and - are capped at half the row width so they can't squeeze the value column to - nothing. -- Add a toggle to move the selected span's detail panel between the right side - (default) and the bottom of the waterfall, restoring the older top/bottom - layout. -- The span detail panel's Overview/Column Values content now aligns flush - with the tab bar instead of being inset by extra padding. diff --git a/.changeset/warm-text-warning-token.md b/.changeset/warm-text-warning-token.md deleted file mode 100644 index 554c3aa51f..0000000000 --- a/.changeset/warm-text-warning-token.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@hyperdx/app': patch ---- - -feat: Add `--color-text-warning` semantic color token based on Mantine's yellow for HyperDX and ClickStack themes, and register it in the Semantic Colors Storybook story. Dark mode uses `yellow-3`; light mode darkens `yellow-9` via `color-mix` so warning text meets WCAG AA (~4.7:1) on light backgrounds (plain yellow-9 is only ~3:1). ClickStack pins the default Mantine yellow as hex because its `yellow` palette is remapped to the brand gold, keeping the warning color consistent across both themes. diff --git a/.env b/.env index 2cb24cb4be..180ac63438 100644 --- a/.env +++ b/.env @@ -8,8 +8,8 @@ NEXT_ALL_IN_ONE_IMAGE_NAME_DOCKERHUB=clickhouse/clickstack-all-in-one ALL_IN_ONE_IMAGE_NAME_DOCKERHUB=hyperdx/hyperdx-all-in-one NEXT_OTEL_COLLECTOR_IMAGE_NAME_DOCKERHUB=clickhouse/clickstack-otel-collector OTEL_COLLECTOR_IMAGE_NAME_DOCKERHUB=hyperdx/hyperdx-otel-collector -CODE_VERSION=2.31.0 -IMAGE_VERSION_SUB_TAG=.31.0 +CODE_VERSION=2.32.0 +IMAGE_VERSION_SUB_TAG=.32.0 IMAGE_VERSION=2 IMAGE_NIGHTLY_TAG=2-nightly IMAGE_LATEST_TAG=latest diff --git a/packages/api/CHANGELOG.md b/packages/api/CHANGELOG.md index 904cbc680e..cab5096bf4 100644 --- a/packages/api/CHANGELOG.md +++ b/packages/api/CHANGELOG.md @@ -1,5 +1,40 @@ # @hyperdx/api +## 2.32.0 + +### Patch Changes + +- 01508d1d: fix: Improve and standardize webhook URL validation + + ### `WEBHOOK_HOSTNAME_ALLOWLIST` + + Use this optional setting to permit webhook delivery to a hostname or private/reserved IP address that the SSRF validator would otherwise block. Values are comma-separated. A hostname entry also permits its subdomains, while an IPv4 or IPv6 entry matches only that exact address. The allowlist does not bypass protocol validation, Slack hostname validation, or the exact host-and-port block for configured ClickHouse and MongoDB services. + + For example, this permits `localhost`, any `*.hooks.localhost` hostname, the exact IPv4 address `10.0.0.1`, and the exact IPv6 address `fd00::1`: + + ```env + WEBHOOK_HOSTNAME_ALLOWLIST=localhost,hooks.localhost,10.0.0.1,fd00::1 + ``` + +- 641175d8: Add MCP client name and version attributes to tool-invocation spans. +- 00eef721: feat: Implement quantile for exponential histogram metrics +- eadea332: feat: surface OpenTelemetry span links in the trace view. Trace sources gain an + optional `spanLinksValueExpression` field (auto-detected from the OTel `Links` + column), and the span detail panel shows a new "Span Links" section. Each link + has an "Open trace" action that opens the linked trace in place in the same + panel, with a breadcrumb trail you can step back through, and shows the link's + trace state and attributes as chips. +- 5dd6facb: feat: Add exponential histogram metrics support to MCP +- Updated dependencies [ad27a513] +- Updated dependencies [00eef721] +- Updated dependencies [00eef721] +- Updated dependencies [7a4ad986] +- Updated dependencies [eadea332] +- Updated dependencies [9cb69915] +- Updated dependencies [7d806fb8] +- Updated dependencies [f5f9cd19] + - @hyperdx/common-utils@0.24.0 + ## 2.31.0 ### Patch Changes diff --git a/packages/api/package.json b/packages/api/package.json index 02a9439ae1..2314561915 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -1,6 +1,6 @@ { "name": "@hyperdx/api", - "version": "2.31.0", + "version": "2.32.0", "license": "MIT", "private": true, "engines": { @@ -12,7 +12,7 @@ "@braintree/sanitize-url": "^7.1.1", "@clickhouse/client-common": "1.23.0-head.fae5998.1", "@esm2cjs/p-queue": "^7.3.0", - "@hyperdx/common-utils": "^0.23.0", + "@hyperdx/common-utils": "^0.24.0", "@hyperdx/node-opentelemetry": "^0.9.0", "@hyperdx/passport-local-mongoose": "^9.0.1", "@modelcontextprotocol/sdk": "^1.27.1", diff --git a/packages/app/CHANGELOG.md b/packages/app/CHANGELOG.md index 115dd18f9a..11f8edc8ef 100644 --- a/packages/app/CHANGELOG.md +++ b/packages/app/CHANGELOG.md @@ -1,5 +1,87 @@ # @hyperdx/app +## 2.32.0 + +### Minor Changes + +- f5dafcc2: feat: add a "What's new" item to the Help menu that opens the app's changelog rendered as Markdown +- 7a4ad986: feat: upgrade filters and autocomplete to intelligently route queries through the best rollup +- 7d806fb8: Add per-column color to dashboard table tiles. On builder table tiles you can + now set a static color on a column and layer ordered conditional rules (for + example `> 500` turns the cell red), the table-cell counterpart of the + number-tile color. Rules are authored from the column editor and applied per + cell at render, reusing the existing palette tokens so colors reflow across + light and dark themes. + +### Patch Changes + +- de2c8a0c: feat: Show exponential histogram metrics in the metric name drop-down, gated behind `NEXT_PUBLIC_ENABLE_EXPONENTIAL_HISTOGRAMS`. +- fcdcd781: feat(dashboards): expand the out-of-the-box Browser RUM dashboard with two new + sections. + + **Sessions**: a **Recent Sessions** table lists client-side sessions (page + views, errors, distinct traces, user, service, last-active time) ordered by + recency; clicking a row drills into the Traces search view filtered to that + session, surfacing its client-side spans (the client-side trace). + + **Memory**: per-page JS heap tiles (median and p90 used heap, plus a "Memory by + Page" table) sourced from `performance.memory.*` attributes on `documentLoad` + spans. These reflect Chromium visitors only (Firefox/Safari don't expose + per-page memory) and require a Browser SDK build that emits the heap attributes. + + Implemented entirely via existing tile mechanisms (table `onClick` + drill-through, Markdown tiles, byte number-format) — no renderer changes. + +- dbe14965: fix: clear the VirtualMultiSelect search input after selecting a value +- e6e0907f: Detail drawers now close when you click outside of them. On Search and Sessions, + clicking outside the results table / session list dismisses the open drawer; + clicks inside the drawer, its nested popups/modals, or the results table keep it + open. This is on by default for row-table side panels (opt out with + `closeOnClickOutside={false}`). +- 4372c78c: fix(mcp): update the Codex CLI install snippet to the current `codex mcp add --url ... --bearer-token-env-var ...` syntax +- cad749f0: feat: Show a snap grid while dragging or resizing a dashboard tile + + While a dashboard tile is dragged or resized, the grid it snaps to is drawn behind the tiles and the cells where the tile will land are highlighted, so the drop target is clear. The highlight follows where the tile actually settles, including when the grid compacts it away from the cursor, rather than the raw cursor position. The overlay uses the same geometry as react-grid-layout, appears once the tile starts moving, and clears on release. + +- ce8fb022: feat: Add semantic component variants wired to the design tokens. `Text` gains `warning`/`success` variants and `Alert` gains `info`/`success`/`warning`/`danger` variants (alongside the existing `danger` for `Button`/`ActionIcon`). Alerts and soft controls use new scheme-aware `--color-bg-*-subtle` (+ `-subtle-hover`) background tokens — lighter tints in light mode, deeper tints in dark mode — with the title, icon, and body text rendered in the semantic color token. Text colors are tuned to meet WCAG AA (4.5:1) on those tints in both schemes. Applies to both the HyperDX and ClickStack themes (ClickStack's `warning` is orange-based since it remaps `yellow` to the brand gold), with new Storybook stories (Components/Alert, Design Tokens/Semantic Variants). +- eadea332: feat: surface OpenTelemetry span links in the trace view. Trace sources gain an + optional `spanLinksValueExpression` field (auto-detected from the OTel `Links` + column), and the span detail panel shows a new "Span Links" section. Each link + has an "Open trace" action that opens the linked trace in place in the same + panel, with a breadcrumb trail you can step back through, and shows the link's + trace state and attributes as chips. +- 9cb69915: feat(dashboard): table tile header separator and optional alternate row background + + Add an always-on separator between a table tile's sticky header and its rows so the boundary stays clear as rows scroll underneath. Add a new **Alternate Row Background** display setting (off by default) that zebra-stripes table tiles for easier scanning on wide tables. Both work in light and dark color modes. + +- 7a47664e: fix: Improve the trace/span detail UI (HDX-4853) + + - Long span attribute values with no break points (e.g. `url.path`) now wrap + fully when wrap mode is on instead of being clipped. + - Long attribute keys (e.g. `longtask.attribution.entry_type`) now wrap and + are capped at half the row width so they can't squeeze the value column to + nothing. + - Add a toggle to move the selected span's detail panel between the right side + (default) and the bottom of the waterfall, restoring the older top/bottom + layout. + - The span detail panel's Overview/Column Values content now aligns flush + with the tab bar instead of being inset by extra padding. + +- ce8fb022: feat: Add `--color-text-warning` semantic color token based on Mantine's yellow for HyperDX and ClickStack themes, and register it in the Semantic Colors Storybook story. Dark mode uses `yellow-3`; light mode darkens `yellow-9` via `color-mix` so warning text meets WCAG AA (~4.7:1) on light backgrounds (plain yellow-9 is only ~3:1). ClickStack pins the default Mantine yellow as hex because its `yellow` palette is remapped to the brand gold, keeping the warning color consistent across both themes. +- Updated dependencies [01508d1d] +- Updated dependencies [ad27a513] +- Updated dependencies [00eef721] +- Updated dependencies [641175d8] +- Updated dependencies [00eef721] +- Updated dependencies [7a4ad986] +- Updated dependencies [eadea332] +- Updated dependencies [9cb69915] +- Updated dependencies [7d806fb8] +- Updated dependencies [f5f9cd19] +- Updated dependencies [5dd6facb] + - @hyperdx/api@2.32.0 + - @hyperdx/common-utils@0.24.0 + ## 2.31.0 ### Minor Changes diff --git a/packages/app/package.json b/packages/app/package.json index 9cdf63a7e4..0e7a3805e4 100644 --- a/packages/app/package.json +++ b/packages/app/package.json @@ -1,6 +1,6 @@ { "name": "@hyperdx/app", - "version": "2.31.0", + "version": "2.32.0", "private": true, "license": "MIT", "engines": { @@ -38,7 +38,7 @@ "@hookform/resolvers": "^3.9.0", "@hyperdx/api": "workspace:*", "@hyperdx/browser": "^0.22.1", - "@hyperdx/common-utils": "^0.23.0", + "@hyperdx/common-utils": "^0.24.0", "@hyperdx/node-opentelemetry": "^0.9.0", "@mantine/core": "^9.0.0", "@mantine/dates": "^9.0.0", diff --git a/packages/cli/package.json b/packages/cli/package.json index 2a55defc22..94a6ff9b68 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -41,7 +41,7 @@ }, "devDependencies": { "@clickhouse/client": "1.23.0-head.fae5998.1", - "@hyperdx/common-utils": "^0.23.0", + "@hyperdx/common-utils": "^0.24.0", "@jest/globals": "^30.2.0", "@types/crypto-js": "^4.2.2", "@types/jest": "^29.5.14", diff --git a/packages/common-utils/CHANGELOG.md b/packages/common-utils/CHANGELOG.md index 5fc6df757e..1805d13afe 100644 --- a/packages/common-utils/CHANGELOG.md +++ b/packages/common-utils/CHANGELOG.md @@ -1,5 +1,34 @@ # @hyperdx/common-utils +## 0.24.0 + +### Minor Changes + +- 7a4ad986: feat: upgrade filters and autocomplete to intelligently route queries through the best rollup +- 7d806fb8: Add per-column color to dashboard table tiles. On builder table tiles you can + now set a static color on a column and layer ordered conditional rules (for + example `> 500` turns the cell red), the table-cell counterpart of the + number-tile color. Rules are authored from the column editor and applied per + cell at render, reusing the existing palette tokens so colors reflow across + light and dark themes. + +### Patch Changes + +- ad27a513: fix: Support grouping histogram quantile aggregations over non-Attribute columns +- 00eef721: feat: Support count aggregations over exponential histogram metrics +- 00eef721: feat: Implement quantile for exponential histogram metrics +- eadea332: feat: surface OpenTelemetry span links in the trace view. Trace sources gain an + optional `spanLinksValueExpression` field (auto-detected from the OTel `Links` + column), and the span detail panel shows a new "Span Links" section. Each link + has an "Open trace" action that opens the linked trace in place in the same + panel, with a breadcrumb trail you can step back through, and shows the link's + trace state and attributes as chips. +- 9cb69915: feat(dashboard): table tile header separator and optional alternate row background + + Add an always-on separator between a table tile's sticky header and its rows so the boundary stays clear as rows scroll underneath. Add a new **Alternate Row Background** display setting (off by default) that zebra-stripes table tiles for easier scanning on wide tables. Both work in light and dark color modes. + +- f5f9cd19: fix: Aggregate histogram metrics across selected range for non-timeseries charts + ## 0.23.0 ### Minor Changes diff --git a/packages/common-utils/package.json b/packages/common-utils/package.json index 6cf7e036db..0a7bff4986 100644 --- a/packages/common-utils/package.json +++ b/packages/common-utils/package.json @@ -1,7 +1,7 @@ { "name": "@hyperdx/common-utils", "description": "Common utilities for HyperDX application", - "version": "0.23.0", + "version": "0.24.0", "license": "MIT", "private": true, "files": [ diff --git a/packages/hdx-eval/CHANGELOG.md b/packages/hdx-eval/CHANGELOG.md index 5d5bc7a82a..7941c0d8d2 100644 --- a/packages/hdx-eval/CHANGELOG.md +++ b/packages/hdx-eval/CHANGELOG.md @@ -1,5 +1,43 @@ # @hyperdx/hdx-eval +## 0.3.0 + +### Minor Changes + +- c4a22330: feat(evals): support an independent inference model/provider for LLM-as-judge + grading. The grader can now differ from the run model (e.g. run with Anthropic, + grade with OpenAI) to reduce same-model bias. `--judge-model` accepts a + `provider:model` spec (`anthropic`, `openai`; a bare model name defaults to + anthropic), configurable per repo via `eval.config.json` `grading.judgeModel`. + The judge now uses the Vercel AI SDK, so grader credentials come from + `AI_API_KEY`/`OPENAI_API_KEY`/`ANTHROPIC_API_KEY` (plus `AI_BASE_URL` / + `AI_REQUEST_HEADERS`), mirroring the API package. The provider-specific key + takes precedence over `AI_API_KEY` so a runner key and a differing grader key + don't collide. + + The judge prompt now defines explicit 0-5 scoring anchors so scores stay + calibrated across judge models, and the judge is more robust to intermittent + structured-output malformations (recovers nested/stringified `scores` payloads + and retries once on schema failure). Reasoning judge models (OpenAI gpt-5.x / + o-series) get a larger output-token budget so hidden reasoning tokens don't + truncate the JSON. + + fix(evals): re-grading a batch with a different judge model now actually + re-runs that judge instead of silently returning the previously cached judge's + scores. The `needsJudge` check and per-run reuse guard were keyed on the mere + presence of a cached judge, not its identity, so `grade --judge-model +openai:gpt-5.6-sol` over an Opus-graded batch would skip the LLM call and hand + back the stale Opus scores. Both now key on the judge spec: a cached grade from + a different judge model is treated as stale. `--rerun-judge` still forces a + refresh with the same judge. This is required for grader-bias comparisons + (grading one batch with two judges). + +### Patch Changes + +- 9b2f9ce7: feat(evals): harden the metric-saturation scenario +- fe5dfbb1: feat(evals): grade & report metric-tool adoption +- cd1c2b21: feat(evals): add metrics-saturation scenario + ## 0.2.2 ### Patch Changes diff --git a/packages/hdx-eval/package.json b/packages/hdx-eval/package.json index 8104c26488..dd6e9480b3 100644 --- a/packages/hdx-eval/package.json +++ b/packages/hdx-eval/package.json @@ -1,6 +1,6 @@ { "name": "@hyperdx/hdx-eval", - "version": "0.2.2", + "version": "0.3.0", "license": "MIT", "private": true, "engines": { diff --git a/packages/otel-collector/CHANGELOG.md b/packages/otel-collector/CHANGELOG.md index 758f5125eb..3927aa3a78 100644 --- a/packages/otel-collector/CHANGELOG.md +++ b/packages/otel-collector/CHANGELOG.md @@ -1,5 +1,7 @@ # @hyperdx/otel-collector +## 2.32.0 + ## 2.31.0 ## 2.30.1 diff --git a/packages/otel-collector/package.json b/packages/otel-collector/package.json index 759b6d146d..3e25cff37e 100644 --- a/packages/otel-collector/package.json +++ b/packages/otel-collector/package.json @@ -1,7 +1,7 @@ { "name": "@hyperdx/otel-collector", "description": "HyperDX OpenTelemetry Collector configuration and Docker image", - "version": "2.31.0", + "version": "2.32.0", "license": "MIT", "private": true } diff --git a/yarn.lock b/yarn.lock index 2b5393a6b2..fc64fde792 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4419,7 +4419,7 @@ __metadata: "@braintree/sanitize-url": "npm:^7.1.1" "@clickhouse/client-common": "npm:1.23.0-head.fae5998.1" "@esm2cjs/p-queue": "npm:^7.3.0" - "@hyperdx/common-utils": "npm:^0.23.0" + "@hyperdx/common-utils": "npm:^0.24.0" "@hyperdx/node-opentelemetry": "npm:^0.9.0" "@hyperdx/passport-local-mongoose": "npm:^9.0.1" "@modelcontextprotocol/sdk": "npm:^1.27.1" @@ -4511,7 +4511,7 @@ __metadata: "@hookform/resolvers": "npm:^3.9.0" "@hyperdx/api": "workspace:*" "@hyperdx/browser": "npm:^0.22.1" - "@hyperdx/common-utils": "npm:^0.23.0" + "@hyperdx/common-utils": "npm:^0.24.0" "@hyperdx/node-opentelemetry": "npm:^0.9.0" "@mantine/core": "npm:^9.0.0" "@mantine/dates": "npm:^9.0.0" @@ -4637,7 +4637,7 @@ __metadata: resolution: "@hyperdx/cli@workspace:packages/cli" dependencies: "@clickhouse/client": "npm:1.23.0-head.fae5998.1" - "@hyperdx/common-utils": "npm:^0.23.0" + "@hyperdx/common-utils": "npm:^0.24.0" "@jest/globals": "npm:^30.2.0" "@types/crypto-js": "npm:^4.2.2" "@types/jest": "npm:^29.5.14" @@ -4664,7 +4664,7 @@ __metadata: languageName: unknown linkType: soft -"@hyperdx/common-utils@npm:^0.23.0, @hyperdx/common-utils@workspace:packages/common-utils": +"@hyperdx/common-utils@npm:^0.24.0, @hyperdx/common-utils@workspace:packages/common-utils": version: 0.0.0-use.local resolution: "@hyperdx/common-utils@workspace:packages/common-utils" dependencies: